JP2009098963A - Automatic module generation system - Google Patents

Automatic module generation system Download PDF

Info

Publication number
JP2009098963A
JP2009098963A JP2007270418A JP2007270418A JP2009098963A JP 2009098963 A JP2009098963 A JP 2009098963A JP 2007270418 A JP2007270418 A JP 2007270418A JP 2007270418 A JP2007270418 A JP 2007270418A JP 2009098963 A JP2009098963 A JP 2009098963A
Authority
JP
Japan
Prior art keywords
option
execution module
program
platform
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007270418A
Other languages
Japanese (ja)
Inventor
Masaaki Arimoto
Atsufumi Fujita
雅昭 有本
淳文 藤田
Original Assignee
Mitsubishi Electric Corp
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp, 三菱電機株式会社 filed Critical Mitsubishi Electric Corp
Priority to JP2007270418A priority Critical patent/JP2009098963A/en
Publication of JP2009098963A publication Critical patent/JP2009098963A/en
Pending legal-status Critical Current

Links

Images

Abstract

The present invention provides an automatic module generation system in which an execution module generation method is unified and an execution module is generated in common on different computer platforms.
A common execution module generation tool 2 includes a program type determination unit 21 that determines a program type from source code 4, and an option list that reads an option list 61 that stores options for each program type from a storage device 6. Based on the table reading means 22 and the option list 61, it is constituted by means for designating the compile option 7 when compiling the source code 4 according to the type of program and the link option 9 of the compiled program. Commonly used by all source code on two computer platforms.
[Selection] Figure 2

Description

  The present invention relates to an automatic module generation system that automatically generates an execution module (object code) corresponding to a computer platform (OS version) from source code on one or a plurality of computer platforms (OS version).

Recent advances in computer platform (hardware, OS) technology are remarkable, and version upgrades are performed in a short period of time. For this reason, software (source code) developed on one computer platform (OS version) at a certain time is often ported not only to the platform but also to the successor platform (next version OS). Yes. In addition, since the standardization of the I / F (interface) specification with the OS is progressing, the compatibility of the source code between the platforms is extremely high.
In such a situation, conventionally, source code is individually prepared for each platform (OS), and an execution module (object code) is generated with a procedure and setting individually corresponding to each platform. It was.
In a computer system composed of a plurality of computers, it is common to install one execution module generation computer in the system and distribute (copy) the execution module generated by this computer to all other computers. is there.
Japanese Patent Application Laid-Open No. 2004-151561 describes one that automatically generates object code that does not depend on the processor configuration.

JP-A-8-255086 (pages 5-8, FIG. 1)

Conventionally, the source code is individually prepared for each platform (OS) depending on the type of program within the same platform (OS), and when the platform (OS) is different, and each program and platform are individually provided. An execution module (object code) was generated with the corresponding procedure and settings.
For this reason, source code and execution module generation procedures / settings exist for each program and platform, and when the source code on one platform is changed, the same contents must be reflected in the source code on all other platforms. there were.
In addition, because the generation procedure and settings differ for each program and platform, only those who have knowledge (knowhow) about the program and platform can work, or there is no room for human error (human error). There was no problem.
In Patent Document 1, although object code that does not depend on a processor configuration is automatically generated, procedures and settings for each OS version and each platform are not shared, and the above-described problems are not solved.

  The present invention has been made in order to solve the above-described problems, and unifies an execution module (object code) generation method for a program type or a different computer platform (OS version) and commonly executes the execution module. The purpose is to obtain a module automatic generation system that generates the.

In the module automatic generation system according to the present invention, a program type determining means for determining the type of program from the source code, an option list reading means for reading an option list storing options for each type of program from the storage device, Based on the option list read by the option list reading means, the compile option specifying means for specifying the compile option when compiling the source code according to the program type, and the option list A common execution module generation tool having link option specifying means for specifying a link option of a compiled program according to the type of program,
The common execution module generation tool is commonly used by all source codes on one computer platform.

As described above, the present invention includes a program type determination unit that determines a program type from source code, an option list reading unit that reads an option list storing options for each type of program from a storage device, Based on the option list read by the option list reading means, based on the compile option specifying means for specifying the compile option when compiling the source code according to the type of program, and the option list, A common execution module generation tool having a link option specifying means for specifying a link option of a compiled program according to the type of the program;
Since the common execution module generation tool is commonly used in all source codes on one computer platform, an execution module can be generated using the common execution module generation tool regardless of the type of program.

