JP4724387B2 - Program conversion program, program conversion apparatus, and program conversion method - Google Patents
Program conversion program, program conversion apparatus, and program conversion method Download PDFInfo
- Publication number
- JP4724387B2 JP4724387B2 JP2004187026A JP2004187026A JP4724387B2 JP 4724387 B2 JP4724387 B2 JP 4724387B2 JP 2004187026 A JP2004187026 A JP 2004187026A JP 2004187026 A JP2004187026 A JP 2004187026A JP 4724387 B2 JP4724387 B2 JP 4724387B2
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- program
- programming language
- source program
- syntax tree
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 118
- 238000006243 chemical reaction Methods 0.000 claims description 262
- 238000013499 data model Methods 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 34
- 238000012790 confirmation Methods 0.000 description 53
- 238000012545 processing Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 13
- 238000007796 conventional method Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 101100148933 Caenorhabditis elegans sdhb-1 gene Proteins 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 101100084165 Caenorhabditis elegans prdx-2 gene Proteins 0.000 description 2
- 101100480514 Caenorhabditis elegans tag-53 gene Proteins 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100079986 Caenorhabditis elegans nrfl-1 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
この発明は、第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換プログラム、プログラム変換装置およびプログラム変換方法に関し、特に保守性の高い目的ソースプログラムを得ることができるプログラム変換プログラム、プログラム変換装置およびプログラム変換方法に関するものである。 The present invention relates to a program conversion program, a program conversion apparatus, and a program conversion method for converting a starting source program described in a first programming language into a target source program described in a second programming language, and particularly has high maintainability. The present invention relates to a program conversion program, a program conversion apparatus, and a program conversion method capable of obtaining a target source program.
近年、運用コストの高さや開発効率の低さ等の問題から、ホストコンピュータ上で稼動するシステムをUNIX(登録商標)サーバ上やPCサーバ上で稼動するいわゆるオープンシステムに置き換えることが広くおこなわれている。置き換えにあたっては、システムを新規に開発し直すことも可能であるが、移行に要する期間とコストを節約するために従来のシステムを流用する場合も多い。 In recent years, due to problems such as high operational costs and low development efficiency, it has been widely used to replace a system that operates on a host computer with a so-called open system that operates on a UNIX (registered trademark) server or a PC server. Yes. In replacement, a new system can be re-developed, but a conventional system is often used to save the time and cost required for migration.
ただし、システムを流用する場合であっても、ホストコンピュータ上で使用していたプログラミングを新たな環境でコンパイルするだけでは開発効率の低さという問題を解決することができない。このため、移行に際しては、COBOLやPL/Iといったホストコンピュータ向けの言語で記述されていたプログラムをC++やJava(登録商標)といったより生産性の高い言語に変換することが必要となる。 However, even when the system is used, the problem of low development efficiency cannot be solved by simply compiling the programming used on the host computer in a new environment. Therefore, at the time of migration, it is necessary to convert a program written in a language for a host computer such as COBOL or PL / I into a more productive language such as C ++ or Java (registered trademark).
従来から、あるプログラミング言語で書かれたプログラムを他のプログラミング言語で書かれたプログラムに変換する技術が知られている。たとえば、特許文献1では、変換ルールを用いてプログラムの変換をおこなう技術が開示されている。また、特許文献2では、変換ルールをより汎用化し、より多くのプログラミング言語の変換を実現するための技術が開示されている。
Conventionally, a technique for converting a program written in one programming language into a program written in another programming language is known. For example,
しかしながら、これらの従来技術は、プログラム言語の処理内容が等値になるように単純に字句変換するものであるため、変換後のプログラムが保守性の低いものになってしまうという問題がある。 However, since these conventional techniques simply perform lexical conversion so that the processing contents of the program language are equal, there is a problem that the converted program has low maintainability.
プログラミング言語にはそれぞれ特徴があり、その特徴に合ったスタイルでプログラミングされるのが通常である。ところが、単純に字句変換されたプログラムは、変換前のプログラミング言語のスタイルをそのまま受け継いでしまい、変換後のプログラミング言語としては不自然な記述になってしまう。このようなプログラムは、変換前の言語を知らない開発者にとっては極めて可読性の低いプログラムとなり、保守性の観点からみて望ましくない。 Each programming language has its own characteristics, and it is usually programmed in a style that matches those characteristics. However, a program that is simply lexically converted inherits the style of the programming language before conversion as it is, and the description becomes unnatural as a programming language after conversion. Such a program is extremely low in readability for a developer who does not know the language before conversion, and is not desirable from the viewpoint of maintainability.
特に、手続き型言語であるCOBOLからオブジェクト指向言語であるJava(登録商標)に変換する場合のように、言語思想の大きく異なる言語間で変換をおこなう際には、不自然なソースプログラムが生成される可能性が非常に高くなる。プログラムは、移行後も機能追加や改修が必要になることが通常であり、保守性の低さはプログラムの維持管理の上で大きな問題となる。 In particular, an unnatural source program is generated when converting between languages with very different linguistic ideas, such as when converting from procedural language COBOL to object-oriented language Java (registered trademark). Very likely. Programs usually require additional functions or modifications after migration, and poor maintainability is a major problem in program maintenance.
この発明は、上述した従来技術による問題点を解消するためになされたものであり、変換結果として保守性の高いプログラムを効率よく得ることができるプログラム変換プログラム、プログラム変換装置およびプログラム変換方法を提供することを目的とする。 The present invention has been made to solve the above-described problems caused by the prior art, and provides a program conversion program, a program conversion apparatus, and a program conversion method capable of efficiently obtaining a highly maintainable program as a conversion result. The purpose is to do.
上述した課題を解決し、目的を達成するため、この発明に係るプログラム変換プログラムは、第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換プログラムであって、前記起点ソースプログラムを構文解析して前記第1のプログラミング言語の文法に基づく前記起点ソースプログラムの構文木を生成する変換前モデル生成手順と、第1の記憶部に記憶された、前記第1のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換する変換ルールに基づき、前記起点ソースプログラムの構文木を前記第2のプログラミング言語の文法に基づく構文木に変換するに際して、第2の記憶部に記憶された、階層化されたデータ型を前記変換ルールに基づく変換の対象外とする条件に基づき、前記条件に該当する箇所を含む前記起点ソースプログラムの構文木に対応する、前記第2のプログラミング言語の文法に基づく構文木に、前記変換ルールに基づく変換の対象外としたことを示す手掛かり情報を挿入する変換後モデル生成手順と、前記第2のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を、前記目的ソースプログラムの、前記手掛り情報が挿入された前記第2のプログラミング言語の文法に基づく構文木に対応する箇所に埋め込むソースプログラム生成手順とをコンピュータに実行させることを特徴とする。 In order to solve the above-described problems and achieve the object, a program conversion program according to the present invention converts an origin source program described in a first programming language into a target source program described in a second programming language. A pre-conversion model generation procedure that parses the starting source program and generates a syntax tree of the starting source program based on the grammar of the first programming language , and stores it in a first storage unit been, the first based on a syntax tree based on the grammar of the programming language conversion rule for converting the syntax tree based on the grammar of the second programming language, the syntax tree of the origin source program second programming language in converting the syntax tree based on the grammar, stored in the second storage unit Based hierarchical data type condition to exclude the conversion based on the conversion rule corresponding to the syntax tree of the origin source program including a portion corresponding to the condition, grammar of the second programming language A post-conversion model generation procedure for inserting clue information indicating that it is excluded from conversion based on the conversion rule, and a syntax tree based on the grammar of the second programming language. in converting into the desired source program written in a language, embedding the key information, the object source program, the location where the cue information corresponding to syntax tree based on the grammar of the inserted second programming language A source program generating procedure is executed by a computer.
また、この発明にかかるプログラム変換装置は、第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換装置であって、前記起点ソースプログラムを構文解析して前記第1のプログラミング言語の文法に基づく前記ソースプログラムの構文木を生成する変換前モデル生成手段と、前記第1のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換する変換ルールを記憶する第1の記憶部と、階層化されたデータ型を前記変換ルールに基づく変換の対象外とする条件を記憶する第2の記憶部と、前記第1の記憶部に記憶された前記変換ルールに基づき、前記ソースプログラムの構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換するに際して、前記第2の記憶部に記憶された前記条件に該当する箇所を含む前記起点ソースプログラムの構文木に対応する、前記第2のプログラミング言語の文法に基づく構文木に、前記変換ルールに基づく変換の対象外としたことを示す手掛かり情報を挿入する変換後モデル生成手段と、前記第2のプログラミング言語の文法に基づくデータモデルを前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を、前記目的ソースプログラムの、前記手掛り情報が挿入された前記第2のプログラミング言語の文法に基づく構文木に対応する箇所に埋め込むソースプログラム生成手段とを備えたことを特徴とする。 The program conversion apparatus according to the present invention is a program conversion apparatus for converting a starting source program described in a first programming language into a target source program described in a second programming language, wherein the starting source program And a pre-conversion model generation means for generating a syntax tree of the source program based on the grammar of the first programming language, and a syntax tree based on the grammar of the first programming language. A first storage unit that stores a conversion rule for converting to a syntax tree based on the grammar of the second, a second storage unit that stores a condition for excluding a hierarchical data type from conversion based on the conversion rule, based on the conversion rule stored in the first storage unit, the syntax tree of the second of said source program Upon conversion to a syntax tree based on the grammar of the programming language, corresponding to the syntax tree of the origin source program including a portion corresponding to the conditions stored in the second storage section, the syntax of the second programming language the syntax tree based on the excluded from conversion based on the conversion rule and the converted model generating means for inserting a key information indicating that the said second of said second programming data model based on the grammar of the programming language in converting into the desired source program written in a language, embedding the key information, the object source program, the location where the cue information corresponding to syntax tree based on the grammar of the inserted second programming language And a source program generation means.
また、この発明にかかるプログラム変換方法は、第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換方法であって、前記起点ソースプログラムを構文解析して前記第1のプログラミング言語の文法に基づく前記起点ソースプログラムの構文木を生成する変換前モデル生成工程と、第1の記憶部に記憶された、前記第1のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換する変換ルールに基づき、前記起点ソースプログラムの構文木を前記第2のプログラミング言語の文法に基づく構文木に変換するに際して、第2の記憶部に記憶された、階層化されたデータ型を前記変換ルールに基づく変換の対象外とする条件に基づき、前記条件に該当する箇所を含む前記起点ソースプログラムの構文木に対応する、前記第2のプログラミング言語の文法に基づく構文木に、前記変換ルールに基づく変換の対象外としたことを示す手掛かり情報を挿入する変換後モデル生成工程と、前記第2のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を前記目的ソースプログラムの適切な箇所に埋め込むソースプログラム生成工程とを含んだことを特徴とする。 The program conversion method according to the present invention is a program conversion method for converting a starting source program described in a first programming language into a target source program described in a second programming language, the starting source program a pre-conversion model generation step of parsing to generate a parse tree of the origin source program based on the grammar of the first programming language, stored in the first storage section, the syntax of the first programming language in based the syntax tree conversion rule for converting the syntax tree based on the grammar of the second programming language, converts the syntax tree of the origin source program syntax tree based on the grammar of the second programming language based on, The hierarchical data type stored in the second storage unit is based on the conversion rule. Under the terms of interest out of the conversion corresponds to the syntax tree of the origin source program including a portion corresponding to the condition, the syntax tree based on the grammar of the second programming language, the conversion based on the conversion rule A post-conversion model generation step for inserting clue information indicating that it is excluded, and a syntax tree based on the grammar of the second programming language is converted into the target source program described in the second programming language And a source program generation step of embedding the clue information in an appropriate location of the target source program.
この発明によれば、単純な字句変換によってプログラム変換をおこなったならば複雑で可読性の低いコードが生成される可能性が高い部分について、該当箇所に要確認タグを出力することとし、この要確認タグを手がかりとして単純な字句変換とは異なる方法でプログラム変換をおこなうように構成したので、保守性の高い変換結果をえることができる。 According to the present invention, if a program conversion is performed by simple lexical conversion, a confirmation required tag is output to a corresponding portion for a portion that is likely to generate a complicated and low-readable code. Since the program conversion is performed by using a tag as a clue in a different method from simple lexical conversion, a highly maintainable conversion result can be obtained.
また、この発明に係るプログラム変換プログラムは、上記の発明において、前記ソースプログラム生成手順は、前記手掛かり情報をプログラムのコメントとして前記目的ソースプログラムに埋め込むことを特徴とする。 In the program conversion program according to the present invention as set forth in the invention described above, the source program generation procedure embeds the clue information in the target source program as a program comment.
この発明によれば、適切なコードを記述する必要がある場所にプログラムのコメントとして手掛かり情報を出力し、手掛かり情報が存在した状態のままで通常通りプログラムの編集やコンパイルをおこなうことができるように構成したので、効率よくプログラムの変換をおこなうことができる。 According to the present invention, clue information is output as a program comment at a place where an appropriate code needs to be written, and the program can be edited and compiled as usual while the clue information exists. Because it is configured, program conversion can be performed efficiently.
また、この発明に係るプログラム変換プログラムは、上記の発明において、前記ソースプログラム生成手順は、前記手掛かり情報として前記起点ソースプログラムの名称と該起点ソースプログラムのうち前記所定のルールに該当した部分の位置情報とを埋め込むことを特徴とする。 The program conversion program according to the present invention is the program conversion program according to the above invention, wherein the source program generation procedure includes the name of the starting source program as the clue information and the position of the starting source program corresponding to the predetermined rule. It is characterized by embedding information.
この発明によれば、手掛かり情報を頼りにして変換元ソースを容易に参照することができるように構成したので、効率よくプログラムの変換をおこなうことができる。 According to the present invention, since the conversion source source can be easily referred to using the clue information, the program can be converted efficiently.
本発明によれば、単純な字句変換によってプログラム変換をおこなったならば複雑で可読性の低いコードが生成される可能性が高い部分について、該当箇所に要確認タグを出力することとし、この要確認タグを手がかりとして単純な字句変換とは異なる方法でプログラム変換をおこなうように構成したので、保守性の高い変換結果をえることができるという効果を奏する。 According to the present invention, if a program conversion is performed by simple lexical conversion, a confirmation required tag is output to a corresponding portion for a portion that is likely to generate a complicated and low-readable code. Since the program conversion is performed by a method different from simple lexical conversion using the tag as a clue, it is possible to obtain a conversion result with high maintainability.
また、本発明によれば、手掛かり情報を頼りにして変換元ソースを容易に参照することができるように構成したので、効率よくプログラムの変換をおこなうことができる。 Further, according to the present invention, since the conversion source source can be easily referred to using the clue information, the program can be converted efficiently.
以下に添付図面を参照して、この発明に係るプログラム変換プログラム、プログラム変換装置およびプログラム変換方法の好適な実施の形態を詳細に説明する。なお、ここでは、COBOLで記述されたプログラムをJava(登録商標)で記述されたプログラムに変換する場合を例にして説明するが、この発明は、特定の言語に依存するものではなく、様々なプログラム言語の変換に用いることができる。 Exemplary embodiments of a program conversion program, a program conversion apparatus, and a program conversion method according to the present invention will be explained below in detail with reference to the accompanying drawings. Here, a case where a program written in COBOL is converted into a program written in Java (registered trademark) will be described as an example. However, the present invention does not depend on a specific language, and various It can be used for program language conversion.
まず、本発明の概要について従来の方式と比較して説明する。図14は、従来のプログラミング変換方式を説明するための説明図である。同図に示すように、従来の変換方式では、まず入力部が変換前のソースプログラムを読み込んで構文解析をおこない、変換前ソースプログラムの構文木(以下、「変換前ソースデータモデル」という。)を作成する。 First, the outline of the present invention will be described in comparison with a conventional method. FIG. 14 is an explanatory diagram for explaining a conventional programming conversion method. As shown in the figure, in the conventional conversion method, the input unit first reads a source program before conversion and performs syntax analysis, and a syntax tree of the source program before conversion (hereinafter referred to as “source data model before conversion”). Create
続いて、変換エンジンが所定の変換ルールに基づいて変換前ソースデータモデルを変換して変換後ソースプログラムの構文木(以下、「変換後データソースモデル」という)を作成する。そして、出力部が変換後データソースモデルから変換後のソースプログラムを生成して変換処理が完了する。 Subsequently, the conversion engine converts the pre-conversion source data model based on a predetermined conversion rule to create a syntax tree of the post-conversion source program (hereinafter referred to as “post-conversion data source model”). Then, the output unit generates a converted source program from the converted data source model, and the conversion process is completed.
ここで、変換エンジンが利用する変換ルールは、プログラムの処理内容が同一になるように機械的に字句変換するものなので、変換後のソースプログラムは、変換前のプログラミング言語の言語仕様の影響を受けて、不自然で可読性の低いコードになる場合がある。このようなプログラムを保守性の高いものにするには、開発者が時間をかけて生成されたコードを解析し、複雑な箇所を自然なコードに置き換えることが必要になる。 Here, since the conversion rules used by the conversion engine are mechanical lexical conversions so that the processing contents of the program are the same, the source program after conversion is affected by the language specifications of the programming language before conversion. May result in unnatural and poorly readable code. In order to make such a program highly maintainable, it is necessary for a developer to analyze the generated code over time and replace a complicated part with a natural code.
図1は、本実施例に係る変換方式を説明するための説明図である。同図に示すように、本実施例に係る変換方式は、変換ルールの他に要確認ルールを用いてプログラムの変換をおこなう点が従来と異なる。要確認ルールとは、所定の条件に合致した場合は変換ルールによる機械的な字句変換はおこなわずに別の対応をおこなうというルールである。 FIG. 1 is an explanatory diagram for explaining a conversion method according to the present embodiment. As shown in the figure, the conversion method according to the present embodiment is different from the conventional method in that a program is converted using a confirmation required rule in addition to the conversion rule. The confirmation-needed rule is a rule that, when a predetermined condition is met, another correspondence is performed without performing mechanical lexical conversion by the conversion rule.
この方式では、入力部により作成された変換前ソースデータモデルは、変換ルールと要確認ルールに基づいて、変換エンジンによって、変換後ソースデータモデルに変換される。変換後ソースデータモデルでは、要確認ルールに合致した要確認箇所が要確認タグに置き換えられる。そして、この要確認タグは、出力部によりコメント等の形で変換後ソースプログラムの適切な位置に埋め込まれる。 In this method, the pre-conversion source data model created by the input unit is converted into a post-conversion source data model by the conversion engine based on the conversion rule and the confirmation required rule. In the converted source data model, the confirmation required part that matches the confirmation required rule is replaced with a confirmation required tag. The confirmation required tag is embedded in an appropriate position of the converted source program in the form of a comment or the like by the output unit.
変換後ソースプログラムに埋め込まれた要確認タグは、要確認箇所変換部において適切な記述に置き換えられて実稼動可能なソースプログラムとなる。要確認箇所変換部における記述の置き換えは業務知識を必要とする場合もあるため、通常は手作業によっておこなうが、業務知識に基づく変換をルール化して自動変換するようにすることもできる。 The required confirmation tag embedded in the converted source program is replaced with an appropriate description in the required-conversion-point conversion unit to become a source program that can be actually operated. Since the replacement of the description in the confirmation point conversion unit may require business knowledge, it is usually performed manually, but conversion based on the business knowledge can be ruled and automatically converted.
このような方式をとることにより、従来の方式では難解なコードに変換されていた箇所にどのような修正が必要であるかを示す情報が埋め込まれ、開発者は、これを手掛かりとして適切なソースコードを効率よく完成させることができ、結果として保守性の高いプログラムが従来より少ないコストで得られることとなる。 By adopting such a method, information indicating what correction is necessary is embedded in the part that has been converted into a difficult code in the conventional method, and the developer can use this as a clue to find the appropriate source. The code can be completed efficiently, and as a result, a highly maintainable program can be obtained at a lower cost than before.
次に、本実施例に係るプログラム変換方式によるプログラム変換の一例を示す。図2は、本実施例に係るプログラム変換方式によるプログラム変換の一例を示すための説明図である。 Next, an example of program conversion by the program conversion method according to the present embodiment is shown. FIG. 2 is an explanatory diagram for illustrating an example of program conversion by the program conversion method according to the present embodiment.
COBOLとJava(登録商標)には言語仕様の上で異なる点が多いが、基本的な記憶領域の管理方法においても相違がある。COBOLにおいては、ひとつの記憶領域を階層的に分割してそれぞれの階層毎に名前をつけることができる。たとえば、図2の変換前のCOBOLのソースプログラムにおいては、WK−DATE名づけられた領域は、YYと名づけられた領域と、MMと名づけられた領域と、DDと名づけられた領域に分割されている。必要であれば、YYと名づけられた領域をYY1と名づけられた領域とYY2と名づけられた領域にさらに分割することもできる。 There are many differences between COBOL and Java (registered trademark) in terms of language specifications, but there are also differences in basic storage area management methods. In COBOL, one storage area can be divided hierarchically and given a name for each hierarchy. For example, in the COBOL source program before conversion in FIG. 2, the area named WK-DATE is divided into an area named YY, an area named MM, and an area named DD. Yes. If necessary, the area named YY can be further divided into an area named YY1 and an area named YY2.
この階層化された記憶領域(以下、「集団項目」という。)は、同じ記憶領域を共有しており、たとえばMMと名づけられた領域の値を更新すればWK−DATE名づけられた領域の一部が更新されたことになる。また、WK−DATE名づけられた領域全体を更新すれば、YYと名づけられた領域と、MMと名づけられた領域と、DDと名づけられた領域とがそれぞれ更新されたことになる。このような言語仕様を利用して、COBOLで作成されたプログラムでは、必要に応じて様々な階層を使い分けて記憶領域の参照や更新がおこなわれる。 This hierarchical storage area (hereinafter referred to as “group item”) shares the same storage area. For example, if the value of the area named MM is updated, one of the areas named WK-DATE is updated. The department has been updated. Also, if the entire area named WK-DATE is updated, the area named YY, the area named MM, and the area named DD are updated respectively. A program created by COBOL using such a language specification refers to and updates storage areas using various hierarchies as needed.
しかし、Java(登録商標)では、このように一つの記憶領域を階層的に分割することは言語仕様上できないため、どのように変換をおこなえばよいのかが問題となる。各階層の記憶領域を別個に用意し、アクセスメソッドを工夫することによってそれらの領域が共有されているかのように見せかけることも可能であるが、ソースプログラムが非常に複雑なものになってしまう。 However, in Java (registered trademark), it is impossible to divide a single storage area hierarchically in terms of language specifications, and therefore, how to perform conversion becomes a problem. It is possible to prepare storage areas for each layer separately and devise access methods to make them appear to be shared, but the source program becomes very complex.
そこで、図2の例においては、このような集団項目の参照と更新の処理については要変換ルールによって単純な字句変換をおこなわないようにしている。たとえば、”MOVE DATE TO WK−DATE.”というCOBOLの命令文は、集団項目の値を別の集団項目へ転記するという処理を示しているが、この処理は出力部により生成されたJava(登録商標)のソースプログラムにおいては空のsetというアクセスメソッドとして変換され、そこに実装すべき処理内容を示すコメントが挿入されている。 Therefore, in the example of FIG. 2, simple lexical conversion is not performed in the group item reference and update processing according to the conversion rule required. For example, the COBOL command statement “MOVE DATE TO WK-DATE.” Indicates a process of transferring the value of a group item to another group item. This process is a Java (registration) generated by the output unit. (Trademark) source program is converted as an empty set access method, and a comment indicating the processing content to be implemented is inserted therein.
この空のアクセスメソッドは、業務知識を有する開発者により必要な処理が実装され、業務上必要な領域の設定処理のみが加えられるため、プログラムが複雑化することなく、保守性の高いプログラムを得られることとなる。 This empty access method is implemented with necessary processing by a developer who has business knowledge, and only setting processing for areas required for business is added, so a program with high maintainability can be obtained without complicating the program. Will be.
次に、本実施例に係るプログラム変換装置100の構成について説明する。図3は、本実施例に係るプログラム変換装置の構成を示す機能ブロック図である。同図に示すように、本実施例に係るプログラム変換装置100は、ユーザインターフェース部200と、制御部300と、記憶部400とを有する。
Next, the configuration of the
ユーザインターフェース部200は、利用者に対して情報を提供し、また、利用者からの指示を受け付ける装置であり、液晶装置等の表示装置からなる表示部210と、キーボードやマウス等から構成される操作部220とを有する。
The
制御部300は、プログラム変換装置100を全体制御する制御部であり、変換前クレンジング部310と、変換前モデル生成部320と、変換後モデル生成部330と、ソースプログラム生成部340と、要確認箇所変換部350と、ルール抽出部370と、作業見積り部380とを有する。
The
変換前クレンジング部310は、変換前ソースプログラムを、変換がより容易な等価な表現に置き換える処理部である。変換前のソースプログラムは、何度かの改変を経て処理の流れが複雑化している場合が多く、これをこのまま変換すると処理が理解し難いプログラムになってしまう。そこで、変換前の段階でソースプログラムの処理の流れを整理して単純な流れになるように修正する。
The
図4は、変換前クレンジングの一例を示す説明図である。同図に示すように、変換前クレンジング部310による変換前のソースプログラム10においては、処理の記述順序が、処理1→処理2→処理3の順であるにもかかわらず、処理の実行順序が、処理1→処理3→処理2の順になっており、処理の記述順序と実際の処理の流れが異なっている。そこで、変換前クレンジング部310は、処理の記述順序を処理1→処理3→処理2に変更し、処理の記述順序と実際の処理の流れを一致させ、変換後のプログラムが理解しやすいものになるようにしている。
FIG. 4 is an explanatory diagram illustrating an example of pre-conversion cleansing. As shown in the figure, in the
変換前モデル生成部320は、変換前ソースプログラムを構文解析して変換前ソースデータモデルを生成する処理部であり、図1の入力部に相当する。変換前ソースデータモデルは、変換前ソースプログラムの構造を論理的に表現したモデルであり、言語変換のための中間形式として用いられる。
The pre-conversion
本実施例においては、変換前および変換後のソースデータモデルを、XML(Extensible Markup Language)を用いて表現する。XMLとは、タグと呼ばれる標識文字列を利用してデータとその構造を同時に表現することができるフォーマットである。 In the present embodiment, the source data model before and after conversion is expressed using XML (Extensible Markup Language). XML is a format that can express data and its structure at the same time using a marker character string called a tag.
図5は、変換前ソースプログラムから変換前ソースデータモデルへの変換の一例を示す説明図である。同図に示すように、変換前モデル生成部320は、変換前ソースデータモデル40としてprogramタグを作成し、そのname属性として変換前ソースプログラム30のプログラム名である”PG1”を設定し、field属性としてこのモデルのIDである”1”を設定する。
FIG. 5 is an explanatory diagram showing an example of conversion from a pre-conversion source program to a pre-conversion source data model. As shown in the figure, the pre-conversion
そして、programタグの要素としてdata_divisionタグ41を作成し、そこに変換前ソースプログラム30のデータ部31の解析結果を格納する。変数Aの定義31aは、ソースプログラムAに定義された内容をAとして定義するというものであるので、このソースプログラムAの内容も参照してその情報も格納する。こうしてdata_divisionタグ41の要素として追加されたdata_definitionタグ41aは、具体的には、変数Aが”1”というIDで識別される変数であって、fieldが”100”であるプログラムファイルの1行目に定義されたレベル1の変数であることを示している。
Then, a
この例では、変数AがCOPY句になっており、定義が別ファイルにあるためこのような表現になっている。もし、変数Aが”01 A PIC X(2).”のように同一ファイル中で定義されていれば、data_definitionタグ41aは、変数Aが2桁の文字列であることを示す表現になる。
In this example, the variable A is a COPY clause, and the definition is in a separate file, so this is the expression. If the variable A is defined in the same file as “01 A PIC X (2).”, The
さらに、変換前モデル生成部320は、programタグの要素としてprocedure_divisionタグ42を作成し、そこに変換前ソースプログラム30のプログラム部32の解析結果を格納する。
Further, the pre-conversion
この例では、MOVE文32aを解析し、その解析結果をprocedure_divisionタグ42の要素であるstatementタグ42aとして格納している。statementタグ42aは、具体的には、命令文の種類がMOVE文であり、変更前ソースプログラム30における記述位置は20行目であり、MOVE文の転記元は”1”というIDで識別される変数Aで、転記先が”2”というIDで識別される変数Bであることを示している。
In this example, the
なお、プログラムの変換に際しては、変数の利用状況などをプログラム全体に亘って広範に調べることが必要になるため、関連するプログラムを一括して変換する必要があるが、変換対象となるプログラムの数は数百から数千におよぶことが珍しくない。このため、変換対象のプログラムを1本追加することが必要になった場合であっても、このように大量のプログラムを再度構文解析してソースデータモデル化するために大量の処理時間が必要となる。 When converting a program, it is necessary to examine the usage status of variables over the entire program. Therefore, it is necessary to convert related programs at once, but the number of programs to be converted It is not uncommon to range from hundreds to thousands. For this reason, even when it is necessary to add one program to be converted, a large amount of processing time is required to parse a large amount of programs again and make a source data model. Become.
そこで、変換前モデル生成部320は、生成した変換前ソースデータモデルをソースデータモデル記憶部410に記憶し、新規もしくは更新されたソースプログラムが変換対象として指定された場合以外は、ここに記憶された変換済みのソースデータモデルを読み出して出力する。
Therefore, the pre-conversion
変換後モデル生成部330は、変換前ソースデータモデルをルール記憶部420の情報に基づいて変換し、変換後ソースデータモデルを生成する処理部であり、図1の変換エンジンに相当する。変換前ソースデータモデルは、COBOLの言語仕様に基づいたモデルであるのに対し、変換後ソースデータモデルは、Java(登録商標)の言語仕様に基づいたモデルとなる。
The post-conversion
変換後モデル生成部330の基本的な処理内容は、変換前ソースデータモデルのうち要確認ルールDB421の情報に合致した部分を要確認タグに置き換え、その他の部分を変換ルールDB423の情報に基づいてCOBOLのモデルからJava(登録商標)のモデルに変換するというものである。COBOLのモデルからJava(登録商標)のモデルへ変換するにあたってはいくつか問題がある。
The basic processing content of the post-conversion
ひとつめの問題は、データ型の問題である。たとえば、COBOLの文字列型には桁数の概念があり、変数Xが4桁の文字列型の変数で、変数Yが2桁の文字列型の変数だとすると、この両者に同じ“ABC”という値を代入して比較した場合、変数Xと変数Yは桁数の違いのために一致しないと判定される。 The first problem is a data type problem. For example, the COBOL character string type has the concept of the number of digits. If the variable X is a four-digit character string type variable and the variable Y is a two-digit character string type variable, the same “ABC” is used for both. When a comparison is made by substituting values, it is determined that the variables X and Y do not match due to the difference in the number of digits.
一方、Java(登録商標)で標準的な文字列型であるStringクラスには桁数の概念がないので、Stringクラスの変数XとYに同じ“ABC”という値を代入して比較した場合、両者は一致すると判定される。 On the other hand, since there is no concept of the number of digits in the String class that is a standard character string type in Java (registered trademark), when the same value “ABC” is substituted into the variables X and Y of the String class, Both are determined to match.
このようなデータ型の問題を解決するため、動作が同じになるように変換時に比較処理等を置き換えることも可能であるが、変換後の処理が複雑化してしまう可能性があり、保守性の上で好ましくない。そこで、本実施例にかかるプログラム変換においては、このようなデータ型の問題を解決するため、変換後のデータ型のように振る舞い、かつ、変換前のデータ型の特徴を反映したラッパー型をJava(登録商標)側で用意して、このラッパー型を用いてプログラムの変換をおこなうこととした。かかるラッパー型に変換前の言語の機能をもたせれば、変換前の型をラッパー型に置き換えるだけの単純な変換で等価な処理を実現でき、平易で保守性の高いプログラムを得ることができる。 In order to solve such a data type problem, it is possible to replace the comparison processing at the time of conversion so that the operation is the same, but the processing after conversion may be complicated, and maintainability Unfavorable above. Therefore, in the program conversion according to the present embodiment, in order to solve such a data type problem, a wrapper type that behaves like the data type after conversion and reflects the characteristics of the data type before conversion is set to Java. Prepared on the (registered trademark) side and converted the program using this wrapper type. If such a wrapper type has the function of the language before conversion, equivalent processing can be realized by simple conversion by simply replacing the type before conversion with the wrapper type, and a simple and highly maintainable program can be obtained.
もうひとつの問題は、変数へのアクセス方法の問題である。オブジェクト指向においては、クラス内の変数へ外部から直接アクセスすることは、オブジェクト指向の基本的な考え方であるデータ隠蔽の観点から好ましくないとされており、通常はメソッドを経由して変数にアクセスする方式がとられる。しかし、COBOLにはこのような慣習はないため、従来の単純な変換方法では、変数に直接アクセスするようなJava(登録商標)らしくないプログラムを生成する方式か、または、全ての変数に対してアクセスメソッドを生成する方式が取られていた。 Another problem is how to access variables. In object orientation, direct access to variables in a class from the outside is considered undesirable from the viewpoint of data hiding, which is the basic concept of object orientation, and usually a method of accessing variables via methods. Is taken. However, since there is no such convention in COBOL, the conventional simple conversion method generates a program that does not look like Java (registered trademark) that directly accesses variables, or accesses all variables. The method of generating the method was taken.
そこで、本実施例にかかるプログラム変換においては、変換前ソースデータモデルから変数の参照・更新関係を導出し、変換時に必要となるアクセスメソッドだけを生成し、変数への直接のアクセスをこれらのアクセスメソッドを経由したアクセスに置き換えることとした。これにより、必要かつ十分なアクセスメソッドだけを作成するため、従来の方法に比べて保守性の高いJava(登録商標)プログラムを得ることができる。 Therefore, in the program conversion according to the present embodiment, the reference / update relationship of variables is derived from the source data model before conversion, only the access methods required at the time of conversion are generated, and direct access to the variables is accessed. Replaced with access via method. Thereby, since only necessary and sufficient access methods are created, it is possible to obtain a Java (registered trademark) program having higher maintainability than the conventional method.
図6は、変換前ソースデータモデルから変換後ソースデータモデルへの変換の一例を示す説明図である。同図に示すように、変換後モデル生成部330は、変換後ソースデータモデル50としてclassタグを作成し、そのname属性とclassid属性に変換前ソースデータモデル40のprogramタグのname属性とfield属性の値を設定する。
FIG. 6 is an explanatory diagram illustrating an example of conversion from a source data model before conversion to a source data model after conversion. As shown in the figure, the post-conversion
そして、classタグの要素としてfieldタグ53を作成し、そこに変換前ソースデータモデル40のdata_divisionタグ41の内容をルール記憶部420の情報を使って変換した結果を格納する。
Then, a
data_definitionタグ41aは、変数の型が外部のファイルで定義されていることを示しているので、他ファイルで定義されるクラスの変数として変換し、その情報をfieldタグ53の要素であるfield_definitionタグ53aとして格納する。field_definitionタグ53aは、具体的には、変数aが”1”というIDで識別される変数であって、この変数のクラスはclassidが”100”のクラスであることを示している。
The
ここで、変数名を大文字から小文字に変換しているのは、Java(登録商標)では変数は通常小文字で記述されるのに合わせるためであり、一般のJava(登録商標)プログラマに見やすいプログラムを生成するための処理である。 Here, the reason for converting the variable name from uppercase to lowercase is to match that the variable is normally written in lowercase in Java (registered trademark), and a program that is easy to read for general Java (registered trademark) programmers. It is a process for generating.
さらに、変換後モデル生成部330は、classタグの要素としてmethodタグ54を作成し、そこに変換前ソースデータモデル40のprocedure_divisionタグ42の内容をルール記憶部420の情報を使って変換した結果を格納する。
Further, the post-conversion
この例では、変数の内容の転記の処理を変換してmethodタグ54の要素であるstatementタグ54aとして格納している。statementタグ42aは、代入により変数の内容の転記をおこなうことを意味しているが、既に説明したようにJava(登録商標)ではクラス間で変数を直接アクセスすることはしない慣習があるため、アクセスメソッドの呼び出しにより変数の内容の転記をおこなう処理に置き換えている。具体的には、転記先の変数bのsetメソッドを呼び出し、このメソッドの引数として転記元の変数aを渡すという処理に置き換えをおこなっている。
In this example, the variable content transfer process is converted and stored as a
なお、このsetメソッドの実体は、クラスBの変換後ソースデータモデル51に挿入する。クラスBの変換後ソースデータモデル51は、変換前ソースプログラム30においてCOPY句により取り込まれていたソースプログラムを変換して生成したモデルであり、当初は変数の型定義のみを含んでいたものである。Java(登録商標)等のオブジェクト指向言語においては、変数の定義と、定義された変数を操作する処理とを一つのクラスに収める必要があるため、setメソッドの実体の追加は、このモデルに対しておこなう。
The entity of the set method is inserted into the converted
setメソッドは、変数にアクセスするためのメソッドであるためfieldタグ55の要素であるfield_accessタグ56として追加する。ここで、変換元のstatementタグ42aの処理は集団項目へ値を転記する処理であり、要確認ルールDB421のルールの一つに該当する。このため、statementタグ42aの処理内容については変換ルールDB423に基づいた変換はおこなわずに、空のsetメソッド56aを作成し、そこに要確認ルールDB421に基づいて要確認タグ56bを挿入する。
Since the set method is a method for accessing a variable, it is added as a
要確認タグ56bは、具体的にはこの場所に埋め込むべき処理は変換元のプログラム”PG1.cob”の20行目に記述されており、この部分を変換する開発者の手助けとして”TODO−1”というコメントIDが示すメッセージを表示する必要があるということを意味している。
For the
このようにして変換後モデル生成部330は、実際に必要なアクセスメソッドのみを作成する。使用されないアクセスメソッドが作成されることはないので、変換後のプログラムには不要なアクセスメソッドが存在しないことになり、高い保守性を得ることができる。
In this way, the post-conversion
なお、クラスBの変換後ソースデータモデル51のfield_definitionタグ55aの変換元の変数は文字型である。既に述べたように、COBOLの文字列型には桁数の概念があり、変換後のJava(登録商標)のプログラムにおいては桁数の概念をもったStringクラスのラッパークラスに変換する必要がある。このため、field_definitionタグ55aにsize属性として変換元の桁数を保持させている。
The source variable of the
ソースプログラム生成部340は、変換後ソースデータモデルから要確認箇所付き変換後ソースプログラムを生成する処理部であり、図1の出力部に相当する。要確認箇所付き変換後ソースプログラムは、変換後ソースデータモデルの要確認タグをコメントとして出力したソースプログラムである。
The source
図7は、変換後ソースデータモデルから変換後ソースプログラムへの変換の一例を示す説明図である。同図に示すように、ソースプログラム生成部340は、変換後ソースデータモデル50のfield_definitionタグ53aを変数定義60aに変換し、statementタグ54aをset文60cに変換する等して変換後ソースプログラム60を生成する。
FIG. 7 is an explanatory diagram showing an example of conversion from the converted source data model to the converted source program. As shown in the figure, the source
また、変換後ソースデータモデル51を変換して変換後ソースプログラム61を生成する。変換後ソースデータモデル51には要確認タグ56bが含まれるため、要確認コメントDB422を参照してcomment属性に設定されたコメントIDに該当するコメントを取得し、このコメントと、ここに埋め込むべき処理がどの変換前ソースプログラムのどこに存在するかを示す情報とを所定の位置にコメントとして出力する。文字型の変数を定義するfield_definitionタグ55aについては、Stringクラスの変数としてではなく、桁数の概念をもったBizStringクラスの変数として変換する。
The converted
要確認箇所変換部350は、要確認箇所付き変換後ソースプログラムにコメントの形で埋め込まれた要確認箇所を適切な記述に置き換えて変換後ソースプログラムを完成させる処理部である。本実施例においては、要確認箇所変換部350は、開発者が要確認箇所付き変換後ソースプログラムを編集するための編集画面として実装される。開発者は、図8に示したガイドを参照して編集をおこなう。
The required
型変換部360は、変換後ソースプログラムに含まれるラッパークラスを一般的なクラスに置き換える処理部である。既に説明したように、COBOLとJava(登録商標)のデータ型の違いを吸収するために、本実施例に係るプログラム変換は、COBOLのデータ型をそのデータ型を模したJava(登録商標)のラッパークラスに置き換えることがある。
The
しかし、たとえばCOBOLの文字列型についてみると、文字列同士の比較や暗黙の桁落としなどがおこなわれていなければラッパークラスではなく文字列をあつかう最も一般的なクラスであるStringクラスに変換しても問題はおこらない。ラッパークラスは、変換後のプログラムの保守性を大きく損なうものではないが、より普遍的なクラスを用いた方が可読性が高まる。 However, for example, in the case of the COBOL character string type, if there is no comparison between strings or implicit digit reduction, it is converted to the String class, which is the most common class that handles character strings instead of the wrapper class. No problem. The wrapper class does not greatly impair the maintainability of the converted program, but the readability is enhanced by using a more universal class.
そこで、型変換部360は、ソースデータモデル記憶部410に記憶されたモデルを参照し、ラッパークラスでなく通常のクラスの変数としても問題ないと判断した変数については、通常のクラスの変数へ変換する。図9は、型変換部による型変換の一例を示す説明図である。同図に示すように、BizStringクラスを用いた変数定義64aは、比較に用いられていないと判断され、一般的なStringクラスを用いた変数定義71aに変換されている。
Therefore, the
ルール抽出部370は、要確認箇所変換部350でおこなわれる編集内容から頻出するパターンを抜き出し、それを変換ルールDB423にフィードバックして以降の変換処理を自動化して効率化を図るための処理部である。ルール抽出部370は、たとえば、要確認箇所に埋め込まれた処理の類似度を測定し、頻出する類似パターンを抽出する。
The
図10は、フィードバックしたルールによるプログラム変換の一例を示す説明図である。同図は、日付関連のデータを変換するルールをフィードバックした場合の例を示している。COBOLにおいて、年月日は、しばしばYYMMDDのような名前の8桁の数字からなる変数として定義され、さらにこの変数の記憶領域が分割されてYY、MM、DDのような名前の変数が定義され、それぞれ年部分、月部分、日付部分として利用される。 FIG. 10 is an explanatory diagram showing an example of program conversion based on the fed back rules. This figure shows an example in which a rule for converting date-related data is fed back. In COBOL, the date is often defined as a variable consisting of an 8-digit number with a name such as YYMMDD, and the storage area of this variable is further divided to define variables with names such as YY, MM, and DD. , Used as year, month and date respectively.
このような日付関連の集団項目は様々なプログラム中に存在し、これをいちいち手作業で置き換えていたのでは作業コストが高くついてしまう。BizDateのような汎用的なクラスを用意し、このクラスを用いたプログラム変換を自動におこなうように要確認ルールDB421と変換ルールDB423を設定することでプログラム変換作業を効率化することができる。
Such date-related group items exist in various programs, and if they are manually replaced one by one, the work cost will be high. By preparing a general-purpose class such as BizDate and setting the
作業見積り部380は、要確認部の変換に要する時間を見積る処理部である。ソースプログラム生成部340にて出力された要確認箇所付きソースプログラムに大量の要確認箇所が含まれていると、プログラムの変換に要する作業時間が、プログラムを一から開発し直した場合と同等になってしまう場合がある。
The
このような場合には、より保守性の高いプログラムを得ることができる一からの開発を選択した方が賢明といえる。そこで、作業見積り部380は、ソースデータモデル記憶部410と要確認ルールDB421の情報をもちいてどのような要確認箇所がどのくらいの数発生するかを見積り、プログラム変換の対応方法の判断材料を提供する。
In such a case, it is wise to choose development from scratch that can provide a more maintainable program. Therefore, the
記憶部400は、ソースデータモデル記憶部410とルール記憶部420とを有する。ソースデータモデル記憶部410は、変換前モデル生成部320により生成された変換前データソースモデルと変換後モデル生成部330により生成された変換後データソースモデルとを記憶する。
The
ルール記憶部420は、要確認ルールDB421と、要確認コメントDB422と、変換ルールDB423と、型ライブラリDBと424とを有する。要確認ルールDB421は、変換ルールDB423に基づいた字句変換を行わない場合についてのルールを記憶する。
The
図11は、要確認ルールDB421のデータ構造の一例を示すデータ構造図である。同図に示すように、要確認ルールDBは、ステートメントと、条件と、対応箇所と、コメントIDという項目をもつ。ステートメントは、当該のルールが対象とする命令文を格納する。条件は、当該のルールを適用する条件を格納する。対応箇所は、当該のルールを適用する場合の要確認タグの挿入先を格納する。コメントIDは、当該のルールを適用する場合に要確認タグに埋め込むコメントIDを格納する。
FIG. 11 is a data structure diagram illustrating an example of the data structure of the
要確認コメントDB422は、要確認ルールDB421のコメントIDに対応するコメントを記憶する。図12は、要確認コメントDB422のデータ構造の一例を示すデータ構造図である。同図に示すように、要確認コメントDB422は、コメントIDとコメントという項目をもつ。コメントIDは、要確認ルールDB421のコメントIDと対応する値を格納する。コメントは、要確認ルールが適用された場合に要確認箇所付きソースプログラムに埋め込まれるコメント文を格納する。なお、コメント文の#filenameおよび#lineは、ソースプログラム生成部340により、それぞれ変換前のプログラム名と変換箇所の行番号に置き換えられる。
The required
変換ルールDB423は、変換前ソースデータモデルを文法的に字句変換するためのルールを記憶する。型ライブラリDB424は、プログラム変換時に使用するラッパークラスの情報を変換元のデータ型と対で記憶する。
The
次に、図3に示したプログラム変換装置100の処理手順について説明する。図13は、図3に示したプログラム変換装置100の処理手順を示すフローチャートである。
Next, the processing procedure of the
同図に示すように、変換前のソースプログラムを読み込んだならば(ステップS101)、そのプログラムが新規ないし更新されたものであるかどうかを確認する。プログラムが新規ないし更新されたものである場合は(ステップS102肯定)、クレンジング処理を行って変換が容易な形に修正する(ステップS103)。プログラムが新規でも更新されたものでもない場合には(ステップS102否定)、ステップS103はおこなわない。 As shown in the figure, when the source program before conversion is read (step S101), it is confirmed whether or not the program is new or updated. If the program is new or updated (Yes at Step S102), a cleansing process is performed to correct the program so that the conversion is easy (Step S103). If the program is neither new nor updated (No at Step S102), Step S103 is not performed.
そして、まだ読み込んでいないファイルが存在している場合には(ステップS104否定)、ステップS101に戻って次のソースプログラムの読み込みをおこなう。全ての変換前のソースプログラムを読み込んでいた場合は(ステップS104肯定)、変換前ソースデータモデルを生成し(ステップS105)、変換前ソースデータモデル全体を対象にして解析をおこなって変換後ソースデータモデルを作成する(ステップS106)。この変換後ソースデータモデルでは、字句変換では難解なコードとして変換されそうな部分に要確認タグが挿入される。 If there is a file that has not been read yet (No at Step S104), the process returns to Step S101 to read the next source program. If all the source programs before conversion have been read (Yes at Step S104), a source data model before conversion is generated (Step S105), the entire source data model before conversion is analyzed, and the converted source data is converted. A model is created (step S106). In this post-conversion source data model, a confirmation tag is inserted in a portion that is likely to be converted as a difficult code by lexical conversion.
そして、変換後ソースデータモデルをもとにして要確認箇所付きソースプログラムを生成する(ステップS107)。この要確認箇所付きソースプログラムでは、要確認タグの内容がコメントの形で挿入される。 Then, a source program with a confirmation required part is generated based on the converted source data model (step S107). In this source program with a confirmation part, the contents of the confirmation tag are inserted in the form of a comment.
そして、要確認箇所付きソースプログラムの要確認タグの部分に適切なコードを埋め込み(ステップS108)、必然性のないラッパークラスを通常のクラスに変換してプログラムの変換は完了する(ステップS109)。 Then, an appropriate code is embedded in the part of the confirmation tag of the source program with confirmation part required (step S108), the non-necessary wrapper class is converted into a normal class, and the conversion of the program is completed (step S109).
上述してきたように、本実施例では、変換後モデル生成部330が変換前ソースデータモデルから変換後ソースデータモデルを生成する際に、要確認ルールDB421のルールに該当する箇所は変換ルールDBを用いた字句変換はおこなわず、適切なコードを埋めるための補助情報を埋め込むように構成したので、単純な字句変換をおこなったならば複雑で可読性の低いコードが生成されそうな処理を業務知識を背景とした良質なコードで効率よく変換することができ、もって保守性の高い変換後ソースプログラムを効率よく得ることができる。
As described above, in the present embodiment, when the post-conversion
(付記1)第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換プログラムであって、
前記起点ソースプログラムを構文解析して前記第1のプログラミング言語に基づくデータモデルを生成する変換前モデル生成手順と、
前記第1のプログラミング言語に基づくデータモデルを前記第2のプログラミング言語に基づくデータモデルへ変換するに際して、変換後のデータモデルが複雑化する可能性があることを判定する所定のルールに該当する箇所に、別手段により変換をおこなうための手掛かり情報を挿入する変換後モデル生成手順と、
前記第2のプログラミング言語に基づくデータモデルを前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を前記目的ソースプログラムの適切な箇所に埋め込むソースプログラム生成手順と
をコンピュータに実行させることを特徴とするプログラム変換プログラム。
(Supplementary Note 1) A program conversion program for converting a source program written in a first programming language into a target source program written in a second programming language,
A pre-conversion model generation procedure for parsing the origin source program to generate a data model based on the first programming language;
Location corresponding to a predetermined rule for determining that the converted data model may be complicated when the data model based on the first programming language is converted to the data model based on the second programming language In addition, a post-conversion model generation procedure for inserting clue information for performing conversion by another means,
When converting a data model based on the second programming language into the target source program described in the second programming language, a source program generation procedure for embedding the clue information in an appropriate portion of the target source program; A program conversion program which is executed by a computer.
(付記2)前記ソースプログラム生成手順は、前記手掛かり情報をプログラムのコメントとして前記目的ソースプログラムに埋め込むことを特徴とする付記1に記載のプログラム変換プログラム。
(Supplementary note 2) The program conversion program according to
(付記3)前記ソースプログラム生成手順は、前記手掛かり情報として前記起点ソースプログラムの名称と該起点ソースプログラムのうち前記所定のルールに該当した部分の位置情報とを埋め込むことを特徴とする付記1または2に記載のプログラム変換プログラム。 (Additional remark 3) The source program generation procedure embeds the name of the starting source program and the position information of the portion corresponding to the predetermined rule in the starting source program as the clue information. 2. The program conversion program according to 2.
(付記4)前記変換後モデル生成手順は、前記起点ソースプログラムで使用されているデータ型に相当するデータ型が前記第2のプログラミング言語に存在しない場合に、前記第2のプログラミング言語により該データ型と同等の仕様をもつように事前に作成された特定化したデータ型を用いて変換をおこなうことを特徴とする付記1、2または3に記載のプログラム変換プログラム。
(Supplementary Note 4) The converted model generation procedure is performed by the second programming language when the data type corresponding to the data type used in the starting source program does not exist in the second programming language. 4. The program conversion program according to
(付記5)前記特定化したデータ型を通常用いられる汎用のデータ型に置き換えても問題ないと判断したならば、前記目的ソースプログラムに含まれる前者のデータ型を後者のデータ型に置き換える型変換手順をさらにコンピュータに実行させることを特徴とする付記4に記載のプログラム変換プログラム。
(Supplementary Note 5) If it is determined that there is no problem in replacing the specified data type with a general-purpose data type that is normally used, type conversion that replaces the former data type included in the target source program with the latter data type The program conversion program according to
(付記6)前記変換前モデル生成手順の前段階において、前記起点ソースプログラムをより変換が容易な記述に等価変換する変換前クレンジング手順をさらにコンピュータに実行させることを特徴とする付記1〜5のいずれか一つに記載のプログラム変換プログラム。 (Supplementary note 6) In the preceding stage of the pre-conversion model generation procedure, the computer further executes a pre-conversion cleansing procedure for equivalently transforming the starting source program into a description that is easier to convert. The program conversion program as described in any one.
(付記7)前記変換後モデル生成手順は、前記第2のプログラミング言語がオブジェクト指向言語である場合に、変数への実際のアクセスがあることを根拠として該変数へアクセスするためのメソッドを作成することを特徴とする付記1〜6のいずれか一つに記載のプログラム変換プログラム。
(Supplementary note 7) The post-conversion model generation procedure creates a method for accessing a variable on the basis that there is an actual access to the variable when the second programming language is an object-oriented language. The program conversion program according to any one of
(付記8)前記変換前モデル生成手順により生成された前記第1のプログラミング言語に基づくデータモデルを記憶する記憶手順をさらにコンピュータに実行させ、
前記変換前モデル生成手順は、過去に変換したものと同一の起点ソースプログラムを変換対象として受け付けた場合においては、変換処理をおこなわずに、前期記憶手順により記憶された当該の変換前ソースデータモデルを取得してこれを出力することを特徴とする付記1〜7のいずれか一つに記載のプログラム変換プログラム。
(Supplementary Note 8) A computer further executes a storage procedure for storing a data model based on the first programming language generated by the pre-conversion model generation procedure,
In the pre-conversion model generation procedure, when the same starting source program as the one converted in the past is accepted as a conversion target, the conversion source data model stored in the previous storage procedure is stored without performing the conversion process. The program conversion program according to any one of
(付記9)前記変換前モデル生成手順により生成された前記第1のプログラミング言語に基づくデータモデルに基づいて前記目的ソースプログラム埋め込まれる前記手掛かり情報の数を手掛かり情報の種類別に集計する作業見積り手順をさらにコンピュータに実行させることを特徴とする付記1〜8のいずれか一つに記載のプログラム変換プログラム。
(Additional remark 9) The work estimation procedure which totals the number of the said clue information embedded in the said target source program according to the kind of clue information based on the data model based on the said 1st programming language produced | generated by the said pre-conversion model production | generation procedure. The program conversion program according to any one of
(付記10)前記目的ソースプログラムの前記手掛かり情報部分に追記された処理の記述から変換ルールの抽出をおこなうルール抽出手順をさらにコンピュータに実行させることを特徴とする付記1〜9のいずれか一つに記載のプログラム変換プログラム。
(Supplementary note 10) Any one of
(付記11)第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換装置であって、
前記起点ソースプログラムを構文解析して前記第1のプログラミング言語に基づくデータモデルを生成する変換前モデル生成手段と、
前記第1のプログラミング言語に基づくデータモデルを前記第2のプログラミング言語に基づくデータモデルへ変換するに際して、変換後のデータモデルが複雑化する可能性があることを判定する所定のルールに該当する箇所に、別手段により変換をおこなうための手掛かり情報を挿入する変換後モデル生成手段と、
前記第2のプログラミング言語に基づくデータモデルを前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を前記目的ソースプログラムの適切な箇所に埋め込むソースプログラム生成手段と
を備えたことを特徴とするプログラム変換装置。
(Supplementary note 11) A program conversion device for converting a source program written in a first programming language into a target source program written in a second programming language,
Pre-conversion model generation means for parsing the starting source program to generate a data model based on the first programming language;
Location corresponding to a predetermined rule for determining that the converted data model may be complicated when the data model based on the first programming language is converted to the data model based on the second programming language In addition, after-conversion model generation means for inserting clue information for performing conversion by another means,
Source program generation means for embedding the clue information in an appropriate portion of the target source program when converting a data model based on the second programming language into the target source program described in the second programming language; A program conversion apparatus comprising:
(付記12)第1のプログラミング言語で記述された起点ソースプログラムを第2のプログラミング言語で記述された目的ソースプログラムに変換するプログラム変換方法であって、
前記起点ソースプログラムを構文解析して前記第1のプログラミング言語に基づくデータモデルを生成する変換前モデル生成工程と、
前記第1のプログラミング言語に基づくデータモデルを前記第2のプログラミング言語に基づくデータモデルへ変換するに際して、変換後のデータモデルが複雑化する可能性があることを判定する所定のルールに該当する箇所に、別工程により変換をおこなうための手掛かり情報を挿入する変換後モデル生成工程と、
前記第2のプログラミング言語に基づくデータモデルを前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を前記目的ソースプログラムの適切な箇所に埋め込むソースプログラム生成工程と
を含んだことを特徴とするプログラム変換方法。
(Supplementary note 12) A program conversion method for converting an origin source program described in a first programming language into a target source program described in a second programming language,
A pre-conversion model generation step of parsing the origin source program to generate a data model based on the first programming language;
Location corresponding to a predetermined rule for determining that the converted data model may be complicated when the data model based on the first programming language is converted to the data model based on the second programming language In addition, a post-conversion model generation process for inserting clue information for performing the conversion in a separate process,
A source program generation step of embedding the clue information in an appropriate portion of the target source program when converting a data model based on the second programming language into the target source program described in the second programming language; The program conversion method characterized by including.
以上のように、本発明にかかるプログラム変換プログラム、プログラム変換装置およびプログラム変換方法は、プログラム言語の変換に有用であり、特に、変換結果として保守性の高いソースプログラムが必要なプログラム変換に適している。 As described above, the program conversion program, the program conversion apparatus, and the program conversion method according to the present invention are useful for program language conversion, and are particularly suitable for program conversion that requires a highly maintainable source program as a conversion result. Yes.
10 ソースプログラム
20 クレンジング後ソースプログラム
30 変換前ソースプログラム
31 データ部
31a 変数Aの定義
31b 変数Bの定義
32 プログラム部
32a MOVE文
40 変換前ソースデータモデル
41 data_divisionタグ
41a data_definitionタグ
41b data_definitionタグ
42 procedure_divisionタグ
42a statementタグ
50 変換後ソースデータモデル
51 変換後ソースデータモデル
52 変換後ソースデータモデル
53 fieldタグ
53a field_definitionタグ
53b field_definitionタグ
54 methodタグ
54a statementタグ
55 fieldタグ
55a field_definitionタグ
55b field_definitionタグ
56 field_accessタグ
56a 空のsetメソッド
56b 要確認タグ
60 変換後ソースプログラム
60a 変数定義
60b 変数定義
60c set文
61 変換後ソースプログラム
61a 変数定義
61b 変数定義
61c アクセスメソッド
62 変換後ソースプログラム
70 変換後ソースプログラム
70a 変数定義
70b 変数定義
70c set文
71 変換後ソースプログラム
71a 変数定義
71b 変数定義
71c アクセスメソッド
72 変換後ソースプログラム
80 変換前ソースプログラム
80a 年月日の定義
80b 年月日の操作
81 フィードバックなしの場合のPG1クラス
81a 年月日の定義
81b 年月日の操作
82 個別に作成される年月日クラス
83 フィードバックありの場合のPG1クラス
83a 年月日の定義
83b 年月日の操作
84 共有される年月日クラス
100 プログラム変換装置
200 ユーザインターフェース部
210 表示部
220 操作部
300 制御部
310 変換前クレンジング部
320 変換前モデル生成部(入力部)
330 変換後モデル生成部(変換エンジン)
340 ソースプログラム生成部(出力部)
350 要確認箇所変換部
360 型変換部
370 ルール抽出部
380 作業見積り部
400 記憶部
410 ソースデータモデル記憶部
420 ルール記憶部
421 要確認ルールDB
422 要確認コメントDB
423 変換ルールDB
424 型ライブラリDB
10 source program 20 source program after cleansing 30 source program before conversion 31 data part 31a definition of variable A 31b definition of variable B 32 program part 32a MOVE sentence 40 source data model before conversion 41 data_definition tag 41b data_definition tag 41b data_definition tag 41b data_definition tag 42a statement tag 50 source data model after conversion 51 source data model after conversion 52 source data model after conversion 53 field tag 53a field_definition tag 53b field_definition tag 54 method tag 54a statement tag 55 field tag 55 eld_definition tag 55b field_definition tag 56 field_access tag 56a empty set method 56b confirmation required tag 60 converted source program 60a variable definition 60b variable definition 60c set statement 61 converted source program 61a variable definition 61c post conversion method 62c variable definition 61c access method 70 Source program after conversion 70a Variable definition 70b Variable definition 70c set statement 71 Source program after conversion 71a Variable definition 71b Variable definition 71c Access method 72 Source program after conversion 80 Source program before conversion 80a Definition of date 80b Operation of date 81 PG1 class without feedback 81a Definition of year / month / day 81b Operation of year / month / day 8 2 Date class created individually 83 Class PG1 with feedback 83a Definition of year, month, day 83b Operation of year, month, day 84 Shared date class 100 Program converter 200 User interface unit 210 Display unit 220 Operation unit 300 Control unit 310 Cleansing unit before conversion 320 Model generation unit before conversion (input unit)
330 Model generator after conversion (conversion engine)
340 Source program generator (output unit)
350 Confirmation
422 Comment DB required
423 Conversion rule DB
424 type library DB
Claims (6)
前記起点ソースプログラムを構文解析して前記第1のプログラミング言語の文法に基づく前記起点ソースプログラムの構文木を生成する変換前モデル生成手順と、
第1の記憶部に記憶された、前記第1のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換する変換ルールに基づき、前記起点ソースプログラムの構文木を前記第2のプログラミング言語の文法に基づく構文木に変換するに際して、第2の記憶部に記憶された、階層化されたデータ型を前記変換ルールに基づく変換の対象外とする条件に基づき、前記条件に該当する箇所を含む前記起点ソースプログラムの構文木に対応する、前記第2のプログラミング言語の文法に基づく構文木に、前記変換ルールに基づく変換の対象外としたことを示す手掛かり情報を挿入する変換後モデル生成手順と、
前記第2のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を、前記目的ソースプログラムの、前記手掛り情報が挿入された前記第2のプログラミング言語の文法に基づく構文木に対応する箇所に埋め込むソースプログラム生成手順と
をコンピュータに実行させることを特徴とするプログラム変換プログラム。 A program conversion program for converting an origin source program described in a first programming language into a target source program described in a second programming language,
A pre-conversion model generation procedure for parsing the starting source program to generate a syntax tree of the starting source program based on the grammar of the first programming language;
Stored in the first storage unit, based on a syntax tree based on the grammar of the first programming language conversion rule for converting the syntax tree based on the grammar of the second programming language, the syntax tree of the origin source program Is converted into a syntax tree based on the grammar of the second programming language, based on the condition that the layered data type stored in the second storage unit is excluded from the conversion based on the conversion rule, The clue information indicating that the syntax tree based on the grammar of the second programming language corresponding to the syntax tree of the starting source program including the portion corresponding to the condition is excluded from the conversion based on the conversion rule. The post-conversion model generation procedure to be inserted,
When converting a syntax tree based on the grammar of the second programming language into the target source program described in the second programming language, the clue information of the target source program is inserted. A program conversion program for causing a computer to execute a source program generation procedure embedded in a location corresponding to a syntax tree based on the grammar of the second programming language .
前記目的ソースプログラムにおいて、前記特定化したデータ型が比較に用いられていない場合に、前記特定化したデータ型を前記第2のプログラミング言語に存在するデータ型に置き換える型変換手順をさらにコンピュータに実行させることを特徴とする請求項1、2または3に記載のプログラム変換プログラム。 In the target source program, when the specified data type is not used for comparison, the computer further executes a type conversion procedure for replacing the specified data type with a data type existing in the second programming language. The program conversion program according to claim 1, 2, or 3.
前記起点ソースプログラムを構文解析して前記第1のプログラミング言語の文法に基づく前記ソースプログラムの構文木を生成する変換前モデル生成手段と、
前記第1のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換する変換ルールを記憶する第1の記憶部と、
階層化されたデータ型を前記変換ルールに基づく変換の対象外とする条件を記憶する第2の記憶部と、
前記第1の記憶部に記憶された前記変換ルールに基づき、前記ソースプログラムの構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換するに際して、前記第2の記憶部に記憶された前記条件に該当する箇所を含む前記起点ソースプログラムの構文木に対応する、前記第2のプログラミング言語の文法に基づく構文木に、前記変換ルールに基づく変換の対象外としたことを示す手掛かり情報を挿入する変換後モデル生成手段と、
前記第2のプログラミング言語の文法に基づくデータモデルを前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を、前記目的ソースプログラムの、前記手掛り情報が挿入された前記第2のプログラミング言語の文法に基づく構文木に対応する箇所に埋め込むソースプログラム生成手段と
を備えたことを特徴とするプログラム変換装置。 A program conversion device for converting an origin source program described in a first programming language into a target source program described in a second programming language,
Pre-conversion model generation means for parsing the starting source program to generate a syntax tree of the source program based on the grammar of the first programming language;
A first storage unit for storing a conversion rule for converting a syntax tree based on the grammar of the first programming language into a syntax tree based on the grammar of the second programming language;
A second storage unit for storing a condition that the hierarchized data type is not subject to conversion based on the conversion rule;
When the syntax tree of the source program is converted into the syntax tree based on the grammar of the second programming language based on the conversion rule stored in the first storage unit, the syntax is stored in the second storage unit. The clue information indicating that the syntax tree based on the grammar of the second programming language corresponding to the syntax tree of the starting source program including the portion corresponding to the condition is excluded from the conversion based on the conversion rule. A converted model generation means to be inserted;
When converting the data model based on the grammar of the second programming language into the target source program described in the second programming language, the clue information of the target source program is inserted with the clue information A program conversion apparatus comprising: a source program generation unit embedded in a location corresponding to a syntax tree based on the grammar of the second programming language .
前記起点ソースプログラムを構文解析して前記第1のプログラミング言語の文法に基づく前記起点ソースプログラムの構文木を生成する変換前モデル生成工程と、
第1の記憶部に記憶された、前記第1のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語の文法に基づく構文木へ変換する変換ルールに基づき、前記起点ソースプログラムの構文木を前記第2のプログラミング言語の文法に基づく構文木に変換するに際して、第2の記憶部に記憶された、階層化されたデータ型を前記変換ルールに基づく変換の対象外とする条件に基づき、前記条件に該当する箇所を含む前記起点ソースプログラムの構文木に対応する、前記第2のプログラミング言語の文法に基づく構文木に、前記変換ルールに基づく変換の対象外としたことを示す手掛かり情報を挿入する変換後モデル生成工程と、
前記第2のプログラミング言語の文法に基づく構文木を前記第2のプログラミング言語で記述された前記目的ソースプログラムに変換するに際して、前記手掛かり情報を前記目的ソースプログラムの適切な箇所に埋め込むソースプログラム生成工程と
を含んだことを特徴とするプログラム変換方法。 A program conversion method for converting a source program written in a first programming language into a target source program written in a second programming language,
A pre-conversion model generation step of parsing the starting source program to generate a syntax tree of the starting source program based on the grammar of the first programming language;
Stored in the first storage unit, based on a syntax tree based on the grammar of the first programming language conversion rule for converting the syntax tree based on the grammar of the second programming language, the syntax tree of the origin source program Is converted into a syntax tree based on the grammar of the second programming language, based on the condition that the layered data type stored in the second storage unit is excluded from the conversion based on the conversion rule, The clue information indicating that the syntax tree based on the grammar of the second programming language corresponding to the syntax tree of the starting source program including the portion corresponding to the condition is excluded from the conversion based on the conversion rule. A post-conversion model generation process to be inserted;
A source program generating step of embedding the clue information in an appropriate portion of the target source program when converting a syntax tree based on the grammar of the second programming language into the target source program described in the second programming language; A program conversion method comprising: and.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004187026A JP4724387B2 (en) | 2004-06-24 | 2004-06-24 | Program conversion program, program conversion apparatus, and program conversion method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004187026A JP4724387B2 (en) | 2004-06-24 | 2004-06-24 | Program conversion program, program conversion apparatus, and program conversion method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006011756A JP2006011756A (en) | 2006-01-12 |
JP4724387B2 true JP4724387B2 (en) | 2011-07-13 |
Family
ID=35778963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004187026A Expired - Lifetime JP4724387B2 (en) | 2004-06-24 | 2004-06-24 | Program conversion program, program conversion apparatus, and program conversion method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4724387B2 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4951416B2 (en) * | 2007-06-01 | 2012-06-13 | 株式会社 日立システムアンドサービス | Program verification method and program verification apparatus |
JP5147626B2 (en) * | 2008-09-30 | 2013-02-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Computer system for executing program including JAVA (registered trademark) code converted from COBOL code, and method and computer program thereof |
JP5293563B2 (en) * | 2009-10-30 | 2013-09-18 | 新日鐵住金株式会社 | Language conversion device, language conversion method and program |
WO2013179486A1 (en) * | 2012-06-01 | 2013-12-05 | 株式会社日立製作所 | Program conversion method, program conversion system, and program |
JP6239438B2 (en) * | 2014-04-28 | 2017-11-29 | 東芝デジタルソリューションズ株式会社 | Specification extraction device, specification extraction method and program |
JP6251158B2 (en) * | 2014-12-12 | 2017-12-20 | Tis株式会社 | Program conversion system |
US10261767B2 (en) * | 2016-09-15 | 2019-04-16 | Talend, Inc. | Data integration job conversion |
JP6944838B6 (en) * | 2017-08-25 | 2021-11-02 | 株式会社日立社会情報サービス | Conversion device and conversion method |
JP6458196B1 (en) * | 2018-09-27 | 2019-01-23 | Tis株式会社 | Program conversion system, conversion program execution system, information processing system, program conversion method, conversion program execution method, and information processing method |
JP6475888B1 (en) * | 2018-10-05 | 2019-02-27 | Tis株式会社 | Program conversion system |
JP7306026B2 (en) * | 2019-04-01 | 2023-07-11 | カシオ計算機株式会社 | Program for converting program, information processing apparatus, and information processing method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10508398A (en) * | 1994-10-07 | 1998-08-18 | タンデム コンピューターズ インコーポレイテッド | Method and apparatus for converting source code from one high-level computer language to another high-level computer language |
JP2000029678A (en) * | 1998-05-18 | 2000-01-28 | Ntt Communication Ware Kk | Program language conversion method, device therefor and recording medium |
JP2004038297A (en) * | 2002-06-28 | 2004-02-05 | Jcreation Co Ltd | Program format conversion apparatus and conversion program |
JP2004118374A (en) * | 2002-09-25 | 2004-04-15 | Keio Gijuku | Conversion device, conversion method, conversion program and computer-readable recording medium with conversion program recorded |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01175035A (en) * | 1987-12-29 | 1989-07-11 | Fujitsu Ltd | Multi-language processing converter |
JP2892351B2 (en) * | 1987-12-29 | 1999-05-17 | 富士通株式会社 | Source program converter |
JP2675100B2 (en) * | 1988-09-30 | 1997-11-12 | 株式会社日立製作所 | Language converter and language conversion method |
JPH04191933A (en) * | 1990-11-27 | 1992-07-10 | Hitachi Ltd | Method and device for converting program language |
-
2004
- 2004-06-24 JP JP2004187026A patent/JP4724387B2/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10508398A (en) * | 1994-10-07 | 1998-08-18 | タンデム コンピューターズ インコーポレイテッド | Method and apparatus for converting source code from one high-level computer language to another high-level computer language |
JP2000029678A (en) * | 1998-05-18 | 2000-01-28 | Ntt Communication Ware Kk | Program language conversion method, device therefor and recording medium |
JP2004038297A (en) * | 2002-06-28 | 2004-02-05 | Jcreation Co Ltd | Program format conversion apparatus and conversion program |
JP2004118374A (en) * | 2002-09-25 | 2004-04-15 | Keio Gijuku | Conversion device, conversion method, conversion program and computer-readable recording medium with conversion program recorded |
Also Published As
Publication number | Publication date |
---|---|
JP2006011756A (en) | 2006-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788238B2 (en) | Extensible object-modelling mechanism | |
EP2530583A1 (en) | Computer-implemented method, system and computer program product for displaying a user interface component | |
CN108762743B (en) | Data table operation code generation method and device | |
US8589877B2 (en) | Modeling and linking documents for packaged software application configuration | |
US7444314B2 (en) | Methods and apparatus for business rules authoring and operation employing a customizable vocabulary | |
US6951010B2 (en) | Program specification generating system | |
US5933634A (en) | Mock-up method and mock-up control system for displaying pseudo operation | |
US7237226B2 (en) | Method and system for storing pending changes to data | |
JP2007034813A (en) | Software manual generation system in two or more natural languages | |
US8387010B2 (en) | Automatic software configuring system | |
JP4724387B2 (en) | Program conversion program, program conversion apparatus, and program conversion method | |
Cánovas Izquierdo et al. | A domain specific language for extracting models in software modernization | |
JPH10254689A (en) | Application constitution design supporting system for client/server system | |
CN113971044A (en) | Component document generation method, device, equipment and readable storage medium | |
JP2008225898A (en) | Conversion device, conversion program, and conversion method | |
JP2010205068A (en) | Software resource transition system and transition method thereof | |
Kalnins et al. | Metamodel specialization for graphical language support | |
Schröpfer et al. | A Generic Projectional Editor for EMF Models. | |
US20080270985A1 (en) | Database application assembly and preparation | |
JP4939007B2 (en) | System design support program | |
KR20230040516A (en) | Automation system and method for extracting intermediate representation based semantics of javascript | |
CN113811849A (en) | System and method for computer-aided computer programming | |
Mittelbach et al. | LATEX Tagged PDF Feasibility Evaluation | |
JP2001273125A (en) | Method and system for automatically generating source program, and program recording medium therefor | |
EP4261678A1 (en) | Generation of a technical instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070518 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101012 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110405 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110411 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4724387 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |