JPH04352035A - マルチオブジェクトコード生成方式 - Google Patents
マルチオブジェクトコード生成方式Info
- Publication number
- JPH04352035A JPH04352035A JP15218691A JP15218691A JPH04352035A JP H04352035 A JPH04352035 A JP H04352035A JP 15218691 A JP15218691 A JP 15218691A JP 15218691 A JP15218691 A JP 15218691A JP H04352035 A JPH04352035 A JP H04352035A
- Authority
- JP
- Japan
- Prior art keywords
- kana
- source program
- information
- real variable
- real
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、ソースプログラムのコ
ンパイルにより複数のオブジェクトコードを生成するマ
ルチオブジェクトコード生成方式に関するものである。
ンパイルにより複数のオブジェクトコードを生成するマ
ルチオブジェクトコード生成方式に関するものである。
【0002】
【従来の技術】一般に、コンパイラは図5に示すような
各機能部から構成されている。すなわち、1は字句解析
部、2は構文解析部、3は意味解析部、4は中間コード
生成部、5はコード生成部である。そして、ソースプロ
グラムが入力されると、字句解析部1によりその言語の
正否がチェックされ、ソースプログラムの言語が正しい
場合には続いて構文解析部2、意味解析部3によりその
構文、意味がチェックされて中間コード部4から中間コ
ードとして生成されて出力される。この中間コードのプ
ログラムは、さらにコード生成部5により1つのオブジ
ェクトプログラムとして生成される。
各機能部から構成されている。すなわち、1は字句解析
部、2は構文解析部、3は意味解析部、4は中間コード
生成部、5はコード生成部である。そして、ソースプロ
グラムが入力されると、字句解析部1によりその言語の
正否がチェックされ、ソースプログラムの言語が正しい
場合には続いて構文解析部2、意味解析部3によりその
構文、意味がチェックされて中間コード部4から中間コ
ードとして生成されて出力される。この中間コードのプ
ログラムは、さらにコード生成部5により1つのオブジ
ェクトプログラムとして生成される。
【0003】
【発明が解決しようとする課題】従来のコンパイラは、
ソースプログラム中の変数・定数値の部分変更を行う場
合でも、逐一ソースプログラムの修正と上記のようなコ
ンパイル作業を必要とするため、オブジェクトプログラ
ムの生成に時間がかかり、この結果、プログラム開発に
多くの時間と工数とを要するという問題があった。
ソースプログラム中の変数・定数値の部分変更を行う場
合でも、逐一ソースプログラムの修正と上記のようなコ
ンパイル作業を必要とするため、オブジェクトプログラ
ムの生成に時間がかかり、この結果、プログラム開発に
多くの時間と工数とを要するという問題があった。
【0004】
【課題を解決するための手段】このような課題を解決す
るために、本発明は、ソースプログラム中の各部に記述
された仮名情報と対応するそれぞれの実変数・定数情報
が格納されたテーブルからこの実変数・定数情報を入力
する実変数取り込み部と、ソースプログラム及び実変数
・定数情報を入力して仮名情報を実変数・定数情報に変
換する仮名変換部と、仮名情報が実変数・定数情報に変
換されたソースプログラムのオブジェクトコードへの翻
訳を多重処理させて複数のオブジェクトプログラムを生
成する多重処理部とを備えたものである。
るために、本発明は、ソースプログラム中の各部に記述
された仮名情報と対応するそれぞれの実変数・定数情報
が格納されたテーブルからこの実変数・定数情報を入力
する実変数取り込み部と、ソースプログラム及び実変数
・定数情報を入力して仮名情報を実変数・定数情報に変
換する仮名変換部と、仮名情報が実変数・定数情報に変
換されたソースプログラムのオブジェクトコードへの翻
訳を多重処理させて複数のオブジェクトプログラムを生
成する多重処理部とを備えたものである。
【0005】
【作用】本発明によれば、ソースプログラム中の変数・
定数値の部分変更を行う場合、仮名情報と対応するそれ
ぞれの実変数・定数情報が格納されたテーブルのみを用
いれば、逐一ソースプログラムを修正しなくても良く、
プログラム開発が効率よく行える。
定数値の部分変更を行う場合、仮名情報と対応するそれ
ぞれの実変数・定数情報が格納されたテーブルのみを用
いれば、逐一ソースプログラムを修正しなくても良く、
プログラム開発が効率よく行える。
【0006】
【実施例】次に、本発明について図面を参照して説明す
る。図3は、本発明のマルチオブジェクトコード生成方
式を適用した装置のブロック図である。同図において、
10はCPUやメモリ等から構成されコンパイラ部及び
テーブル等を有して1つのソースプログラムを複数のオ
ブジェクトプログラムに同時生成するマルチオブジェク
トコード生成部、11は操作部、12は表示部、13は
I/O部、14は生成されたオブジェクトプログラムの
実行によって制御される被制御装置である。このマルチ
オブジェクトコード生成部10は、従来のコンパイラ部
の構成に、テーブルからの実変数・定数値の取り込みを
行う実変数取り込み部6と、ソースプログラム中の仮名
コード部に記述された仮名を実変数・定数値に変換する
仮名変換部7と、複数のオブジェクトコードを生成する
多重処理部8とを付加して構成したものである。また、
他の実施例として、従来の字句解析部1の前段で仮名変
換を行い、従来の字句解析部1〜コード生成部5による
字句解析〜コード生成を多重処理部8により多重に処理
するように構成したものである。
る。図3は、本発明のマルチオブジェクトコード生成方
式を適用した装置のブロック図である。同図において、
10はCPUやメモリ等から構成されコンパイラ部及び
テーブル等を有して1つのソースプログラムを複数のオ
ブジェクトプログラムに同時生成するマルチオブジェク
トコード生成部、11は操作部、12は表示部、13は
I/O部、14は生成されたオブジェクトプログラムの
実行によって制御される被制御装置である。このマルチ
オブジェクトコード生成部10は、従来のコンパイラ部
の構成に、テーブルからの実変数・定数値の取り込みを
行う実変数取り込み部6と、ソースプログラム中の仮名
コード部に記述された仮名を実変数・定数値に変換する
仮名変換部7と、複数のオブジェクトコードを生成する
多重処理部8とを付加して構成したものである。また、
他の実施例として、従来の字句解析部1の前段で仮名変
換を行い、従来の字句解析部1〜コード生成部5による
字句解析〜コード生成を多重処理部8により多重に処理
するように構成したものである。
【0007】すなわち、図1は本発明のマルチオブジェ
クトコード生成方式の第1実施例を示す構成図、また、
図2はこの方式の第2実施例を示す構成図である。第1
図において、実変数・定数値等が仮名コードで記された
ソースプログラムが入力されると、字句解析部1によっ
てソースプログラムの字句(言語)が解析され、続いて
構文解析部2,意味解析部3によってこのソースプログ
ラムの構文(文法)やその意味が解析される。その後、
構文等がチェックされたソースプログラムを入力した実
変数取り込み部6では、マルチオブジェクトコード生成
部10内のメモリに格納されている実変数・定数値と仮
名コードとの対応を示すテーブルから、入力したソース
プログラム中の仮名コードと対応する実変数を全て取り
込む。
クトコード生成方式の第1実施例を示す構成図、また、
図2はこの方式の第2実施例を示す構成図である。第1
図において、実変数・定数値等が仮名コードで記された
ソースプログラムが入力されると、字句解析部1によっ
てソースプログラムの字句(言語)が解析され、続いて
構文解析部2,意味解析部3によってこのソースプログ
ラムの構文(文法)やその意味が解析される。その後、
構文等がチェックされたソースプログラムを入力した実
変数取り込み部6では、マルチオブジェクトコード生成
部10内のメモリに格納されている実変数・定数値と仮
名コードとの対応を示すテーブルから、入力したソース
プログラム中の仮名コードと対応する実変数を全て取り
込む。
【0008】そしてその後、仮名変換部7においてソー
スプログラム中の仮名コードで記された部分が実変数・
定数値に変換されるとともに、実変数・定数値に変換さ
れたソースプログラムは、中間コード生成部4において
中間オブジェクトコードとして生成され、さらにコード
生成部5で目的とする言語のオブジェクトプログラムが
生成される。そして、このようなソースプログラムから
オブジェクトプログラムへの生成が多重処理部8におい
て繰り返し多重処理された結果、1つのソースプログラ
ムから複数のオブジェクトプログラムが生成される。
スプログラム中の仮名コードで記された部分が実変数・
定数値に変換されるとともに、実変数・定数値に変換さ
れたソースプログラムは、中間コード生成部4において
中間オブジェクトコードとして生成され、さらにコード
生成部5で目的とする言語のオブジェクトプログラムが
生成される。そして、このようなソースプログラムから
オブジェクトプログラムへの生成が多重処理部8におい
て繰り返し多重処理された結果、1つのソースプログラ
ムから複数のオブジェクトプログラムが生成される。
【0009】次に、図2に示す第2実施例の動作を説明
する。実変数・定数値等が仮名コードで記された1つの
ソースプログラムが与えられると、実変数取り込み部6
では実変数・定数値と仮名コードとの対応を示すテーブ
ルから、入力したソースプログラム中の仮名コードと対
応する実変数を全て取り込む。続いて、仮名変換部7に
おいてソースプログラム中の仮名コードで記された部分
が実変数・定数値に変換され、字句解析部1によってソ
ースプログラムの字句が解析される。そして、構文解析
部2,意味解析部3によってこのソースプログラムの構
文やその意味が解析されるとともに、実変数・定数値に
変換されたソースプログラムは、中間コード生成部4に
おいて中間オブジェクトコードとして生成され、さらに
コード生成部5でオブジェクトプログラムが生成される
。このようなソースプログラムからオブジェクトプログ
ラムへの生成が多重処理部8において繰り返し多重処理
された結果、1つのソースプログラムから複数のオブジ
ェクトプログラムが生成される。
する。実変数・定数値等が仮名コードで記された1つの
ソースプログラムが与えられると、実変数取り込み部6
では実変数・定数値と仮名コードとの対応を示すテーブ
ルから、入力したソースプログラム中の仮名コードと対
応する実変数を全て取り込む。続いて、仮名変換部7に
おいてソースプログラム中の仮名コードで記された部分
が実変数・定数値に変換され、字句解析部1によってソ
ースプログラムの字句が解析される。そして、構文解析
部2,意味解析部3によってこのソースプログラムの構
文やその意味が解析されるとともに、実変数・定数値に
変換されたソースプログラムは、中間コード生成部4に
おいて中間オブジェクトコードとして生成され、さらに
コード生成部5でオブジェクトプログラムが生成される
。このようなソースプログラムからオブジェクトプログ
ラムへの生成が多重処理部8において繰り返し多重処理
された結果、1つのソースプログラムから複数のオブジ
ェクトプログラムが生成される。
【0010】次に、図4は、ソースプログラム中の仮名
コードを実変数・定数値に変換する仮名変換部7の詳細
な動作を示すフローチャートである。上記したように、
実変数取り込み部6においてテーブルからソースプログ
ラム中の仮名コードと対応する実変数が全て取り込まれ
た後、この仮名変換部7に仮名を含んだソースプログラ
ムが与えられると、ステップST1では仮名を含んだト
ークン列(ソースプログラムのデータ列)から、1つト
ークンを取り出し、この取り出したトークンの種類をス
テップST2で判断する。この場合のトークンの種類は
通常トークンや仮名コード等があるが、この取り込まれ
たトークンの種類がステップST2において通常トーク
ンと判定される場合は、このトークンに変更を加えない
で仮名コードを含まないトークン列に加えて(ST3)
ステップST1へ戻って次のトークンを取り出すと共に
、このトークンがトークン列の最後と判定された場合は
、既に仮名コードを含まないトークン列が作成されてい
るということで、次の処理へ移行する(ステップST4
)。
コードを実変数・定数値に変換する仮名変換部7の詳細
な動作を示すフローチャートである。上記したように、
実変数取り込み部6においてテーブルからソースプログ
ラム中の仮名コードと対応する実変数が全て取り込まれ
た後、この仮名変換部7に仮名を含んだソースプログラ
ムが与えられると、ステップST1では仮名を含んだト
ークン列(ソースプログラムのデータ列)から、1つト
ークンを取り出し、この取り出したトークンの種類をス
テップST2で判断する。この場合のトークンの種類は
通常トークンや仮名コード等があるが、この取り込まれ
たトークンの種類がステップST2において通常トーク
ンと判定される場合は、このトークンに変更を加えない
で仮名コードを含まないトークン列に加えて(ST3)
ステップST1へ戻って次のトークンを取り出すと共に
、このトークンがトークン列の最後と判定された場合は
、既に仮名コードを含まないトークン列が作成されてい
るということで、次の処理へ移行する(ステップST4
)。
【0011】また、ステップST2においてトークンの
種類が仮名コードと判定された場合は、次にステップS
T5で仮名コードの種類を判定する。これら仮名コード
の種類には、ポイント名や定数値等があり、もしポイン
ト名と判定された場合は、ステップST6で実ポイント
のデータに置き換えて、置き換えたこのトークンを新ト
ークンとしてステップST7で仮名コードを含まないト
ークン列に加え、ステップST1へ戻る。また、ステッ
プST5でエニュマレーションと判定された場合は、ス
テップST8で実際のエニュマレーション名に置換する
と共に、置き換えたこのトークンを新トークンとして仮
名コードを含まないトークン列に加え(ステップST7
)、ステップST1へ戻る。また、仮名コードと判定さ
れたトークンがステップST5で定数値と判定された場
合は、この定数値の種類をステップST9で判定する。
種類が仮名コードと判定された場合は、次にステップS
T5で仮名コードの種類を判定する。これら仮名コード
の種類には、ポイント名や定数値等があり、もしポイン
ト名と判定された場合は、ステップST6で実ポイント
のデータに置き換えて、置き換えたこのトークンを新ト
ークンとしてステップST7で仮名コードを含まないト
ークン列に加え、ステップST1へ戻る。また、ステッ
プST5でエニュマレーションと判定された場合は、ス
テップST8で実際のエニュマレーション名に置換する
と共に、置き換えたこのトークンを新トークンとして仮
名コードを含まないトークン列に加え(ステップST7
)、ステップST1へ戻る。また、仮名コードと判定さ
れたトークンがステップST5で定数値と判定された場
合は、この定数値の種類をステップST9で判定する。
【0012】この定数値の種類には、数値や文字列等が
あり、ステップST9で数値と判定された場合は、ステ
ップST10で実際の数値データに置換すると共に、置
き換えたこのトークンを新トークンとして仮名コードを
含まないトークン列に加え(ステップST7)、ステッ
プST1へ戻る。また、定数値の種類がLogical
と判定された場合はステップST11でON/OFFデ
ータに置き換え、置き換えたこのトークンを新トークン
として仮名コードを含まないトークン列に加え(ステッ
プST7)、ステップST1へ戻る。また、ステップS
T9で定数値の種類が文字列と判定された場合は、ステ
ップST12で実際の文字列に置き換え、置き換えたこ
のトークンを新トークンとして仮名コードを含まないト
ークン列に加える(ステップST7)と共に、ステップ
ST1へ戻って次のトークンの取りだしを行う。
あり、ステップST9で数値と判定された場合は、ステ
ップST10で実際の数値データに置換すると共に、置
き換えたこのトークンを新トークンとして仮名コードを
含まないトークン列に加え(ステップST7)、ステッ
プST1へ戻る。また、定数値の種類がLogical
と判定された場合はステップST11でON/OFFデ
ータに置き換え、置き換えたこのトークンを新トークン
として仮名コードを含まないトークン列に加え(ステッ
プST7)、ステップST1へ戻る。また、ステップS
T9で定数値の種類が文字列と判定された場合は、ステ
ップST12で実際の文字列に置き換え、置き換えたこ
のトークンを新トークンとして仮名コードを含まないト
ークン列に加える(ステップST7)と共に、ステップ
ST1へ戻って次のトークンの取りだしを行う。
【0013】このようにして、仮名コードが含まれない
トークン列が作成されると、中間コード生成部4,コー
ド生成部5においては、このトークン列を用いて1つの
オブジェクトプログラムを作成する。その後、多重処理
部8では繰り返し同一処理を実行して、複数のオブジェ
クトプログラムが生成できるように、この一連の処理で
使用した実変数・定数値の初期化等を行う。
トークン列が作成されると、中間コード生成部4,コー
ド生成部5においては、このトークン列を用いて1つの
オブジェクトプログラムを作成する。その後、多重処理
部8では繰り返し同一処理を実行して、複数のオブジェ
クトプログラムが生成できるように、この一連の処理で
使用した実変数・定数値の初期化等を行う。
【0014】
【発明の効果】以上説明したように、本発明によれば、
ソースプログラム中の変数・定数値の部分変更を行う場
合、仮名情報と対応するそれぞれの実変数・定数情報が
格納されたテーブルのみを用いて変更すれば良く、した
がってプログラム開発が効率良く行えるという効果があ
る。
ソースプログラム中の変数・定数値の部分変更を行う場
合、仮名情報と対応するそれぞれの実変数・定数情報が
格納されたテーブルのみを用いて変更すれば良く、した
がってプログラム開発が効率良く行えるという効果があ
る。
【図1】本発明のマルチオブジェクトコード生成方式の
一実施例を示す構成図である。
一実施例を示す構成図である。
【図2】このマルチオブジェクトコード生成方式の他の
実施例を示す構成図である。
実施例を示す構成図である。
【図3】このマルチオブジェクトコード生成方式を適用
した装置の構成図である。
した装置の構成図である。
【図4】上記実施例において仮名コードを実変数・定数
値にこのマルチオブジェクトコード生成方式の他の実施
例を示す構成図である。
値にこのマルチオブジェクトコード生成方式の他の実施
例を示す構成図である。
【図5】従来のオブジェクトコード生成方式を示す構成
図である。
図である。
1 字句解析部
2 構文解析部
3 意味解析部
4 中間コード生成部
5 コード生成部
6 実変数取り込み部
7 仮名変換部
8 多重処理部
Claims (1)
- 【請求項1】 ソースプログラム中の各部に記述され
た仮名情報と対応するそれぞれの実変数・定数情報が格
納されたテーブルから該実変数・定数情報を入力する実
変数取り込み部と、前記ソースプログラム及び実変数・
定数情報を入力して前記仮名情報を該実変数・定数情報
に変換する仮名変換部と、前記仮名情報が前記実変数・
定数情報に変換されたソースプログラムのオブジェクト
コードへの翻訳を多重処理させて複数のオブジェクトプ
ログラムを生成する多重処理部とを備えたことを特徴と
するマルチオブジェクトコード生成方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15218691A JPH04352035A (ja) | 1991-05-29 | 1991-05-29 | マルチオブジェクトコード生成方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15218691A JPH04352035A (ja) | 1991-05-29 | 1991-05-29 | マルチオブジェクトコード生成方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04352035A true JPH04352035A (ja) | 1992-12-07 |
Family
ID=15534944
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15218691A Pending JPH04352035A (ja) | 1991-05-29 | 1991-05-29 | マルチオブジェクトコード生成方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04352035A (ja) |
-
1991
- 1991-05-29 JP JP15218691A patent/JPH04352035A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Xu et al. | Sead: End-to-end text-to-sql generation with schema-aware denoising | |
| Grimm | Better extensibility through modular syntax | |
| CN106371887B (zh) | 一种msvl语言的编译系统及方法 | |
| Ross | The AED approach to generalized computer-aided design | |
| Miecznikowski et al. | Decompiling Java using staged encapsulation | |
| US5949993A (en) | Method for the generation of ISA simulators and assemblers from a machine description | |
| JPH09509271A (ja) | コンピュータ間通信の方法とプロセスおよびそのためのプログラム作成のための一般化された方法 | |
| Fauth et al. | Automated generation of DSP program development tools using a machine description formalism | |
| Fischer et al. | Abstract syntax trees-and their role in model driven software development | |
| CN117075907B (zh) | 应用程序编译方法、系统、编译器及存储介质 | |
| CN118312153A (zh) | 编译器后端代码生成方法、装置、存储介质 | |
| CN115935943B (zh) | 一种支持自然语言结构计算的分析框架 | |
| GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
| Johnstone et al. | The grammar tool box: a case study comparing GLR parsing algorithms | |
| Lim et al. | A worst case timing analysis technique for optimized programs | |
| JPH04352035A (ja) | マルチオブジェクトコード生成方式 | |
| Mössenböck | Compiler Construction: Fundamentals and Applications | |
| Meijer | The project on extended affix grammars at Nijmegen | |
| Rus et al. | An algebraic language processing environment | |
| WO1997007452A1 (en) | Programmable compiler | |
| Haynes Jr et al. | ORACLE a tool for learning compiler writing | |
| Pierce et al. | A transformation-directed compiling system | |
| Mössenböck | Compiler Construction | |
| Sestoft | From Concrete Syntax to Abstract Syntax | |
| JPH0752391B2 (ja) | 複数データベース記述を含む原始プログラムの翻訳方式 |