Embodiment 1 FIG.
A first embodiment of the present invention will be described below with reference to FIGS.
FIG. 1 is an explanatory diagram for explaining an automatic module generation system according to Embodiment 1 of the present invention.
In FIG. 1, a common execution module generation tool 2 executed on the A platform (OS version A) 1 generates an execution module (object code) 5 from source code 4 using a compiler / linker 3 for A platform.

FIG. 2 is a block diagram showing a common execution module generation tool of the automatic module generation system according to Embodiment 1 of the present invention.
2, 2, 4, and 5 are the same as those in FIG. The storage device 6 is accessed by the common execution module generation tool 2 and stores an option list 61 in which compile options and link options for each program type are defined in advance.
The common execution module generation tool 2 is based on the program type determination unit 21 that determines the program type of the source code 4, the option list reading unit 22 that reads the option list 61 from the storage device 6, and the option list 61. Compile option specifying means 23 for specifying the compile option 7 and link option specifying means 24 for specifying the link option 9 to the compiled object code 8 are configured.
The compiler 31 compiles the source code 4 using the compile option 7 to form the object code 8. The linker 32 uses the link option 9 to link the object code 8 to form the execution module 5.

Next, the operation will be described.
FIG. 1 shows a common execution module generation procedure for each program in one platform. That is, in the A plot home 1, the common execution module generation tool 2 and the compiler / linker 3 for the A platform execute the execution module X from the source code X, the execution module Y from the source code Y, and the execution module Z from the source code Z. Form each one. The common execution module generation tool 2 can be used in common for all source codes (execution modules) in consideration of the generation procedure and setting contents specific to the A platform 1 (eg, option specification at compile time). Yes.

Then, according to the processing procedure as shown in FIG. 2, the creator of the execution modules X, Y, and Z uses the common execution module generation tool 2 in common for the source codes X, Y, and Z, thereby executing the execution modules. Can be generated.
In the source code 4, the type of program is written. As shown in FIG. 2, the program type determination means 21 of the common execution module generation tool 2 reads the program type of the source code 4. Next, the option list reading means 22 reads the option list 61 from the storage device 6. Next, the compile option specifying means 23 specifies the compile option 7 according to the type of program.
This compile option 7 is used for compiling the source code 4 by the compiler 31. Thus, the source code 4 is compiled and the object code 8 is formed.
Next, the link option designation means 24 designates the link option 9 according to the type of program. This link option 9 is used by the linker 32 and linked to the object code 8 to form the execution module 5.

  According to the first embodiment, in this way, by using the option list 61 and specifying an option for each type of program, and compiling and linking, the execution module generation procedure is shared within one platform. Can be

Embodiment 2. FIG.
The second embodiment of the present invention will be described below with reference to FIGS.
FIG. 3 is an explanatory diagram for explaining an automatic module generation system according to Embodiment 2 of the present invention.
In FIG. 3, the platform includes an A platform (OS version A) 1a, a B platform (OS version B) 1b, and a C platform (OS version C) 1c. The platform common execution module generation tool 10 common to all platforms is shown in FIG. By passing the options to the compiler / linker by processing, the source code S4 is formed by the platform compiler / linkers 3a to 3c to form an execution module X5a, an execution module Y5b, and an execution module Z5c that operate on each platform. To do.

FIG. 4 is a block diagram showing a common execution module generation tool of the automatic module generation system according to Embodiment 2 of the present invention.
4, 4-9, 21-24, 31, 32 are the same as those in FIG. In FIG. 4, the common execution module generation tool 10 for all platforms is configured to operate on all platforms, and in addition to 21 to 24 in FIG. 2, platform determination means for specifying the platform in which the source code 4 is used. 20 The option list 62 defines compile options and link options for each platform and each program type.

