IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ TIS株式会社の特許一覧

特許7608654プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム
<>
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図1
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図2
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図3
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図4
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図5
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図6
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図7
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図8
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図9
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図10
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図11
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図12
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図13
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図14
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図15
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図16
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図17
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図18
  • 特許-プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-12-20
(45)【発行日】2025-01-06
(54)【発明の名称】プログラミング言語変換システム、プログラミング言語変換方法、及びプログラム
(51)【国際特許分類】
   G06F 8/51 20180101AFI20241223BHJP
   G06F 8/53 20180101ALI20241223BHJP
【FI】
G06F8/51
G06F8/53
【請求項の数】 9
(21)【出願番号】P 2024029719
(22)【出願日】2024-02-29
【審査請求日】2024-08-29
【早期審査対象出願】
(73)【特許権者】
【識別番号】514020389
【氏名又は名称】TIS株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】藤本 美穂
(72)【発明者】
【氏名】長谷川 佐一
(72)【発明者】
【氏名】山田 勇樹
(72)【発明者】
【氏名】岩瀬 美雪
(72)【発明者】
【氏名】影山 剛伸
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2004-252807(JP,A)
【文献】特開2015-197821(JP,A)
【文献】米国特許出願公開第2011/0271247(US,A1)
【文献】中国特許第113282301(CN,B)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/51
G06F 8/53
(57)【特許請求の範囲】
【請求項1】
少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得する取得部と、
アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称で定義する命令を前記第1のプログラムから抽出する命令抽出部と、
前記命令抽出部で抽出された命令で定義される前記所定の名称と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報に基づいて、前記第1のプログラムにおける前記所定の名称で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報に置換する置換部と、
アセンブリ言語の命令を前記変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、前記置換部で置換された前記第1のプログラムである置換プログラムを前記変換プログラムに変換する変換部と、
を備えるプログラミング言語変換システム。
【請求項2】
前記第1のプログラムは、アセンブリ言語で記述されていない命令の第1の記述が含まれ、
前記置換部は、前記第1の記述と、アセンブリ言語で記述された命令の第2の記述と、を関連づけた置換情報に基づいて、前記第1のプログラムにおける前記第1の記述を前記第2の記述に置換する、
請求項1に記載のプログラミング言語変換システム。
【請求項3】
前記置換部は、前記変換プログラムで用いられる命令の第3の記述が前記第1のプログラムに含まれる場合、前記第1のプログラムに含まれる前記第3の記述を、前記変換プログラムに変換可能な、前記第3の記述と異なる第4の記述に置換する、
請求項1に記載のプログラミング言語変換システム。
【請求項4】
前記変換情報は、前記置換プログラムに含まれる命令のそれぞれの、前記変換プログラムにおける記述の位置を示す情報を含み、
前記変換部は、前記変換情報に基づいて、前記置換プログラムに含まれる命令のそれぞれに対応する前記変換プログラムにおける命令を、前記変換プログラムの所定の位置に記述する、
請求項1に記載のプログラミング言語変換システム。
【請求項5】
前記第1のプログラムにおける各行の命令に対するコメントを特定するコメント部と、
前記第1のプログラムにおいてコメントを付された命令に対応する、前記変換プログラムにおける命令に、前記コメント部で特定されたコメントを関連づけて表示部に表示する表示処理部と、
をさらに備える請求項1に記載のプログラミング言語変換システム。
【請求項6】
前記変換プログラムにおける各行のそれぞれの命令に、当該命令に対応する前記置換プログラムにおける命令を関連づけて表示部に表示する表示処理部をさらに備える、
請求項1に記載のプログラミング言語変換システム。
【請求項7】
前記置換プログラムに含まれる各行の命令のそれぞれを一意に識別可能な識別符号を、当該各行の命令のそれぞれに関連づけて表示部に表示し、
前記置換プログラムに含まれる各行の命令のそれぞれに関連づけられた前記識別符号を、前記置換プログラムに含まれる各行の命令のそれぞれに対応する前記変換プログラムに含まれる各行の命令のそれぞれに関連づけて表示部に表示する表示処理部をさらに備える、
請求項1に記載のプログラミング言語変換システム。
【請求項8】
コンピュータが、
少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得することと、
アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称で定義する命令を前記第1のプログラムから抽出することと、
抽出された命令で定義される前記所定の名称と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報に基づいて、前記第1のプログラムにおける前記所定の名称で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報に置換することと、
アセンブリ言語の命令を前記変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、置換された前記第1のプログラムである置換プログラムを前記変換プログラムに変換することと、
を実行するプログラミング言語変換方法。
【請求項9】
コンピュータに、
少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得することと、
アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称で定義する命令を前記第1のプログラムから抽出することと、
抽出された命令で定義される前記所定の名称と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報に基づいて、前記第1のプログラムにおける前記所定の名称で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報に置換することと、
アセンブリ言語の命令を前記変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、置換された前記第1のプログラムである置換プログラムを前記変換プログラムに変換することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラミング言語変換システム、プログラミング言語変換方法、及びプログラムに関する。
【背景技術】
【0002】
アセンブリ言語をCOBOLに変換可能なシステムが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-62746号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載のドキュメント生成装置は、アセンブリ言語で記述されたアセンブラプログラムを、他のプログラミング言語に変換する装置である。ドキュメント生成装置は、記憶部に格納されている原ソースを構成する一部のプログラムの記述を、当該記述に対応する変換情報に基づき、他言語のプログラムの記述に変換する。
【0005】
しかし、特許文献1に記載のドキュメント生成装置では、アセンブリ言語で記述されたアセンブラプログラムに、他のプログラミング言語に適切に変換できない命令が含まれる場合、アセンブラプログラムを他のプログラミング言語に変換できないという問題を生じる。
【0006】
そこで、本発明は、上記課題を鑑み、アセンブリ言語を他のプログラミング言語に適切に変換可能なシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係るプログラミング言語変換システムは、少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得する取得部と、アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称で定義する命令を前記第1のプログラムから抽出する命令抽出部と、前記命令抽出部で抽出された命令で定義される前記所定の名称と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報に基づいて、前記第1のプログラムにおける前記所定の名称で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報に置換する置換部と、アセンブリ言語の命令を前記変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、前記置換部で置換された前記第1のプログラムである置換プログラムを前記変換プログラムに変換する変換部と、を備える。
【0008】
本発明の一態様に係るプログラミング言語変換方法は、コンピュータが、少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得することと、アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称で定義する命令を前記第1のプログラムから抽出することと、抽出された命令で定義される前記所定の名称と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報に基づいて、前記第1のプログラムにおける前記所定の名称で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報に置換することと、アセンブリ言語の命令を前記変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、置換された前記第1のプログラムである置換プログラムを前記変換プログラムに変換することと、を実行する。
【0009】
本発明の一態様に係るプログラムは、コンピュータに、少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得することと、アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称で定義する命令を前記第1のプログラムから抽出することと、抽出された命令で定義される前記所定の名称と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報に基づいて、前記第1のプログラムにおける前記所定の名称で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報に置換することと、アセンブリ言語の命令を前記変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、置換された前記第1のプログラムである置換プログラムを前記変換プログラムに変換することと、を実行する。
【発明の効果】
【0010】
本発明によれば、アセンブリ言語を他のプログラミング言語に適切に変換可能なシステムを提供することができる。
【図面の簡単な説明】
【0011】
図1】プログラミング言語変換システムの構成の概要の一例を示す図である。
図2】置換情報D111の構成の一例を示す図である。
図3】定義情報D112の構成の一例を示す図である。
図4】変換情報D113の構成の一例を示す図である。
図5】プログラミング言語変換システムの処理手順の一例を示すフロー図である。
図6】変換プログラム用のレジスタ領域の作成処理の一例を示す図である。
図7】継続行の連結処理の一例を示す図である。
図8】定数を定義するDC命令の分解処理の一例を示す図である。
図9】第1の記述を第2の記述に置換する処理の一例を示す図である。
図10】第3の記述を第4の記述に置換する処理の一例を示す図である。
図11】EQU命令の定数定義を変換する処理の一例を示す図である。
図12】DSECT命令で規定されるエリアを変換する処理の一例を示す図である。
図13】DC命令,DS命令,ORG命令,DCBマクロ命令を示す情報のうちDC命令およびDS命令を変換する処理の一例を示す図である。
図14】レングス表記及び演算表記を変換する処理の一例を示す図である。
図15】命令オペランド部のエリア名を置換する処理の一例を示す図である。
図16】アドレス定数をDS(POINTER)のエリア定義に生成する処理の一例を示す図である。
図17】ベースと変位とで指定されるアドレス表記を置換する処理の一例を示す図である。
図18】変換プログラムにコメントを付与する処理の一例を示す図である。
図19】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0012】
添付図面を参照して、本発明の好適な実施形態(以下、「本実施形態」という)について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。本実施形態において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、一つの「部」や「手段」、「装置」、「システム」が有する機能が2つ以上の物理的手段や装置により実現されてもよく、二つ以上の「部」や「手段」、「装置」、「システム」の機能が1つの物理的手段や装置により実現されてもよい。
【0013】
===プログラミング言語変換システム100===
<<概要>>
プログラミング言語変換システム100は、アセンブリ言語を他のプログラミング言語に変換するシステムである。プログラミング言語変換システム100は、アセンブリ言語で記述されたプログラム(以下、「原プログラム」という。)を他のプログラミング言語(例えばCOBOL、C言語、Java等のプログラミング言語)で記述されたプログラム(以下、「変換プログラム」という。)に変換する前に、原プログラムの一部を変換したアセンブリ言語で記述されるプログラム(以下、「置換プログラム」という。)を生成する。
【0014】
置換プログラムは、原プログラムを変換プログラムに適切に変換可能とするために、原プログラムに含まれる命令の記述を変換プログラムに変換可能な命令の記述に変換したプログラムである。
【0015】
プログラミング言語変換システム100は、置換プログラムを生成するためのデータベースである後述する定義情報D112を原プログラムの記述に基づき生成する。定義情報D112には、例えば、原プログラムを変換プログラムに変換する際に支障となり得る情報を含む。支障となり得る情報とは、例えば定数、変数、数式および命令記述エリアなどを定義する命令である。アセンブルにおけるこれらの情報は、プログラム中の記述される位置が定まっていないため、原プログラムを変換プログラムに変換する際の支障となる。
【0016】
そこで、プログラミング言語変換システム100は、定義情報D112を参照して、原プログラムにおける定数、変数、数式および命令記述エリアなどを定義する命令を、変換プログラムに変換可能な記述に置換した置換プログラムを生成する。その後、プログラミング言語変換システム100は、置換プログラムの記述を変換プログラムの記述に変換するためのデータベースである後述する変換情報D113を参照して、置換プログラムを変換プログラムに変換する。
【0017】
すなわち、プログラミング言語変換システム100は、原プログラムの記述と、変換プログラムの記述とを一対一に対応づけたデータベースのみを参照して、原プログラムを変換プログラムに変換するものではない。上記のように、プログラミング言語変換システム100は、原プログラムから所定の記述を抽出して定義情報D112を生成するとともに、当該定義情報D112を参照して原プログラムの一部の記述を置換した置換プログラムを用いて、原プログラムを変換プログラムに適切かつ問題なく変換可能にするという、従来技術にはない特徴を有する。
【0018】
<<構成>>
図1を参照して、プログラミング言語変換システム100の構成の概要について説明する。図1は、プログラミング言語変換システム100の構成の概要の一例を示す図である。
【0019】
プログラミング言語変換システム100は、原プログラムの一部の記述を置換して置換プログラムを生成し、置換プログラムを変換プログラムに変換するシステムである。
【0020】
プログラミング言語変換システム100は、例えば、クラウドコンピュータ、サーバコンピュータ、パーソナルコンピュータ(例えば、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(例えば、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(例えば、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、またはコミュニケーションプラットホームであってもよい。なお、プログラミング言語変換システム100における処理の少なくとも一部は、1以上のコンピュータ(限定ではなく例として、1以上のコンピュータにより構成されるクラウドコンピューティング)により実現されていてもよい。
【0021】
図1に示すように、プログラミング言語変換システム100は、例えば、記憶部110と、取得部120と、命令抽出部130と、命令情報生成部140と、置換部150と、変換部160と、識別符号付与部170と、コメント部180と、表示処理部190とを含む。
【0022】
記憶部110は、原プログラム、変換プログラムおよび置換プログラムを関連づけて記憶する。また、記憶部110は、例えば、置換情報D111と、定義情報D112と、変換情報D113とを含む。
【0023】
図2を参照して、置換情報D111について説明する。図2は、置換情報D111の構成の一例を示す図である。プログラミング言語変換システム100は、置換情報D111を用いて、原プログラムに含まれるアセンブリ言語で記述されていない、少なくとも一つ以上の命令を含む記述をアセンブリ言語の命令に置換する。
【0024】
図2に示すように、置換情報D111は、例えば、[定義名称]、[命令]の項目を含んでいてもよい。[定義名称]は、アセンブリ言語の命令語を定義した名称を記憶する。すなわち、定義名称(第1の記述)は、アセンブリ言語で記述されていない命令の記述であり、いわゆるマクロ命令である。[命令]は定義名称が定義する少なくとも一つのアセンブリ言語で記述される命令を含む。図2に示すように、例えば、定義名称「CCON」は、アセンブリ言語で記述されていないマクロ命令を示す記述であり、「C0001 DC C‘0001’」および「C10 DC C‘10’」で構成される。
【0025】
図3を参照して、定義情報D112について説明する。図3は、定義情報D112の構成の一例を示す図である。定義情報D112は、原プログラムに含まれる各命令を抽出して生成されるデータベースである。プログラミング言語変換システム100は、定義情報D112を用いて原プログラムの一部の記述を置換した置換プログラムを生成する。定義情報D112を生成することにより、プログラミング言語変換システム100は、アセンブリ言語のプログラムでは各種命令の配置が任意であることによる、上の行から順に変換プログラムに変換していく処理では適切に変換できないという問題を解決することが可能となる。なお、定義情報D112には、アセンブリ言語の各命令の記述を、変換プログラムに変換可能な記述(不図示であるが、例えばレングス表記など)に関連づけて格納していてもよい。
【0026】
図3に示すように、定義情報D112は、例えば、アセンブリ言語における、DS命令・DC命令に関するデータベースD112a、ORG命令に関するデータベースD112b、EQU命令に関するデータベースD112c、DCBマクロ命令に関するデータベースD112d、及びDSECT命令に関するデータベースD112eを含む。
【0027】
DS命令・DC命令に関するデータベースD112aは、原プログラムに含まれるDS命令(例えば変数を定義)およびDC命令(例えば定数を定義)を格納するデータベースである。DS命令・DC命令に関するデータベースD112aは、一例としてプログラムP1を表形式で格納したものとして示す。例えば、DS命令・DC命令に関するデータベースD112aは、[ラベル名]、[アセンブラ命令]、[属性]、[レングス]、[定数]の項目を含んでいてもよい。
【0028】
ORG命令に関するデータベースD112bは、原プログラムに含まれるORG命令(例えばロケーションカウンターを変更する命令)を格納するデータベースである。ORG命令に関するデータベースD112bは、一例としてプログラムP2を表形式で格納したものとして示す。例えば、ORG命令に関するデータベースD112bは、[出現順]、[アセンブラ命令]、[エリア名]、[変位]の項目を含んでいてもよい。
【0029】
EQU命令に関するデータベースD112cは、原プログラムに含まれるEQU命令を格納するデータベースである。EQU命令(例えば式や数値に名称を付けるための命令)に関するデータベースD112cは、一例としてプログラムP3を表形式で格納したものとして示す。例えば、EQU命令に関するデータベースD112cは、[ラベル名]、[アセンブラ命令]、[値]の項目を含んでいてもよい。
【0030】
DCBマクロ命令に関するデータベースD112dは、原プログラムに含まれるDCBマクロ命令を格納するデータベースである。DCBマクロ命令(例えばジョブの実行中にデータ制御ブロック内の情報を完成するために使用される命令)に関するデータベースD112dは、一例としてプログラムP4を表形式で格納したものとして示す。例えば、DCBマクロ命令に関するデータベースD112dは、[ラベル名]、[マクロ命令]、[DDNAME]、[DSORG]、[MACRF]、[EODAD]、[SYNAD]の項目を含んでいてもよい。
【0031】
DSECT命令に関するデータベースD112eは、原プログラムに含まれるDSECT命令を格納するデータベースである。DSECT命令(例えば複数の定数および変数の定義が含まれる命令記述エリアを示す命令)に関するデータベースD112eは、一例としてプログラムP5を表形式で格納したものとして示す。例えば、DSECT命令に関するデータベースD112eは、[DSECT名]、[ラベル名]、[アセンブラ命令]、[属性]、[レングス]の項目を含んでいてもよい。
【0032】
図4を参照して、変換情報D113について説明する。図4は、変換情報D113の構成の一例を示す図である。プログラミング言語変換システム100は、変換情報D113を用いて、置換プログラムの各行を変換プログラムの各行に変換する。
【0033】
図4に示すように、変換情報D113、例えば、[アセンブリ言語]、[変換言語]、[変換位置]の項目を含んでいてもよい。[アセンブリ言語]はアセンブリ言語の命令を記憶する。[変換言語]はアセンブリ言語に対応する変換言語(例えばCOBOLなどのプログラミング言語)を記憶する。[変換位置]は変換プログラムにおける記述の位置を記憶する。
【0034】
取得部120は、少なくとも一部がアセンブリ言語で記述された原プログラム(第1のプログラム)を取得する。原プログラムには、例えば、アセンブリ言語で記述されていない命令を含む記述、および変換プログラムに変換不能なアセンブリ言語の命令が含まれ得る。
【0035】
命令抽出部130は、原プログラムに含まれるラベル名やアセンブラ命令などで特定され得る所定の名称で定義された命令を原プログラムから抽出する。例えば、命令抽出部130は、ラベル名「ON」でアセンブラ命令「EQU」で定義される「C‘1’」などを抽出する。すなわち、命令抽出部130は、例えば定義情報D112に含まれ得る命令を原プログラムから抽出する。
【0036】
命令情報生成部140は、命令抽出部130で抽出された情報に基づき定義情報D112を生成する。これにより、プログラミング言語変換システム100は、原プログラムにおいてラベル名やアセンブラ命令で定義されている命令内容を特定可能となるため、変換プログラムに適切に変換可能な置換プログラムを生成できる。
【0037】
置換部150は、定義情報D112を参照して、原プログラムにおける所定の名称を定数、変数、数式および命令記述エリアのうちのいずれかに置換して置換プログラムを生成する。具体的には、例えば、置換部150は、図3に示す「EQU」で定義された「ON」を「C‘1’」(例えば定数)に置換する。また、例えば、置換部150は、レングス表記(例えば「L’」)および演算表記を、変換プログラムに変換可能な表記(例えば定数、変数または数値など)に置換する。また、例えば、置換部150は、命令オペランド部のエリア名(例えば図3に示すDSECTのラベル名「OLAKBN」)を、変換プログラムに変換可能な表記(例えばレジスタの情報を含む「R7L_OLAKBN」)に置換する。これにより、プログラミング言語変換システム100は、原プログラムにおいて変換プログラムに適切に変換できない記述を適切に変換可能な記述に置換した置換プログラムを生成できるため、変換プログラムに適切に変換することができる。
【0038】
また、置換部150は、置換情報D111を参照して、原プログラムにおける記述のうちアセンブリ言語で記述されていない記述(例えばマクロ命令)を、変換プログラムに変換可能な記述に置換する。具体的には、置換部150は、例えばアセンブリ言語で記述されていない図2に示す「CCON」を、不図示の変換テーブルを参照して、アセンブリ言語であって変換プログラムに変換可能な「C0001 DC C‘0001’」および「C10 DC C‘10’」に置換する。これにより、プログラミング言語変換システム100は、原プログラム特有の記述を変換プログラムに適切に変換可能な記述に置換した置換プログラムを生成できる。
【0039】
また、置換部150は、変換プログラムで用いられる命令の記述が原プログラムに含まれる場合、原プログラムに含まれる当該記述を変換プログラムに変換可能な異なる記述に置換する。具体的には、置換部150は、例えば、不図示の変換言語テーブル(変換情報D113の[変換言語]項目でもよい。)を参照して、原プログラムに変換プログラムで用いられる記述を特定する。置換部150は、不図示の変換テーブルを参照して、特定された記述を、変換プログラムで用いられず、かつ変換プログラムに変換可能なアセンブリ言語の記述に置換する。これにより、プログラミング言語変換システム100は、原プログラムに含まれる、変換プログラムで用いられる記述であって、変換プログラムとは異なる意味の記述を、変換プログラムに適切に変換可能なアセンブリ言語の記述に置換して置換プログラムを生成できる。
【0040】
変換部160は、変換情報D113を参照して、置換プログラムを変換プログラムに変換する。具体的には、変換部160は、例えば、置換プログラムの各行を行番号が小さい順に変換プログラムのプログラミング言語に変換する。
【0041】
また、変換部160は、変換情報D113を参照して、置換プログラムに含まれる命令のそれぞれに対応する変換プログラムのプログラミング言語における命令を、変換プログラムの所定の位置に記述する。具体的には、例えば、変換部160は、置換プログラムにおける変数定義(例えばDS、DCなど)の記述を、例えば変換プログラムのプログラミング言語がCOBOLの場合、変換プログラム中の上のエリア(行番号が小さいエリア)に配置する。これにより、プログラミング言語変換システム100は、アセンブリ言語のプログラムにおける任意の位置の記述を、変換プログラムのプログラミング言語における特有の配置を担保して、変換プログラムに変換できる。
【0042】
識別符号付与部170は、原プログラム、置換プログラムおよび変換プログラムのそれぞれの各行を識別するための識別符号を付与する。識別符号は、各行を識別可能な符号であればよく、例えば連続する数字(行番号)であってもよい。プログラミング言語変換システム100は、原プログラムの各行に識別符号を付与して、当該各行に対応する置換プログラムおよび変換プログラムの各行に同じ識別符号を付与する。これにより、プログラミング言語変換システム100は、原プログラムの各行と、置換プログラムおよび変換プログラムの各行との対応関係が明確にすることが可能となる。
【0043】
コメント部180は、原プログラムにおける各行の命令に対するコメントを特定する。
【0044】
表示処理部190は、表示部1007に各種情報を出力する。表示処理部190は、例えば原プログラム、置換プログラムおよび変換プログラムのそれぞれを並べて表示部1007に表示させてもよい。これにより、プログラミング言語変換システム100は、原プログラム、置換プログラムおよび変換プログラムの対応関係を容易に把握可能な画面をユーザに提供することができるため、ユーザの利便性を向上できる。
【0045】
表示処理部190は、コメント部180で特定された原プログラムの各行のコメントを、当該各行に対応する変換プログラムにおける命令に当該コメントを関連づけて表示部1007に表示する。これにより、プログラミング言語変換システム100は、原プログラムの作成者の命令に対するコメントを変換プログラムに反映することできるため、ユーザの利便性を向上できる。
【0046】
また、表示処理部190は、変換プログラムにおける各行のそれぞれの命令に、当該命令に対応する置換プログラムの命令を関連づけて表示部1007に表示する。具体的には、表示処理部190は、例えば変換プログラムの所定の命令の一行上に当該命令に対応する置換プログラムの命令を表示させる。これにより、プログラミング言語変換システム100は、変換プログラムの各行に対応する置換プログラム(または原プログラム)を、変換プログラムとともに表示させることができるため、ユーザの利便性を向上できる。
【0047】
また、表示処理部190は、置換プログラム(および原プログラム)に含まれる各行の命令のそれぞれを一意に識別可能な識別符号を、当該各行の命令のそれぞれに関連づけて表示部に表示する。そして、表示処理部190は、置換プログラムに含まれる各行の命令のそれぞれに関連づけられた識別符号を、置換プログラムに含まれる各行の命令のそれぞれに対応する変換プログラムに含まれる各行の命令のそれぞれに関連づけて表示部1007に表示する。これにより、プログラミング言語変換システム100は、原プログラム、置換プログラムおよび変換プログラムの対応関係を容易に認識することができるため、ユーザの利便性を向上できる。
【0048】
<<処理手順>>
図5図17を参照して、プログラミング言語変換システム100の処理手順について説明する。図5は、プログラミング言語変換システム100の処理手順の一例を示すフロー図である。図6は、変換プログラム用のレジスタ領域の作成処理の一例を示す図である。図7は、継続行の連結処理の一例を示す図である。図8は、定数を定義するDC命令の分解処理の一例を示す図である。図9は、第1の記述を第2の記述に置換する処理の一例を示す図である。図10は、第3の記述を第4の記述に置換する処理の一例を示す図である。図11は、EQU命令の定数定義を変換する処理の一例を示す図である。図12は、DSECT命令で規定されるエリアを変換する処理の一例を示す図である。図13は、DC命令,DS命令,ORG命令,DCBマクロ命令を示す情報のうちDC命令およびDS命令を変換する処理の一例を示す図である。図14は、レングス表記及び演算表記を変換する処理の一例を示す図である。図15は、命令オペランド部のエリア名を置換する処理の一例を示す図である。図16は、アドレス定数をDS(POINTER)のエリア定義に生成する処理の一例を示す図である。図17は、ベースと変位とで指定されるアドレス表記を置換する処理の一例を示す図である。図18は、変換プログラムにコメントを付与する処理の一例を示す図である。
【0049】
なお、図6図17では、紙面上の左の枠から順に「原プログラム」、「置換プログラム」、「変換プログラム」(一例としてCOBOL)を示し、それぞれが対応する記述を破線で囲んで示す。
【0050】
ステップS100において、プログラミング言語変換システム100は、原プログラムの各行に、例えば各行のそれぞれを識別可能な行番号を連番で付与する。これにより、プログラミング言語変換システム100は、原プログラムと、置換プログラムおよび変換プログラムとの対応関係を視覚的に確認可能な表示をユーザに提供できる。
【0051】
ステップS101において、プログラミング言語変換システム100は、原プログラムをコピーしたプログラムを置換プログラム作成用として生成する。以下、便宜上、コピーされた原プログラムを置換プログラムとして説明する。
【0052】
ステップS102において、プログラミング言語変換システム100は、置換プログラムに対して初期処理を実行する。初期処理とは、例えば、変換プログラム用のレジスタ領域の作成処理、継続行の連結処理およびDC定義の分解処理などを含む。
【0053】
図6に示すように、変換プログラム用のレジスタ領域の作成処理は、変換プログラムが例えばCOBOLである場合、COBOLではレジスタを使用できないため、置換プログラムに仮想的なレジスタのエリアを作成することで、変換プログラムであるCOBOLでレジスタのエリア定義を反映可能とする。これにより、プログラミング言語変換システム100はアセンブリ言語を変換プログラムに適切に変換可能となる。
【0054】
図7に示すように、継続行の連結処理は、アセンブリ言語において縦並びでDCBマクロ命令が規定されている場合に、変換プログラムが例えばCOBOLである場合、縦並びのDCBマクロ命令を変換プログラムに変換できないため、置換プログラムに横並びの一行で規定する。これにより、プログラミング言語変換システム100はアセンブリ言語を変換プログラムに適切に変換可能となる。
【0055】
図8に示すように、定数を定義するDC命令の分解処理は、アセンブリ言語において横並びでDC命令が規定されている場合、変換プログラムが例えばCOBOLである場合、横並びのDC命令を変換プログラムに変換できないため、置換プログラムに縦並びの複数行で規定する。これにより、プログラミング言語変換システム100はアセンブリ言語を変換プログラムに適切に変換可能となる。
【0056】
ステップS103において、プログラミング言語変換システム100は、置換情報D111を参照して、原プログラムそれぞれの中で独自に定義されている第1の記述を、変換プログラムに変換可能な第2の記述に置換する。
【0057】
図9に示すように、具体的には、プログラミング言語変換システム100は、第1の記述(例えばマクロ命令)である「CCON」および「PCON」(原プログラムの記述を参照)を第2の記述(アセンブリ言語)である「DC」命令(置換プログラムの記述を参照)に置換する。図9では一例として、「CCON」および「PCON」はDSおよびDCを生成する命令として規定されている。これにより、図9に示すように適切に変換プログラムに変換できる。
【0058】
ステップS104において、プログラミング言語変換システム100は、変換プログラムで使用される命令語である第3の記述が原プログラムで異なる意味で使用されている場合、置換プログラムにおいて当該命令語を異なる第4の記述に置換する。なお、プログラミング言語変換システム100は、例えば、変換プログラムで使用される命令語の一覧を格納した命令語テーブル(不図示)を参照して、原プログラムにおける第3の記述を特定する。
【0059】
図10に示すように、具体的には、プログラミング言語変換システム100は、COBOLで使用される命令語(第3の記述)である「PLUS」(原プログラムの記述を参照)を例えば「PLUS_Y」(置換プログラムの記述を参照)に置換する。これにより、図10に示すように、プログラミング言語変換システム100は適切に変換プログラムに変換できる。
【0060】
ステップS105において、プログラミング言語変換システム100は、置換プログラムからアセンブリ言語の命令語であるEQU命令を取得して、定義情報D112に格納する。プログラミング言語変換システム100は、定義情報D112を参照して、置換プログラムのEQU命令(図11の「101420」行)を定数に置換する。
【0061】
図11に示すように、具体的には、プログラミング言語変換システム100は、置換プログラムの「100420」および「100430」行のEQU命令の定数定義(ONが「C‘1’」でOFFが「C‘0’」という定義)を取得して定義情報D112に格納する。そして、プログラミング言語変換システム100は、定義情報D112を参照して、置換プログラム中に出現する「ON」および「OFF」を定数に置換する。これにより、図11に示すように、プログラミング言語変換システム100は、変換プログラムで認識不能な原プログラムの定数の名称についても、適切に変換プログラムに変換できる。
【0062】
ステップS106において、プログラミング言語変換システム100は、複数の定数および変数の定義が含まれるDSECT命令のエリア(命令記述エリア)を示す情報を取得して、定義情報D112に格納する。
【0063】
図12に示すように、具体的には、プログラミング言語変換システム100は、置換プログラムからDSECT命令で規定されるエリア(図12の「102150」行~「102240」行)を示す情報を取得する。
【0064】
ステップS107において、プログラミング言語変換システム100は、定数を定義するDC命令、変数を定義するDS命令、ロケーションカウンターを変更するORG命令、ジョブの実行中にデータ制御ブロック内の情報を完成するために使用されるDCBマクロ命令を示す情報を取得して、定義情報D112に格納する。ここで、プログラミング言語変換システム100は、DS命令を取得後にDC命令を取得することが望ましい。これは、DS命令がDC命令で参照されるためである。
【0065】
図13に示すように、具体的には、プログラミング言語変換システム100は、例えばDS命令(ステップS102で縦並びに分解されたDC命令)およびDC命令で規定されるエリア(図13の「100590」行~「100620」行)を示す情報を取得する。
【0066】
ステップS108において、プログラミング言語変換システム100は、定義情報D112を参照して、原プログラムにおけるレングス表記「L’」及び演算表記「L’TBLLOG-5」を変数プログラムに変更可能な表記に置換する。
【0067】
図14に示すように、具体的には、プログラミング言語変換システム100は、例えば、定義情報D112を参照して、原プログラムの「TYP+L’TBLLOG-5(L’PTNLOG)」を特定し、「TBLLOGのレングスが32」で「PTNLOGのレングスが12」になると特定される場合、これを演算した結果である「TYP+27(12)」を置換プログラムにおいて置換する。これにより、図14の変換プログラムに示すように、置換プログラムを変換プログラムに適切に変換できる。
【0068】
ステップS109において、プログラミング言語変換システム100は、定義情報D112(ステップS106で取得したDSECT命令のエリアを示す情報)を参照して、置換プログラムにおける命令オペランド部のエリア名を置換する。
【0069】
図15に示すように、具体的には、プログラミング言語変換システム100は、例えば原プログラムに示される「OLAKBN」を置換プログラムにおいて「R7L_OLAKBN」(OLAKBNはレジスタ7をベースレジスタとして使用するという意味)に置換する。このように、予めステップS106でDSECT命令のエリアを示す情報を取得することにより、変換プログラムに適切に変換不能な原プログラムの記述を適切に変換可能な記述に置換して置換プログラムを生成できる。これにより、図15の変換プログラムに示すように、アセンブリ言語の置換プログラムを変換プログラムに適切に変換できる。
【0070】
ステップS110において、プログラミング言語変換システム100は、例えば原プログラムにおいてアドレス定数を使用している場合、置換プログラムにおいてDS(POINTER)のエリア定義を生成する。
【0071】
図16に示すように、具体的には、プログラミング言語変換システム100は、例えば原プログラムにおけるDCの「A(WOLA)」の行を、置換プログラムにおいてDS(POINTER項目として変換する定義)の疑似アセンブラ命令の行に置換する。このように、例えば変換プログラムがCOBOLである場合にPOINTERというアドレスを示すデータ型に置換することにより、図16の変換プログラムに示すように、アセンブリ言語の置換プログラムを変換プログラムに適切に変換できる。
【0072】
ステップS111において、プログラミング言語変換システム100は、例えば原プログラムの各ニーモニックでベースと変位とで指定されるアドレス表記されているオペランドを置換する。
【0073】
図17に示すように、具体的には、プログラミング言語変換システム100は、「CLC」の第1オペランドである「5(4,R9)」を、置換プログラムにおいて「R9L_X0005004」(レジスタ9をベースレジスタとして使用し、変位は5という意味で、変換プログラムに変換可能なエリア名)に置換する。これにより、図17の変換プログラムに示すように、アセンブリ言語の置換プログラムを変換プログラムに適切に変換できる。
【0074】
ステップS112において、プログラミング言語変換システム100は、定義情報D112を参照して、ステップS109で置換したエリアと、ステップS111で置換したエリアとをまとめてリンケージセクションにエリア定義する。
【0075】
ステップS113において、プログラミング言語変換システム100は、例えば定義情報D112および変換情報D113を参照して、置換プログラムを変換プログラムに変換する。このとき、プログラミング言語変換システム100は、変換情報D113を参照して、置換プログラムの各行を変換プログラムの適切な行に配置する。
【0076】
ステップS114において、プログラミング言語変換システム100は、変換プログラムを表示部に表示させる。図18に示すように、プログラミング言語変換システム100は、変換プログラムにコメントを付与してもよい。
【0077】
具体的には、プログラミング言語変換システム100は、原プログラムのアセンブラ行に記述されているコメント(例えば図18の「キンガクケイサンエリア」)を変換プログラムの対応する行に関連づけて当該コメント(図18の中央部の変換プログラムの「100460*」行)を表示させてもよい。さらに、プログラミング言語変換システム100は、原プログラムのアセンブリ言語を識別可能に、変換プログラムの対応する行に関連づけて表示させてもよい(図18の右端の変換プログラムの「100460*@@@」行)。これにより、プログラミング言語変換システム100は、アセンブリ言語と、それに対応する変換プログラムの記述を視覚的に容易に表示するため、適切な変換ができているか否かを容易に確認できるツールをユーザに提供できる。
【0078】
以上のように、プログラミング言語変換システム100では、原プログラムを変換プログラムに変換する際に、参照可能な定義情報D112を生成するとともに、原プログラムの各命令を変換プログラムに変換可能な記述に置換した置換プログラムを生成する。これにより、プログラミング言語変換システム100は、アセンブリ言語で記述されたプログラムを他のプログラミング言語で記述されたプログラムに適切に変換できる。
【0079】
すなわち、例えば、プログラミング言語変換システム100は、定数、変数、数式および命令記述エリアなどを示す命令が特定の位置に記述されていないという特徴を有するアセンブリ言語の原プログラムの当該命令を、単に変換テーブルを参照して変換プログラムに変換する場合に、アセンブリ言語の当該命令を適切に変換できないという問題を解消することが可能となる。
【0080】
また、例えば、プログラミング言語変換システム100は、アセンブリ言語で記述されていない命令(例えば図2の「PCON」や「CCON」など)、他のプログラミング言語に変換不能な命令(例えば命令を複数行で記述、命令を一行で記述、図2のレングス表記「L’」や演算表記など)および他のプログラミング言語で使用されている記述(例えば第3の記述)などの、原プログラムを変換プログラムに直接変換する際に問題を生じる記述を置換した置換プログラムを生成することで、変換プログラムに適切かつ問題なく変換することが可能となる。
【0081】
===ハードウェア構成===
図19を参照して、プログラミング言語変換システム100をコンピュータで実現する場合のハードウェア構成の一例を説明する。図19は、コンピュータのハードウェア構成の一例を示す図である。
【0082】
図19に示すように、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、入力I/F部1004と、データI/F部1005と、通信I/F部1006、及び表示部1007を含む。
【0083】
プロセッサ1001は、メモリ1002に記憶されているプログラムを実行することによりコンピュータ1000における各種の処理を制御する制御部である。
【0084】
メモリ1002は、例えばRAM(Random Access Memory)等の記憶媒体である。メモリ1002は、プロセッサ1001によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
【0085】
記憶装置1003は、例えばハードディスクドライブ(HDD)やフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置1003は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。
【0086】
入力I/F部1004は、ユーザからの入力を受け付けるためのデバイスである。入力I/F部1004の具体例としては、キーボードやマウス、タッチパネル、各種センサー、ウェアラブル・デバイス等が挙げられる。入力I/F部1004は、例えばUSB(Universal Serial Bus)等のインターフェースを介してコンピュータ1000に接続されても良い。
【0087】
データI/F部1005は、コンピュータ1000の外部からデータを入力するためのデバイスである。データI/F部1005の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データI/F部1005は、コンピュータ1000の外部に設けられることも考えられる。その場合、データI/F部1005は、例えばUSB等のインターフェースを介してコンピュータ1000へと接続される。
【0088】
通信I/F部1006は、コンピュータ1000の外部の装置と有線又は無線により、インターネットNを介したデータ通信を行うためのデバイスである。通信I/F部1006は、コンピュータ1000の外部に設けられることも考えられる。その場合、通信I/F部1006は、例えばUSB等のインターフェースを介してコンピュータ1000に接続される。
【0089】
表示部1007は、各種情報を表示するためのデバイスである。表示部1007の具体例としては、例えば液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示部1007は、コンピュータ1000の外部に設けられても良い。その場合、表示部1007は、例えばディスプレイケーブル等を介してコンピュータ1000に接続される。また、入力I/F部1004としてタッチパネルが採用される場合には、表示部1007は、入力I/F部1004と一体化して構成することが可能である。
【0090】
===まとめ===
<1>本実施形態におけるプログラミング言語変換システム100は、少なくとも一部がアセンブリ言語で記述された原プログラム(第1のプログラム)を取得する取得部と、アセンブリ言語で記述された定数、変数、数式および命令記述エリアのうちの少なくともいずれかを所定の名称(例えばラベル名やニーモニックなど)で定義する命令(DS命令、DC命令、ORG命令、EQU命令、DCBマクロ命令およびDSECT命令など)を前記原プログラム(第1のプログラム)から抽出する命令抽出部130と、前記命令抽出部130で抽出された命令で定義される前記所定の名称(例えばラベル名やニーモニックなど)と、定数、変数、数式および命令記述エリアのうちのいずれかと、を関連づけて生成された定義情報D112に基づいて、前記原プログラム(第1のプログラム)における前記所定の名称(例えばラベル名やニーモニックなど)で定義される前記定数、変数、数式および命令記述エリアのうちのいずれかを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式および命令記述エリアのうちのいずれかを示す情報(例えばEQU命令の「値」又は「数式」やDS・DC命令の定数、変数又はレングス表記、DSECT命令の命令記述エリアなどを示す記述)に置換する置換部150と、アセンブリ言語の命令を変換プログラムのプログラミング言語(例えばCOBOLなど)の命令に変換するための変換情報D113に基づいて、前記置換部150で置換された前記原プログラム(第1のプログラム)である置換プログラムを前記変換プログラムに変換する変換部160と、を備える。このように、プログラミング言語変換システム100は、原プログラムから所定の記述を抽出して定義情報D112を生成するとともに、当該定義情報D112を参照して原プログラムの一部の記述を置換した置換プログラムを用いて、原プログラムを変換プログラムに適切かつ問題なく変換可能にする。
【0091】
<2>また、本実施形態におけるプログラミング言語変換システム100における前記原プログラム(第1のプログラム)は、アセンブリ言語で記述されていない命令の第1の記述が含まれ、前記置換部150は、前記第1の記述と、アセンブリ言語で記述された命令の第2の記述と、を関連づけた置換情報D111に基づいて、前記原プログラム(第1のプログラム)における前記第1の記述を前記第2の記述に置換する。これにより、プログラミング言語変換システム100は、原プログラム特有の記述(例えばマクロ命令)を変換プログラムに適切に変換可能な記述に置換した置換プログラムを生成できる。
【0092】
<3>また、本実施形態におけるプログラミング言語変換システム100における前記置換部150は、前記変換プログラムで用いられる命令の第3の記述が前記原プログラム(第1のプログラム)に含まれる場合、前記原プログラム(第1のプログラム)に含まれる前記第3の記述を、前記変換プログラムに変換可能な、前記第3の記述と異なる第4の記述に置換する。これにより、プログラミング言語変換システム100は、原プログラムに含まれる、変換プログラムで用いられる記述であって、変換プログラムとは異なる意味の記述を、変換プログラムに適切に変換可能なアセンブリ言語の記述に置換して置換プログラムを生成できる。
【0093】
<4>また、本実施形態におけるプログラミング言語変換システム100における前記変換情報D113は、前記置換プログラムに含まれる命令のそれぞれの、前記変換プログラムにおける記述の位置を示す情報を含み、前記変換部160は、前記変換情報D113に基づいて、前記置換プログラムに含まれる命令のそれぞれに対応する前記変換プログラムにおける命令を、前記変換プログラムの所定の位置に記述する。これにより、プログラミング言語変換システム100は、アセンブリ言語のプログラムにおける任意の位置の記述を、変換プログラムのプログラミング言語における特有の配置を担保して、変換プログラムに変換できる。
【0094】
<5>また、本実施形態におけるプログラミング言語変換システム100における前記原プログラム(第1のプログラム)における各行の命令に対するコメントを特定するコメント部180と、前記原プログラム(第1のプログラム)においてコメントを付された命令に対応する、前記変換プログラムにおける命令に、前記コメント部180で特定されたコメントを関連づけて表示部に表示する表示処理部190と、をさらに備える。これにより、プログラミング言語変換システム100は、アセンブリ言語と、それに対応する変換プログラムの記述を視覚的に容易に表示するため、適切な変換ができているか否かを容易に確認できるツールをユーザに提供できる。
【0095】
<6>また、本実施形態におけるプログラミング言語変換システム100は、前記変換プログラムにおける各行のそれぞれの命令に、当該命令に対応する前記置換プログラムにおける命令を関連づけて表示部に表示する表示処理部190をさらに備える。これにより、プログラミング言語変換システム100は、アセンブリ言語と、それに対応する変換プログラムの記述を視覚的に容易に表示するため、適切な変換ができているか否かを容易に確認できるツールをユーザに提供できる。
【0096】
<7>また、本実施形態におけるプログラミング言語変換システム100は、前記置換プログラムに含まれる各行の命令のそれぞれを一意に識別可能な識別符号を、当該各行の命令のそれぞれに関連づけて表示部に表示し、前記置換プログラムに含まれる各行の命令のそれぞれに関連づけられた前記識別符号を、前記置換プログラムに含まれる各行の命令のそれぞれに対応する前記変換プログラムに含まれる各行の命令のそれぞれに関連づけて表示部に表示する表示処理部190をさらに備える。これにより、プログラミング言語変換システム100は、アセンブリ言語と、それに対応する変換プログラムの記述を視覚的に容易に表示するため、適切な変換ができているか否かを容易に確認できるツールをユーザに提供できる。
【0097】
なお、本実施形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。また、上記実施の形態で記載されたプログラミング言語変換システム100が備える構成要素は、記憶装置1003に格納されたプログラムがプロセッサ1001によって実行されることで、定められた処理が他のハードウェアと協働して実現されるものとする。
【符号の説明】
【0098】
100…プログラミング言語変換システム、110…記憶部、120…取得部、130…命令抽出部、140…命令情報生成部、150…置換部、160…変換部、170…識別符号付与部、180…コメント部、190…表示処理部。
【要約】      (修正有)
【課題】アセンブリ言語を他のプログラミング言語に適切に変換するプログラミング言語変換システム、方法及びプログラムを提供する。
【解決手段】システムは、少なくとも一部がアセンブリ言語で記述された第1のプログラムを取得する取得部と、アセンブリ言語で記述された定数、変数、数式及び命令記述エリアを所定の名称で定義する命令を第1のプログラムから抽出する命令抽出部と、第1のプログラムにおける所定の名称で定義される定数、変数、数式及び命令記述エリアを、アセンブリ言語とは異なるプログラミング言語で記述される変換プログラムの命令に変換可能な、アセンブリ言語である定数、変数、数式及び命令記述エリアを示す情報に置換する置換部と、アセンブリ言語の命令を変換プログラムのプログラミング言語の命令に変換するための変換情報に基づいて、置換した第1のプログラムである置換プログラムを変換プログラムに変換する変換部と、を備える。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19