JP6496640B2 - Cobolソースコード変換プログラム - Google Patents
Cobolソースコード変換プログラム Download PDFInfo
- Publication number
- JP6496640B2 JP6496640B2 JP2015180561A JP2015180561A JP6496640B2 JP 6496640 B2 JP6496640 B2 JP 6496640B2 JP 2015180561 A JP2015180561 A JP 2015180561A JP 2015180561 A JP2015180561 A JP 2015180561A JP 6496640 B2 JP6496640 B2 JP 6496640B2
- Authority
- JP
- Japan
- Prior art keywords
- source code
- statement
- cobol
- sentence
- conversion
- 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.)
- Active
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
図1は、本発明の実施形態1に係るCOBOLソースコード変換プログラム120を実行するコンピュータ100およびその周辺構成を示す図である。コンピュータ100は、CPU(Central Processing Unit)110、COBOLソースコード変換プログラム120、記憶装置200を備える。
図2は、変換前ソースコード310と変換後ソースコード320との間の言語仕様の違いを例示するサンプルソースコードである。見易さを考慮して、変換した部分に網掛けを付与するとともに、IF条件文の範囲を示す符号を付与しているが、実際のソースコードにおいてこれらは存在していないことを付言しておく。以下に説明するソースコードも同様である。
COBOLソースコード変換プログラム120が変換前ソースコード310を変換するに際して、変換前ソースコード310のIF条件文の構文構造を把握し、これを何らかのデータ形式によってコンピュータ100上で表現する必要がある。そこでCOBOLソースコード変換プログラム120は、以下に説明する原理にしたがって、変換前ソースコード310の構文構造を表した2分ヒープ210を作成する。
(ルール1)IF文を記述しているソースコード行は、2分ヒープ210の根ノードまたは親ノードとして表す。
(ルール2)親ノードが表すIF条件が成立した場合の処理を記述しているソースコード行は、当該親ノードの左側子ノードとして表す。同条件が成立しなかった場合の処理を記述しているソースコード行は、当該親ノードの右側子ノードとして表す。
(ルール3)条件文以外の処理は、葉ノードとして表す。
図4は、COBOLソースコード変換プログラム120が変換前ソースコード310の構文構造を解析する手順を説明する図である。ここでは図2で例示した変換前ソースコード310を2分ヒープによって表した例を示した。また変換後ソースコード320との間の対応関係を示すため、対応するソースコード行に対して変換後ソースコード320と同じ行番号を付与した。
実施形態1で説明した2分ヒープ210と等価な構造は、プログラム処理上においては様々なデータ形式によって表すことができる。本発明の実施形態2では、スタック(Last−In First−Outのデータ構造)を用いてIF条件文の構文構造を表す処理例について説明する。
COBOLソースコード変換プログラム120は、COBOLソースコードを1行ずつ(すなわち1文ずつ)読み込み、以下のルールにしたがってスタック220を作成する。
(ルール1)読み込んだ文がIF文である場合は、スタック220の先頭にその旨を示す値(以下ではIF文識別子と呼ぶ)をプッシュする。
(ルール2)読み込んだ文がELSE文である場合は、スタック220の先頭にその旨を示す値(以下ではELSE文識別子と呼ぶ)をプッシュする。
(ルール3)IF条件文が終結した場合は、スタック220の先頭からELSE文識別子とIF文識別子のペアを削除する。
図7は、COBOLソースコード変換プログラム120が変換前ソースコード310の構文構造を解析する手順を説明する図である。ここでは図2で例示した変換前ソースコード310をスタック220によって表した例を示した。また変換後ソースコード320との間の対応関係を示すため、対応するソースコード行に対して変換後ソースコード320と同じ行番号を付与した。
図9は、本発明の実施形態3に係るCOBOLソースコード変換プログラム120の動作を説明する図である。以上の実施形態において、COBOLソースコード変換プログラム120がEND−IF文を単純に挿入した場合、図9左図に示すように、行の先頭から開始するEND−IF文が追加されることになる。かかるソースコードは視認性が悪いので好ましくない。
Claims (4)
- 条件文におけるEND−IF文とCONTINUE文をサポートしていない旧バージョンのCOBOL言語によって記述された変換前ソースコードを、条件文におけるEND−IF文とCONTINUE文をサポートする新バージョンのCOBOL言語によって記述された変換後ソースコードへ変換する処理を、コンピュータに実行させるCOBOLソースコード変換プログラムであって、前記コンピュータに、
前記変換前ソースコードを記憶装置から読み取る読取ステップ、
前記変換前ソースコードが記述している処理のうち、IF文とELSE文によって構成された条件分岐処理であってNEXT SENTENCE文によってその条件分岐が終端しているものを特定する第1特定ステップ、
前記変換前ソースコードが記述している処理のうち、IF文とELSE文によって構成された条件分岐処理であってピリオドによってその条件分岐が終端しているものを特定する第2特定ステップ、
前記第1特定ステップにおいて特定した条件分岐の終了箇所にEND−IF文を挿入する第1挿入ステップ、
前記第2特定ステップにおいて特定した条件分岐の終了箇所にEND−IF文を挿入する第2挿入ステップ、
を実行させ、
前記読取ステップにおいては、前記コンピュータに、前記変換前ソースコードを1文ずつ読み取るステップを実行させ、
前記COBOLソースコード変換プログラムはさらに、前記コンピュータに、
前記読取ステップにおいて読み取った前記変換前ソースコードの文がIF文である場合はその旨を示すIF文識別子を前記コンピュータ上に構築したスタック領域の先頭にプッシュし、ELSE文である場合はその旨を示すELSE文識別子を前記スタック領域の先頭にプッシュするステップを実行させ、
前記第1特定ステップにおいては、前記コンピュータに、
前記読取ステップにおいて読み取った前記変換前ソースコードの文がELSE文であり、かつ前記スタック領域の先頭に前記ELSE文識別子が格納されている場合は、そのELSE文識別子が表すELSE文の後に条件分岐が閉じられている箇所が存在するものと判定するステップを実行させる
ことを特徴とするCOBOLソースコード変換プログラム。 - 前記第1挿入ステップにおいては、前記コンピュータに、
前記スタック領域の先頭から前記ELSE文識別子と前記IF文識別子のペアを削除する処理を、前記スタック領域の先頭が前記ELSE文識別子でなくなるまで繰り返すとともに、その繰り返し回数だけEND−IF文を挿入するステップを実行させ、
前記第2挿入ステップにおいては、前記コンピュータに、
前記スタック領域の先頭から前記ELSE文識別子と前記IF文識別子のペアを削除する処理を、前記スタック領域の先頭が前記ELSE文識別子でなくなるまで繰り返すとともに、その繰り返し回数だけEND−IF文を挿入するステップを実行させる
ことを特徴とする請求項1記載のCOBOLソースコード変換プログラム。 - 前記COBOLソースコード変換プログラムはさらに、前記コンピュータに、
前記変換前ソースコード内のNEXT SENTENCE文をCONTINUE文に変換する変換ステップを実行させる
ことを特徴とする請求項1記載のCOBOLソースコード変換プログラム。 - 前記COBOLソースコード変換プログラムはさらに、前記コンピュータに、
前記第1挿入ステップおよび前記第2挿入ステップにおいて挿入したEND−IF文の前記変換後ソースコード上における行頭からのインデントをIF文のネスト深さに応じて調整するステップを実行させる
ことを特徴とする請求項1記載のCOBOLソースコード変換プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015180561A JP6496640B2 (ja) | 2015-09-14 | 2015-09-14 | Cobolソースコード変換プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015180561A JP6496640B2 (ja) | 2015-09-14 | 2015-09-14 | Cobolソースコード変換プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017058733A JP2017058733A (ja) | 2017-03-23 |
JP6496640B2 true JP6496640B2 (ja) | 2019-04-03 |
Family
ID=58391553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015180561A Active JP6496640B2 (ja) | 2015-09-14 | 2015-09-14 | Cobolソースコード変換プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6496640B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6341582B1 (ja) * | 2017-04-05 | 2018-06-13 | 石田 伸一 | ソースコード変換装置、ソースコード変換プログラム及びソースコード変換方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03288226A (ja) * | 1990-04-04 | 1991-12-18 | Hitachi Ltd | ソフトウエア評価方法 |
JP2755154B2 (ja) * | 1994-02-23 | 1998-05-20 | 日本電気株式会社 | プログラム変換処理装置およびプログラム変換処理方法 |
RU2260206C2 (ru) * | 1999-11-11 | 2005-09-10 | Информейшн Систем Дивелопмент Инститьют | Способ и устройство для воспроизведения программы и носитель с записанной на нем программой для воспроизведения программы |
JP4399154B2 (ja) * | 2002-11-05 | 2010-01-13 | 日本電信電話株式会社 | 翻訳装置、及び翻訳プログラム |
JP4973101B2 (ja) * | 2006-09-29 | 2012-07-11 | 日本電気株式会社 | 自動合成装置 |
JP5572619B2 (ja) * | 2011-12-02 | 2014-08-13 | 株式会社日立製作所 | トレース情報の数を算出する計算機、トレース情報の数を算出する方法及びトレース情報の数を算出させるプログラム |
-
2015
- 2015-09-14 JP JP2015180561A patent/JP6496640B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017058733A (ja) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9619211B2 (en) | Code suggestion in a software development tool | |
US9146712B2 (en) | Extensible code auto-fix framework based on XML query languages | |
JP4619698B2 (ja) | コードセグメント作成方法及びそのシステム | |
EP2434396A1 (en) | Automatic synchronous-to-asynchronous software application converter | |
CN110795088B (zh) | 前端工程项目构建方法和工具、计算机可读存储介质 | |
JP2015043198A (ja) | 解析システム、解析方法および解析プログラム | |
JP2010097426A (ja) | コンピュータプログラム、ソースプログラム入力受付装置及びソースプログラム入力受付方法 | |
JP6496640B2 (ja) | Cobolソースコード変換プログラム | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
US20110191760A1 (en) | Method and apparatus for enhancing comprehension of code time complexity and flow | |
CN109460236B (zh) | 程序版本构建和检查方法及系统 | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
JP2009104252A (ja) | デバッグ支援装置およびデバッグ支援方法 | |
JP2010108258A (ja) | コンパイル方法及びコンパイルプログラム | |
KR102614967B1 (ko) | 자바스크립트의 중간 언어 기반 의미론 추출 자동화 시스템 및 방법 | |
JP6502044B2 (ja) | データ解析装置、データ解析方法、および、プログラム。 | |
JP2011204069A (ja) | テスト方法およびテスト仕様書テストデータ自動生成装置 | |
JP5578625B2 (ja) | プログラム分析装置、プログラム分析方法、及びプログラム | |
JPWO2008123021A1 (ja) | 論理式生成装置、及び論理式生成方法 | |
KR20180115921A (ko) | 프로그래밍 언어간 변환 방법 | |
JP2007265098A (ja) | マクロ定義情報取得装置 | |
JP7163879B2 (ja) | データフロー生成装置、その方法、およびそのプログラム | |
JP2008176520A (ja) | タグ変換装置 | |
JP5293563B2 (ja) | 言語変換装置、言語変換方法およびプログラム | |
JP2010282248A (ja) | プログラム言語解析実行プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180402 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190215 |
|
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: 20190226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190311 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6496640 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |