JP2008226010A - コンパイル方法及びコンパイル装置 - Google Patents

コンパイル方法及びコンパイル装置 Download PDF

Info

Publication number
JP2008226010A
JP2008226010A JP2007065330A JP2007065330A JP2008226010A JP 2008226010 A JP2008226010 A JP 2008226010A JP 2007065330 A JP2007065330 A JP 2007065330A JP 2007065330 A JP2007065330 A JP 2007065330A JP 2008226010 A JP2008226010 A JP 2008226010A
Authority
JP
Japan
Prior art keywords
source program
character code
profile information
profile
program corresponding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007065330A
Other languages
English (en)
Other versions
JP2008226010A5 (ja
Inventor
Takenori Shimozaka
健則 下坂
Masahiro Konishi
正洋 小西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007065330A priority Critical patent/JP2008226010A/ja
Publication of JP2008226010A publication Critical patent/JP2008226010A/ja
Publication of JP2008226010A5 publication Critical patent/JP2008226010A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】文字コードが異なることに起因する実行データの性質の差異を気にすることなく、文字コードの異なるソースプログラム間でのプログラムの変更を行うこと。
【解決手段】固定長文字コードによるソースプログラム101を可変長文字コードによるソースプログラム114に変換するコンパイル装置であり、プロファイル情報を解析するプロファイル情報出力部104と、ロードモジュール107を生成する過程で、ロードモジュールの実行時に必要なプロファイル更新処理を埋め込むプロファイル更新処理埋込部105を含み、プロファイル情報出力部104と、ロードモジュール107の実行時にプロファイル更新処理によって更新されたプロファイル情報テーブル106をもとに、異なる文字コードとターゲットとする実行データ群とに最適に対応したソースプログラム114に変換する。
【選択図】図1

Description

本発明は、コンパイル方法及びコンパイル装置に係り、特に、特に、マルチバイト文字を固定長で表す文字コード(以下、固定長文字コード)のデータによるソースプログラムを、マルチバイト文字を可変長で表す文字コード(以下、可変長文字コード)のデータによるソースプログラムに変換するコンパイル方法及びコンパイル装置に関する。
近年、官公庁、民間企業の情報システムは、文字コードとして、国際標準になりつつあるUnicodeを採用する例が増加している。従来、日本国内の情報システムは、文字コードとしてシフトJIS(マルチバイト文字を固定長文字コードで表す)を採用することが多かった。そのため、国内の情報システムにおけるシフトJISに対応したプラットフォームからUnicodeを採用したプラットフォームに移行させること事例が増加している。
Unicodeの代表的なエンコーディングに、UTF−8と呼ばれるものがあるが、UTF−8のマルチバイト文字は、2バイト固定長のシフトJISと異なり、2バイトから6バイトの可変長で表現される。例えば、COBOL等で書かれたマルチバイト文字を多用する業務プログラムは、従来のシフトJIS対応からUTF−8対応に移行する場合、ソースプログラムに多量の修正(変換)を必要とする。このソースプログラムの修正方法、修正量は、業務プログラムが実行に使うデータ群に依存する。
ソースプログラムを効率よく編集、修正する方法として、コンパイラ要素技術を利用することがあるが、多くの場合、構文解析をベースとした方法が利用されている。この種の方法に関する従来技術として、例えば、特許文献1等に記載された技術が知られている。この従来技術は、ソフトウェアベンダーが規定しているコーディング規則等の規約情報に基づいて、ソースプログラムに対して構文解析を実施し、その解析結果をもとにソースプログラムを修正するというものである。
特開2006−236042号公報
前述した従来技術は、実行に使用するデータ群により、修正方法、修正量が変わる場合には、対応することができないという問題点を有している。そして、文字コードが異なるプラットフォーム間の移行では、実行するデータ群によっては、ほとんど修正がいらないケースもあるため、ソースプログラムを効率的に修正するためには、実行データの性質を有効に利用する必要がある。
本発明の目的は、前述したような点に鑑み、シフトJISからUTF−8というような文字コードが異なるプラットフォーム間の移行において、ソースプログラムを効率的に修正(変換)することができるコンパイル方法及びコンパイル装置を提供することにある。
本発明によれば前記目的は、第1の文字コードに対応したソースプログラムを第2の文字コードに対応したソースプログラムに変換する情報処理装置におけるコンパイル方法において、前記情報処理装置内に、プロファイル情報出力手段と、プロファイル更新処理埋込手段と、コンパイル実行手段とを構成し、前記プロファイル情報出力手段は、前記第1の文字コードに対応したソースプログラムのプロファイル情報を解析して第1のプロファイル情報を生成して出力し、前記プロファイル更新処理埋込手段は、ロードモジュールの実行時に必要なプロファイル更新処理を、前記第1の文字コードに対応したソースプログラムからロードモジュールを生成する過程で埋め込み、前記コンパイル実行手段は、前記ロードモジュールを実行し、該ロードモジュールの実行時に実行されるプロファイル更新処理は、前記第1のプロファイル情報を更新して第2のプロファイル情報を生成して出力することにより、さらに、前記情報処理装置内に、ソースプログラム変換手段をさらに備えし、該ソースプログラム変換手段は、前記第2のプロファイル情報に基づいて、前記第1の文字コードに対応したソースプログラムを前記第2の文字コードに対応したソースプログラムに変換することにより達成される。
本発明によれば、文字コードが異なる新しいプラットフォームへの移行に際して、文字コードが異なることに起因する実行データの性質の差異を気にすることなく、ターゲットとする実行データ群に対応して、文字コードの異なるソースプログラム間でのプログラムの変更を行うことができる。
以下、本発明によるコンパイル方法及びコンパイル装置の実施形態を図面により詳細に説明する。
図1は本発明の一実施形態によるコンパイル装置の機能構成を示すブロック図である。ここで説明する本発明の実施形態は、固定長文字コード(図面では、文字コードA)によるプログラムで書かれたソースプログラム101を、可変長文字コード(図面では、文字コードB)によるソースプログラムに変換するものとしている。また、ここでは、COBOL言語を用いたソースプログラムを例とする。なお、本発明の実施形態でのコンパイルプログラムは、文字コードA向けソースプログラム101だけを取り扱うことが可能なものであるとする。
本発明の実施形態によるコンパイル装置は、図1に示すように、コンパイル装置としての機能を実現するためのコンパイルプログラム102により構成される。このコンパイルプログラム102は、コンパイラ(コンパイル部)103と、コンパイラ(実行部)110と、ソースプログラム変換部113と、文字列長変換テーブル(MTBL)108とを有して構成されている。コンパイラ(コンパイル部)103は、プロファイル情報出力部104とプロファイル更新処理埋込部105とを有している。
そして、コンパイルプログラム102は、全体として、文字コードA向けソースプログラム101、文字コードA向け実行データ109及びカスタマイズ情報111を入力とし、プロファイル情報テーブルB112と文字コードB向けソースプログラム114とを出力する処理を実行する。
コンパイラ(コンパイル部)103は、文字コードA向けソースプログラム101と文字列長変換テーブル108とを入力とし、プロファイル情報テーブルA106とロードモジュール107とを出力する。詳細には、プロファイル情報出力部104は、文字コードA向けソースプログラム101を入力とし、プロファイル情報テーブルA106を出力する。また、プロファイル更新処理埋込部105は、コンパイラ(コンパイル部)103が、文字コードA向けソースプログラム101からロードモジュール107を生成する際に、プロファイル解析可能な処理を文字コードA向けソースプログラム101に埋め込んで、ロードモジュール107を生成する。本発明の本実施形態では、ソースプログラム中の手続き処理で更新されている変数(以下、「更新変数」と呼ぶ)またはファイル読み込みを含む処理の直後に、「更新変数」またはファイル変数に対応したプロファイル解析処理(図6により後述する処理)を埋め込むこととしている。すなわち、ファイル読み込みを含む処理(図7の例では18行目の処理)の場合、埋め込まれるファイル変数全てに対応したプロファイル解析処理を埋め込む。
図9はコンパイルプログラム102が文字コードA向けソースプログラム101をコンパイルした直後に生成したプロファイル情報テーブルA106の構成例を示す図である。このプロファイル情報テーブルA106は、文字コードA向けソースプログラム101を文字コードB向けソースプログラム114に変換するのに必要な情報を持つ。図9には、入力項目の一例を示しており、各項目はいずれも、文字コードA向けソースプログラム101に現れるものとする。
図9に示すプロファイル情報テーブル106は、項番、変数名、行番号、属性、定義長、更新レベル、最大長、ファイル名、レコード名の各項目からなる複数のレコードを有して構成される。このテーブルにおいて、「項番」は、テーブル106に格納されるレコードに順に付与された番号であり、「変数名」は、文字コードA向けソースプログラム101から抽出された変数名、「行番号」は、その変数が存在する文字コードA向けソースプログラム101の行番号である。
また、図9の項目のうち、「属性」は、変数の属性を示す。図9に示す例では、「X」は、英数字項目、図示していないが「N」は日本語項目を示す。「定義長」は、変数が定義されている長さ(単位はバイト)を示す。「更新レベル」は、コンパイラ(コンパイル部)103とコンパイラ(実行部)110とのどちらで当該変数の修正内容を決めるかを判別するフラグである。図示例では、「0」のときは、コンパイラ(コンパイル部)103で、「1」のときは、コンパイラ(実行部)110で、当該変数の修正内容を決めることを示している。「最大長」は、当該変数を更新する文字列群の中で文字コードBに変換したときに最大となる長さを示す。「ファイル」は、ファイル変数が属するプログラム上のファイル名を示し、図9に示す例では、後述する文字コードA向けソースプログラム101の9行目で定義された「FOO」が該当する。「レコード」は、ファイル変数が属するプログラム上のレコード名を示し、図9に示す例では、文字コードA向けソースプログラム101の10行目で定義された「FOOR」が該当する。
図4はコンパイルプログラム102がアクセスする文字列変換テーブル108の構成例を示す図である。文字列長変換テーブル108は、コンパイルプログラム102で取り扱い可能な文字に対して、文字コードAの場合の長さと文字コードBの場合の長さとを示している。図4に示す例では、「項番」、「文字」、「長さ(文字コードA)」、「長さ(文字コードB)」の各項目からなるレコードにより、文字毎の文字コードAの場合の長さと文字コードBの場合の長さとを示している。
コンパイラ(実行部)110は、プロファイル情報テーブルA106、ロードモジュール107、文字列長変換テーブル108を入力とし、プロファイル情報テーブルB112を出力する。また、ソースプログラム変換部113は、文字コードA向けソースプログラム101、カスタマイズ情報111、プロファイル情報テーブルB112を入力として、文字コードB向けソースプログラム114を出力する。カスタマイズ情報111は、プロファイル情報テーブルB112の内容を加工する情報を有するもので、よく知られているように、定義長を設定し直すために利用される。
図2はプロファイル情報出力部104の構成を示すブロック図である。プロファイル情報出力部104は、データ定義処理部201と手続き処理部202とを有して構成されている。データ定義処理部201は、文字コードA向けソースプログラム101と文字列長変換テーブル108とを入力として、プロファイル情報テーブルA106を出力する。手続き処理部202は、文字コードA向けソースプログラム101、データ定義処理部201から出力されたプロファイル情報テーブルA106と文字列長変換テーブル108とを入力として、プロファイル情報テーブルA106を更新する。
図7は文字コードA向けソースプログラム101の例を示す図、図8は文字コードA向けの実行データの例109を示す図であり、ここで、本発明の実施形態で変換しようとしている文字コードA向けソースプログラム101について説明する。
文字コードA向けソースプログラム101は、図7に示すように、各行に順に行番号が付与され、行番号とその行での処理の内容等を示す情報とを1つの行として、多数の行が行番号順に記述されて構成されている。そして、このソースプログラム101は、7行目から15行目までのデータ定義部701と、16行目から25行目までの手続き部702とを持って構成されている。
このようなソースプログラム101に含まれる変数により決まる実行データは、図8に示すように、「data.txt」というファイル名で定義されており、図8に示す例では、ソースプログラム101内の変数A1、A2のそれぞれが、実行データとして、「XpXsXu」、「XpXuXu」という文字列で定義され、ソースプログラム101は、「data.txt」というファイル名で、この実行データ109を読み込む。
図3はデータ定義処理部201での処理動作を説明するフローチャートであり、次に、これについて説明する。
(1)データ定義処理部201は、処理を開始すると、文字コードA向けソースプログラム101のデータ定義部701の変数を行単位に検索していく。変数の検索で、変数がヒットしたら、その変数がファイル変数であるか否かを判別する。変数の検索及びその変数がファイル変数であるか否かの判別は、各行を構文解析することにより、その行に含まれる変数を抽出して、判別する処理である(ステップ301、302)。
(2)ステップ302の判別で、変数がファイル変数であった場合、その変数に依存した内容である「行番号」、「属性」、「定義長」をプロファイル情報テーブルA106に登録すると共に、対応する「ファイル」、「レコード」が存在するので、それらの名前を記入する。また、「更新レベル」には「1」、「最大長」には「0」を入力する(ステップ303)。
(3)ステップ302の判別で、変数がファイル変数でなかった場合、ステップ303での処理の場合と同様に、その変数に依存した内容である「行番号」、「属性」、「定義長」をプロファイル情報テーブルA106に登録すると共に、「ファイル」、「レコード」には「NULL」を入力し、「更新レベル」には「0」、「最大長」には、初期値がある場合、文字列長変換テーブル108を参照して、文字コードBに変換したときの文字列長を計算してセットする。また、初期値がない場合、「最大長」には、「0」をセットする(ステップ304)。
(4)ステップ303の処理、または、ステップ304の処理により、当該変数のプロファイル情報テーブル106への登録が完了した後、文字コードA向けソースプログラム101のデータ定義部701の処理が終了しているか否かを判別し、終了していなかった場合、次の変数を検索して、ステップ302からの処理に戻って処理を続け、終了していた場合、ここでの処理を終了する(ステップ305、306)。
図5は手続き処理部202での処理動作を説明するフローチャートであり、次に、これについて説明する。
(1)手続き処理部202は、処理を開始すると、文字コードA向けソースプログラム101の手続き部702の先頭行(図7では、16行目)から順に処理を進めることとし、変数Kを手続き部702の先頭行Jに設定する(ステップ501)。
(2)次に、処理対象となっている行に変数が存在しているか否かを判別し、変数が存在していた場合、当該変数が参照だけの変数であるかを判定し、参照だけの変数であれば何もしない(ステップ502、503)。
(3)ステップ502の判断で、変数が存在していて、参照だけの変数ではなかった場合、その変数が変数で更新されるものであるかを判定し、変数で更新されるものであれば、プロファイル情報テーブルA106の更新レベルに「1」をセットする(ステップ504)。
(4)また、ステップ502の判断で、変数が存在していて、参照だけの変数ではなく、変数で更新されるものもなかった場合、次に、当該変数が定数で更新されるものであるかを判定し、定数で更新されるものであれば、文字列長変換テーブル108を参照して、定数を文字コードBに変換したときの文字列長を計算し、プロファイル情報テーブルA106の当該変数の最大長欄よりも大きい値の場合、最大長欄の値を更新する(ステップ505)。
(5)ステップ505での処理の終了後、あるいは、ステップ502の判断で、該当行に変数が存在していなかった場合、処理を行った手続き部の行が最終行であるか否かを判定し、最終行でなかった場合、変数KをK+1として次の行を処理することとして、ステップ502からの処理に戻って処理を続け、最終行であった場合、ここでの処理を終了する(ステップ506、507)。
図3により説明したデータ定義処理部201での処理と、図5により説明した手続き処理部202での処理から判るように、最初に、データ定義処理部201の処理で作成されたプロファイル情報テーブルA106は、手続き処理部202での処理により更新されることになり、図9に示しているプロファイル情報テーブルA106は、手続き処理部202での処理により更新された後のものである。ちなみに、データ定義処理部201の処理で作成されたプロファイル情報テーブルA106は、項番「3」の更新レベルが「0」となっており、手続き処理部202での処理により「1」に更新されている。
また、ステップ503〜505の各処理において、変数がどのようなものかを判断しているが、この判断は、各行の構文解析の結果から行うことができる。
図6はプロファイル更新処理埋込部105で文字コードA向けソースプログラム101に埋め込まれるプロファイル更新処理の動作を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、文字コードA向けソースプログラム101からロードモジュール107を生成する際に、文字コードA向けソースプログラム101の手続き部702の中で、プロファイル情報テーブル106の「更新レベル」が「1」となっている変数を含む処理の直後に埋め込まれるプロファイル更新処理であり、コンパイラ(実行部)110がロードモジュール107を処理するときに実行される処理である。
(1)この処理が開始されると、埋め込まれたプロファイル更新処理は、まず、文字列長変換テーブル108を参照して、更新対象変数のデータを文字コードBに変換したときの長さを計算する(ステップ601)。
(2)ステップ601の処理で計算した文字列長が、プロファイル情報テーブルA106の当該変数に対応した最大長欄の値より大きいか否かを判別し、最大長欄の値より大きかった場合、最大長欄の数値を更新し、最大長欄の値より大きくなかった場合、なにもせずに、そのまま終了する(ステップ602、603)。
次に、図4に示す文字列変換テーブル108の例と、図7に示す文字コードA向けソースプログラム101の例と、図8に示す実行データ109の例と、図9に示すプロファイル情報テーブルA106の項目とを用いて、コンパイルプログラム102の一連の処理の流れを具体的に説明する。なお、以下では、前述したフローにおけるステップの番号をも付与して説明する。
まず、プロファイル情報出力部104のデータ定義処理部201は、文字コードA向けソースプログラム例101と文字列長変換テーブル108とを入力する。そして、データ定義処理部201は、文字コードA向けソースプログラム101の7行目から変数検索を開始し(ステップ301)、11、12、14、15行目にそれぞれ変数A1、A2、B1、B2が見つかるので、順にプロファイル情報テーブルA106へその内容を登録していく。4つの変数のうち、A1、A2は、ファイル変数であることがわかるので(ステップ302)、プロファイル情報テーブルA106の「ファイル」、「レコード」の欄にそれぞれ「FOO」、「FOOR」をセットする。また、「更新レベル」に「1」、「最大長」に「0」をセットする(ステップ303)。
B1、B2は、ファイル変数ではないと判断できるので、「ファイル」、「レコード」の欄には「NULL」を登録する。また、B1は、初期値が定義されていないため、「最大長」の欄に「0」を登録する(ステップ304)。B2は、初期値「XsXsXuXu」が定義されているため、文字列長変換テーブル108を参照して、文字コードBに対応した長さ(3+3+4+4=14)を計算し、その計算結果の値を「最大長」の欄にセットする(ステップ304)。
次に、手続き処理部202は、文字コードA向けソースプログラム101とデータ定義処理部201で作成したプロファイル情報テーブルA106とを入力とし、文字コードA向けソースプログラム101の16行目から処理を開始する(ステップ501)。そして、図5に示した処理を実行することにより、データ定義処理部201で作成したプロファイル情報テーブルA106の項番「3」の更新レベルが「0」から「1」に更新される。
一方、プロファイル更新処理埋込部105は、18行目の直後にA1、A2に対応した図6で示すプロファイル更新処理を埋め込み、19行目の直後にB1に対応した図6で示すプロファイル更新処理を埋め込み、21行目の直後にB1に対応した図6で示すプロファイル更新処理を埋め込む。
コンパイラ(コンパイル部)103での処理が完了すると、コンパイラ(実行部)110へ処理が遷移する。コンパイラ(実行部)110は、ロードモジュール107の実行を開始し、図8に示す文字コードA向け実行データ109をロードモジュール107に読み込む。最初に、A1に実行データ「XpXsXu」が入り、プロファイル更新処理埋込部105で埋め込まれた処理により、文字列長変換テーブル108を参照して「XpXsXu」を文字コードBに変換したときの長さを(1+3+4=8)として計算する(ステップ601)。計算値「8」は、プロファイル情報テーブルA106の項番「1」の変数名A1の最大長の欄にセットしてある値「0」よりも大きいので(ステップ602)、最大長の欄を「8」に更新する(ステップ603)。同様に、A2の最大長の欄を「9」に更新する。次に、B1のプロファイル更新処理を実行する。B1には、A1の文字列「XpXsXu」が入ってくるので、A1の処理と同様となり、B1の最大長の欄を「8」に更新する。21行目では、B1を再度、A2で更新しているため、B1のプロファイル更新処理を実行し、B1の最大長欄を「9」に更新する。以上で、文字コードA向けソースプログラム例101のプロファイル更新処理が完了する。
図11はプロファイル更新処理完了後のプロファイル情報テーブルB112の構成例を示す図である。この図11から判るように、各変数の最大長の欄に、文字コードBに変換したときの長さの値が格納される。
その後、ソースプログラム変換部113は、カスタマイズ情報111、プロファイル情報テーブルB112をもとに、文字コードA向けソースプログラム101を文字コードB向けソースプログラム114に変換する。カスタマイズ情報111には、定数Tが格納されているものとする。ソースプログラム変換部113は、プロファイル情報テーブルB112の更新レベル欄「1」の変数の最大長欄の数値に対して、定数T(説明している例の場合、T=1とする)を掛けて、プロファイル情報テーブルB112の最大長欄を更新する。
プロファイル情報テーブルB112の例は、変数A1、A2、B1、B2の4つの変数の全てにおいて、「定義長」よりも「最大長」が大きい結果となっているので、文字コードA向けソースプログラム101で定義されている長さを「最大長」の値に変換する。この変換後の結果が文字コードB向けソースプログラム114となる。以上で、コンパイルプログラム102の処理が完了する。
図10は文字コードB向けソースプログラム114の例を示す図である。この文字コードB向けソースプログラム114では、文字コードA向けソースプログラム101における各変数の属性Xとして記述されている変数の定義長が変更されたものとなっている。
図12は本発明の実施形態によるコンパイル装置が構築される情報処理装置のハードウェア構成を示すブロック図である。図12に示すように、本発明の実施形態によるコンパイル装置を構築する情報処理システム1201は、プロセッサ1202、ハードディスクドライブ1203、メインメモリ1204を備えて構成される。メインメモリ1204には、コンパイルプログラム102が格納され、プロセッサ1202により実行されて、前述で説明したような処理を行う。ハードディスクドライブ1203には、ソースファイル101、プロファイル情報テーブル106、文字列長変換テーブル108が格納されている。
前述した本発明の実施形態での各処理は、すでに説明したように、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
本発明の一実施形態によるコンパイル装置の機能構成を示すブロック図である。 プロファイル情報出力部の構成を示すブロック図である。 データ定義処理部での処理動作を説明するフローチャートである。 コンパイルプログラムがアクセスする文字列長変換テーブルの構成例を示す図である。 手続き処理部での処理動作を説明するフローチャートである。 プロファイル更新処理埋込部で文字コードA向けソースプログラムに埋め込まれるプロファイル更新処理の動作を説明するフローチャートである。 文字コードA向けソースプログラムの例を示す図である。 文字コードA向けの実行データの例を示す図である。 コンパイルプログラムが文字コードA向けソースプログラムをコンパイルした直後に生成したプロファイル情報テーブルAの構成例を示す図である。 文字コードB向けソースプログラムの例を示す図である。 プロファイル更新処理完了後のプロファイル情報テーブルBの構成例を示す図である。 本発明の実施形態によるコンパイル装置が構築される情報処理システムのハードウェア構成を示すブロック図である。
符号の説明
101 文字コードA向けソースプログラム
102 コンパイルプログラム
103 コンパイラ(コンパイル部)
104 プロファイル情報出力部
105 プロファイル更新処理埋込部
106 プロファイル情報テーブルA
107 ロードモジュール
108 文字列長変換テーブル
109 文字コードA向け実行データ
110 コンパイラ(実行部)
111 カスタマイズ情報
112 プロファイル情報テーブルB
113 ソースプログラム変換部
114 文字コードB向けソースプログラム
201 データ定義処理部
202 手続き処理部
1201 情報処理システム
1202 プロセッサ
1203 ハードディスクドライブ
1204 メインメモリ

Claims (5)

  1. 第1の文字コードに対応したソースプログラムを第2の文字コードに対応したソースプログラムに変換する情報処理装置におけるコンパイル方法において、
    前記情報処理装置内に、プロファイル情報出力手段と、プロファイル更新処理埋込手段と、コンパイル実行手段とを構成し、
    前記プロファイル情報出力手段は、前記第1の文字コードに対応したソースプログラムのプロファイル情報を解析して第1のプロファイル情報を生成して出力し、
    前記プロファイル更新処理埋込手段は、ロードモジュールの実行時に必要なプロファイル更新処理を、前記第1の文字コードに対応したソースプログラムからロードモジュールを生成する過程で埋め込み、
    前記コンパイル実行手段は、前記ロードモジュールを実行し、該ロードモジュールの実行時に実行されるプロファイル更新処理は、前記第1のプロファイル情報を更新して第2のプロファイル情報を生成して出力することを特徴とするコンパイル方法。
  2. 前記情報処理装置内に、ソースプログラム変換手段をさらに備え、該ソースプログラム変換手段は、前記第2のプロファイル情報に基づいて、前記第1の文字コードに対応したソースプログラムを前記第2の文字コードに対応したソースプログラムに変換することを特徴とする請求項1記載のコンパイル方法。
  3. 前記ソースプログラム変換手段は、前記第2のプロファイル情報をカスタマイズすることにより、前記第1の文字コードに対応したソースプログラムを前記第2の文字コードに対応したソースプログラムに変換することを特徴とする請求項2記載のコンパイル方法。
  4. 第1の文字コードに対応したソースプログラムを第2の文字コードに対応したソースプログラムに変換する情報処理装置において、
    情報処理装置内に、プロファイル情報出力手段と、プロファイル更新処理埋込手段と、コンパイル実行手段と、ソースプログラム変換手段とを備え、
    前記プロファイル情報出力手段は、前記第1の文字コードに対応したソースプログラムのプロファイル情報を解析して第1のプロファイル情報を生成して出力し、
    前記プロファイル更新処理埋込手段は、ロードモジュールの実行時に必要なプロファイル更新処理を、前記第1の文字コードに対応したソースプログラムからロードモジュールを生成する過程で埋め込み、
    前記コンパイル実行手段は、前記ロードモジュールを実行し、該ロードモジュールの実行時に実行されるプロファイル更新処理は、前記第1のプロファイル情報を更新して第2のプロファイル情報を生成して出力し、
    前記ソースプログラム変換手段は、前記第2のプロファイル情報に基づいて、前記第1の文字コードに対応したソースプログラムを前記第2の文字コードに対応したソースプログラムに変換することを特徴とするコンパイル装置。
  5. 第1の文字コードに対応したソースプログラムを第2の文字コードに対応したソースプログラムに変換するために情報処理装置に実行させるコンパイルプログラムであって、
    前記第1の文字コードに対応したソースプログラムのプロファイル情報を解析して第1のプロファイル情報を生成して出力するステップと、
    ロードモジュールの実行時に必要なプロファイル更新処理を、前記第1の文字コードに対応したソースプログラムからロードモジュールを生成する過程で埋め込むステップと、
    前記ロードモジュールを実行し、該ロードモジュールの実行時に実行されるプロファイル更新処理が、前記第1のプロファイル情報を更新して第2のプロファイル情報を生成して出力するステップと、
    前記第2のプロファイル情報に基づいて、前記第1の文字コードに対応したソースプログラムを前記第2の文字コードに対応したソースプログラムに変換するステップとを、前記情報処理装置に実行させることを特徴とするコンパイルプログラム。
JP2007065330A 2007-03-14 2007-03-14 コンパイル方法及びコンパイル装置 Pending JP2008226010A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007065330A JP2008226010A (ja) 2007-03-14 2007-03-14 コンパイル方法及びコンパイル装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007065330A JP2008226010A (ja) 2007-03-14 2007-03-14 コンパイル方法及びコンパイル装置

Publications (2)

Publication Number Publication Date
JP2008226010A true JP2008226010A (ja) 2008-09-25
JP2008226010A5 JP2008226010A5 (ja) 2010-03-11

Family

ID=39844529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007065330A Pending JP2008226010A (ja) 2007-03-14 2007-03-14 コンパイル方法及びコンパイル装置

Country Status (1)

Country Link
JP (1) JP2008226010A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108076A (ja) * 2008-10-28 2010-05-13 Internatl Business Mach Corp <Ibm> ソースコード変換方法、サーバシステム、およびサーバプログラム
JP2015191272A (ja) * 2014-03-27 2015-11-02 富士通株式会社 実行制御方法、実行制御プログラムおよび実行制御装置
WO2016031959A1 (ja) * 2014-08-29 2016-03-03 株式会社日立公共システム マイグレーション支援装置
JP2016191977A (ja) * 2015-03-30 2016-11-10 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
CN110333870A (zh) * 2019-06-28 2019-10-15 潍柴动力股份有限公司 Simulink模型变量分配的处理方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06236295A (ja) * 1992-03-16 1994-08-23 Nippon Telegr & Teleph Corp <Ntt> プログラム移植支援システム
JPH07281883A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd プログラム修正支援装置及び方法
JPH08190479A (ja) * 1995-01-05 1996-07-23 Mitsubishi Electric Corp データベース移行方式
JPH1165837A (ja) * 1997-08-27 1999-03-09 Oki Electric Ind Co Ltd 外部ファイルデータのデータ例外検出方法及び外部ファイルデータのデータ例外検出プログラムを記録した記録媒体
JP2004252890A (ja) * 2003-02-21 2004-09-09 Fujitsu Ltd テキストデータ作成方法、テキストデータ作成装置及びコンピュータプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06236295A (ja) * 1992-03-16 1994-08-23 Nippon Telegr & Teleph Corp <Ntt> プログラム移植支援システム
JPH07281883A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd プログラム修正支援装置及び方法
JPH08190479A (ja) * 1995-01-05 1996-07-23 Mitsubishi Electric Corp データベース移行方式
JPH1165837A (ja) * 1997-08-27 1999-03-09 Oki Electric Ind Co Ltd 外部ファイルデータのデータ例外検出方法及び外部ファイルデータのデータ例外検出プログラムを記録した記録媒体
JP2004252890A (ja) * 2003-02-21 2004-09-09 Fujitsu Ltd テキストデータ作成方法、テキストデータ作成装置及びコンピュータプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108076A (ja) * 2008-10-28 2010-05-13 Internatl Business Mach Corp <Ibm> ソースコード変換方法、サーバシステム、およびサーバプログラム
JP2015191272A (ja) * 2014-03-27 2015-11-02 富士通株式会社 実行制御方法、実行制御プログラムおよび実行制御装置
WO2016031959A1 (ja) * 2014-08-29 2016-03-03 株式会社日立公共システム マイグレーション支援装置
JP2016051235A (ja) * 2014-08-29 2016-04-11 株式会社日立公共システム マイグレーション支援装置
JP2016191977A (ja) * 2015-03-30 2016-11-10 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
CN110333870A (zh) * 2019-06-28 2019-10-15 潍柴动力股份有限公司 Simulink模型变量分配的处理方法、装置及设备

Similar Documents

Publication Publication Date Title
US8601368B2 (en) Processing method and device for the coding of a document of hierarchized data
JP2004530188A (ja) 構造化された文書を圧縮/伸長する方法
JP2007226452A (ja) 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
JP2005018775A (ja) 分散処理方法及び分散処理システム
US20070271553A1 (en) Method and system for translating assembler code to a target language
JP2004518231A (ja) 文書の構造化された記述を圧縮するための方法
JP2016207161A (ja) 情報処理装置、コンパイル方法およびコンパイルプログラム
US20040154009A1 (en) Structuring program code
JP2008226010A (ja) コンパイル方法及びコンパイル装置
CN110888645A (zh) 一种转换为小程序的方法、装置和存储介质
JP5325921B2 (ja) デコーダコンパイラ、プログラムおよび通信機器
CN114489647A (zh) 一种小程序的组件化构建方法、装置、设备和介质
CN110990055B (zh) 一种基于程序分析的Pull Request功能分类方法
US8869109B2 (en) Disassembling an executable binary
CN1525317A (zh) 在标记中用于定义和使用子级说明的***和方法
WO2004051470A1 (ja) プログラム自動変換方法およびプログラム自動変換装置
CN114791811B (zh) 一种基于元函数模板的汇编器实现方法
JP2009048259A (ja) プログラム変換方法及び変換用プログラム
JP5488792B2 (ja) データベース操作装置、データベース操作方法、及びプログラム
JP2011154495A (ja) 文字コード変換装置、文字コード変換方法、および文字コード変換プログラム
JP7059757B2 (ja) Api処理方法、端末、api処理プログラム
JP2005063121A (ja) ソースコード変換装置、及びソースコード変換方法、ソースコード変換プログラム、記憶媒体
JP5596517B2 (ja) 国際化対応画面生成システム及びプログラム
JP2014149587A (ja) 情報処理装置およびコンパイラプログラム
CN116541280B (zh) 一种基于神经网络的模糊测试用例生成方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100121

A977 Report on retrieval

Effective date: 20120427

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20120515

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20120918

Free format text: JAPANESE INTERMEDIATE CODE: A02