Next, the operation will be described.
FIG. 3 shows a common source code / execution module generation procedure for a plurality of platforms. That is, the source is generated by the common execution module generation tool 10 commonly used in all platforms, the compiler / linker 3a for the A platform, the compiler / linker 3b for the B platform, and the compiler / linker 3c for the C platform. An execution module X5a for the A platform 1a, an execution module Y5b for the B platform 1b, and an execution module Z5c for the C platform 1c are formed from the code S, respectively.
The common execution module generation tool 10 for all platforms can be used in common for all source codes (execution modules) of all platforms in consideration of generation procedures and setting contents specific to each platform (eg, option specification at compile time). I am doing so.

Then, according to the processing procedure shown in FIG. 4, the execution module X, Y, Z generator uses the common execution module generation tool 10 for all platforms in common for the source code S. Execution modules can be generated without requiring special knowledge for each platform.
As shown in FIG. 4, the common execution module generation tool 10 for all platforms makes an inquiry to the platform in which the source code 4 is used by the platform determination means 20 and specifies the platform to be used. The execution module 5 is created by the compiler 31 and the linker 32 for the platform of the determination result. In addition, since the option list 62 defines the compile option and the link option for each platform and each program type, the option list 62 is determined by the program type determination unit 21 using the platform specified by the platform determination unit 20. Specify options according to the type of program.
Note that the processing from the program type determination unit 21 to the link option designation unit 24 is the same as that in the first embodiment, and thus the description thereof is omitted.

According to the second embodiment, by using the common execution module generation tool 10 for all platforms, an execution module corresponding to each platform can be generated without requiring special knowledge for each platform.

Embodiment 3 FIG.
The third embodiment of the present invention will be described below with reference to FIG.
FIG. 5 is an explanatory diagram for explaining an automatic module generation system according to Embodiment 3 of the present invention.
In FIG. 5, 3a, 3b, 3c, 5a, 5b, 5c, and 10 are the same as those in FIG. In FIG. 5, the execution module generation computer 11 (management computer) in which the common execution module generation tool 10 for all platforms is arranged generates the A platform module in which the A platform compiler / linker 3a is arranged via the network. It is connected to a computer 12a, a B platform module generation computer 12b in which a B platform compiler / linker 3b is arranged, and a C platform module generation computer 12c in which a C platform compiler / linker 3c is arranged.

Next, the operation will be described.
The common execution module generation tool 10 for all platforms is for generating an execution module (object code) for each platform, and takes into consideration the generation procedure and setting contents specific to each platform (example: option specification at compile time). , It can be commonly used for all execution modules (source code) of all platforms.
In the third embodiment, the execution module generation computer 11 commonly stores and manages the source code and the execution module corresponding to each platform generated from the source code via the all-platform common execution module generation tool 10.

The common execution module generation tool 10 arranged on the execution module generation computer 11 is temporarily copied (or mounted) on the platform during module generation work on each platform (for example, the module generation computer 12a for the A platform). ) At the time of copying (or mounting), the source code compiled to generate the execution module and the generation procedure / setting (for example, option specification at the time of compilation) are also copied at the same time.
An execution module for the platform is generated from the copied source code by using a compiler / linker mounted on the copied platform on which the common execution module generation tool 10 for all platforms is copied.
After the execution module is generated, the common execution module generation tool 10 common to all platforms is deleted from the platform. In other words, the common execution module generation tool 10 for all platforms is only temporarily placed in each of the platform module generation computers 12a to 12c at the time of execution.
Note that the execution modules generated by each of the platform module generation computers 12a to 12c are arranged (moved) on the execution module generation computer and managed centrally.

  According to the third embodiment, it is possible to copy the common execution module generation tool 10 for all platforms and generate an execution module on each platform module generation computer, so that it is easy to operate and the source code is generated on the execution module generation computer. In addition, there is an effect that the execution modules are centrally managed.

Embodiment 4 FIG.
The fourth embodiment of the present invention will be described below with reference to FIGS.
1 to 5, the common execution module generation tool 2 and the common execution module generation tool 10 for all platforms are provided with platform-specific information (such as OS version and computer-specific name) on the source code when an execution module (object code) is generated. The information shown is automatically embedded and an execution module (object code) is generated together with the original source code.
The OS version and the computer specific name are extracted by the common execution module generation tool 2 and the common execution module generation tool 10 for all platforms using an I / F provided by the OS.
As a result, information indicating the execution module generation environment is automatically added to the generated execution module (object code) without the source code producer being aware of it.

According to the fourth embodiment, information indicating the execution module generation environment is automatically added to the generated execution module without the source code producer being aware of it. It can be confirmed whether it was generated.

Embodiment 5 FIG.
A fifth embodiment of the present invention will be described below with reference to FIGS.
1 to 5, the common execution module generation tool 2 and the common execution module generation tool 10 for all platforms are the source code version management mechanism [Example: RCS (Revision Control System: each file) at the time of execution module (object code) generation Version of the source code automatically in conjunction with a general-purpose version management mechanism such as a version management mechanism) or CVS (Concurrent Versions System: an evolutionary version of RCS) that can be used simultaneously by multiple users. Update information.
As a result, the version information is automatically updated without the source code producer being aware of the execution module generation.

According to the fifth embodiment, since the version information is automatically updated without the source code producer being aware of the execution module when it is generated, it is possible to prevent a human error such as omission of update of version information (check-in omission). Can do.

It is explanatory drawing explaining the module automatic generation system by Embodiment 1 of this invention. It is a block diagram which shows the common execution module production | generation tool of the module automatic generation system by Embodiment 1 of this invention. It is explanatory drawing explaining the module automatic generation system by Embodiment 2 of this invention. It is a block diagram which shows the common execution module production | generation tool of the module automatic generation system by Embodiment 2 of this invention. It is explanatory drawing explaining the module automatic generation system by Embodiment 3 of this invention.

Explanation of symbols

1 Platform (OS version)
2 Common execution module generation tool 3 Platform compiler / linker 4 Source code 5 Execution module 6 Storage device 7 Compile option 8 Object code 9 Link option 10 Common execution module generation tool 11 for all platforms Execution module generation computer 12 Module generation computer 20 for platform Platform determining means 21 Program type determining means 22 Option list reading means 23 Compile option specifying means 24 Link option specifying means 31 Compiler 32 Linker 61, 62 Option list

Claims (5)

  1. Program type determining means for determining the type of program from the source code, option list reading means for reading an option list storing options for each program type from the storage device, and read by the option list reading means Based on the above option list, a compile option specifying means for specifying a compile option when compiling the source code according to the type of the program, and on the basis of the option list, depending on the type of the program. A common execution module generation tool having link option specifying means for specifying a link option of the compiled program.
    The automatic module generation system is characterized in that the common execution module generation tool is commonly used in all source codes on a single computer platform.
  2. A list of options for storing the platform determination means for determining the computer platform in which the source code is used, the program type determination means for determining the type of program from the source code, and the options for each computer platform and each program type from the storage device Option list reading means for reading a table, and compile options for compiling the source code according to the computer platform and the type of program based on the option list read by the option list reading means Based on the above compile option specification means and the above option list, specify the link options for the compiled program according to the computer platform and program type. A common execution module generation tool and a link option designation means that,
    The automatic module generation system according to claim 1, wherein the compile option and the link option are used by a compiler and a linker corresponding to the computer platform determined by the platform determination means.
  3.   3. The module automatic generation system according to claim 1, wherein the source code and the execution module generated from the source code are centrally managed by a management computer.
  4.   The automatic module generation system according to any one of claims 1 to 3, wherein unique information of the computer platform is embedded in the source code when the execution module is generated.
  5.   5. The module automatic generation system according to claim 1, wherein version information of the source code is updated when the execution module is generated.
JP2007270418A 2007-10-17 2007-10-17 Automatic module generation system Pending JP2009098963A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007270418A JP2009098963A (en) 2007-10-17 2007-10-17 Automatic module generation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007270418A JP2009098963A (en) 2007-10-17 2007-10-17 Automatic module generation system

Publications (1)

Publication Number Publication Date
JP2009098963A true JP2009098963A (en) 2009-05-07

Family

ID=40701900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007270418A Pending JP2009098963A (en) 2007-10-17 2007-10-17 Automatic module generation system

Country Status (1)

Country Link
JP (1) JP2009098963A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014063352A (en) * 2012-09-21 2014-04-10 Nomura Research Institute Ltd Program development integrated management system

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62211733A (en) * 1986-03-12 1987-09-17 Fujitsu Ltd Control system for translation and combined editing option of program
JPH01230132A (en) * 1988-03-10 1989-09-13 Oki Electric Ind Co Ltd Generator
JPH03282825A (en) * 1990-03-30 1991-12-13 Nec Corp System for dynamically registering and referring to option information for translation
JPH04205422A (en) * 1990-11-30 1992-07-27 Hitachi Ltd Automatic program translation connecting and selecting method
JPH04245325A (en) * 1991-01-30 1992-09-01 Nec Software Ltd File control system
JPH04328641A (en) * 1991-04-30 1992-11-17 Nec Corp Translation option mode acquring system
JPH05134883A (en) * 1991-11-08 1993-06-01 Fujitsu Ltd Distributed compilation processing system
JPH07152577A (en) * 1993-11-29 1995-06-16 Nec Corp Sharing system for compiling and linking method
JPH07319711A (en) * 1994-05-24 1995-12-08 Canon Inc Information processing system
JP2000122871A (en) * 1998-10-14 2000-04-28 Hitachi Ltd Application distributing method
JP2000259397A (en) * 1999-03-04 2000-09-22 Hitachi Ltd Primitive source file management device
JP2001022810A (en) * 1999-07-08 2001-01-26 Fujitsu Ltd Product information managing device and recording medium

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62211733A (en) * 1986-03-12 1987-09-17 Fujitsu Ltd Control system for translation and combined editing option of program
JPH01230132A (en) * 1988-03-10 1989-09-13 Oki Electric Ind Co Ltd Generator
JPH03282825A (en) * 1990-03-30 1991-12-13 Nec Corp System for dynamically registering and referring to option information for translation
JPH04205422A (en) * 1990-11-30 1992-07-27 Hitachi Ltd Automatic program translation connecting and selecting method
JPH04245325A (en) * 1991-01-30 1992-09-01 Nec Software Ltd File control system
JPH04328641A (en) * 1991-04-30 1992-11-17 Nec Corp Translation option mode acquring system
JPH05134883A (en) * 1991-11-08 1993-06-01 Fujitsu Ltd Distributed compilation processing system
JPH07152577A (en) * 1993-11-29 1995-06-16 Nec Corp Sharing system for compiling and linking method
JPH07319711A (en) * 1994-05-24 1995-12-08 Canon Inc Information processing system
JP2000122871A (en) * 1998-10-14 2000-04-28 Hitachi Ltd Application distributing method
JP2000259397A (en) * 1999-03-04 2000-09-22 Hitachi Ltd Primitive source file management device
JP2001022810A (en) * 1999-07-08 2001-01-26 Fujitsu Ltd Product information managing device and recording medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014063352A (en) * 2012-09-21 2014-04-10 Nomura Research Institute Ltd Program development integrated management system

Similar Documents

Publication Publication Date Title
Potvin et al. Why Google stores billions of lines of code in a single repository
US9454459B2 (en) Detecting merge conflicts and compilation errors in a collaborative integrated development environment
US10019256B2 (en) Systems and methods for incremental software development
Rose et al. Model migration with epsilon flock
Jouault et al. ATL: a QVT-like transformation language
Mens A state-of-the-art survey on software merging
US7076772B2 (en) System and method for multi-language extensible compiler framework
US8387014B2 (en) Synchronization of concurrently modified interdependent semi-derived artifacts
US7162709B2 (en) System and method for common code generation
US5481713A (en) Method and apparatus for patching code residing on a read only memory device
JP4794437B2 (en) An extended system for representing and checking the integrity of program components during the editing process
US7949997B2 (en) Integration of software into an existing information technology (IT) infrastructure
US9940108B2 (en) Automated merging in a software development environment
KR100661393B1 (en) Web site management system and method applying web programming environment
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
JP5007046B2 (en) Maintaining component-based software products
US5361357A (en) Method and apparatus for optimizing computer file compilation
TWI521428B (en) Method for extensible firmware abstraction and related computing platform
KR101150003B1 (en) Software development infrastructure
CN101770363B (en) Method and device for transformation of executable code from into different programming language
EP2245532B1 (en) Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
US5561800A (en) Method and apparatus for incrementally linking modified routines into software
US5182806A (en) Incremental compiler for source-code development system
US5193191A (en) Incremental linking in source-code development system
US5201050A (en) Line-skip compiler for source-code development system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120830

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121127