JPH02224133A - 分割コード生成方式 - Google Patents
分割コード生成方式Info
- Publication number
- JPH02224133A JPH02224133A JP4574989A JP4574989A JPH02224133A JP H02224133 A JPH02224133 A JP H02224133A JP 4574989 A JP4574989 A JP 4574989A JP 4574989 A JP4574989 A JP 4574989A JP H02224133 A JPH02224133 A JP H02224133A
- Authority
- JP
- Japan
- Prior art keywords
- code
- information
- intermediate code
- input
- label
- 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
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 2
- 241000862969 Stella Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、コンパイラ内で生成される中間コードを分割
して入力し、コード生成を行う分割コード生成方式に関
する。
して入力し、コード生成を行う分割コード生成方式に関
する。
(従来の技術)
従来、コンパイラ内で生成される中間コードを分割して
コード生成を行う方式としては、メモリ上に中間コード
を出力してコード生成を行う方式、あるいは中間コード
をファイルに出力して1個づつ読み込んでコード生成を
行う方式が採用されている。
コード生成を行う方式としては、メモリ上に中間コード
を出力してコード生成を行う方式、あるいは中間コード
をファイルに出力して1個づつ読み込んでコード生成を
行う方式が採用されている。
(発明が解決しようとする課題)
上述した従来の中間コードをメモリに出力して分割コー
ドを生成する方式では、メモリ容量が多く必要となり、 (1) 大規模なプログラムを翻訳する場合、メモリ容
量が不足して翻訳できない。
ドを生成する方式では、メモリ容量が多く必要となり、 (1) 大規模なプログラムを翻訳する場合、メモリ容
量が不足して翻訳できない。
(2) どうしても翻訳する場合は、ユーザがソースプ
ログラムを分割しなければならない。
ログラムを分割しなければならない。
また、中間コードをファイルに出力して1個づつ読み込
んでコードを生成する方式では、(1) 1個づつコー
ド生成するなめ、命令の共通化が行えなくて命令個数が
増大しプログラムの実行性能が低下する。
んでコードを生成する方式では、(1) 1個づつコー
ド生成するなめ、命令の共通化が行えなくて命令個数が
増大しプログラムの実行性能が低下する。
という欠点がある。
(課題を解決するための手段)
本発明による分割コード生成方式は、コンパイラ内でフ
ァイルに出力された中間コードと構文解析処理後にメモ
リ上に生成されるラベルの参照状態を示すラベル情報と
を入力して中間コードの情報が分割可能かどうかを判定
する入力/判定手段と、 前記入力/判定手段で分割可能と判定されたとき、今ま
でに作成した情報テーブルを基に最適なコード生成を行
うコード生成手段と、 前記コード生成手段で不要になった情報テーブルを初期
化する初期化手段とを有する。
ァイルに出力された中間コードと構文解析処理後にメモ
リ上に生成されるラベルの参照状態を示すラベル情報と
を入力して中間コードの情報が分割可能かどうかを判定
する入力/判定手段と、 前記入力/判定手段で分割可能と判定されたとき、今ま
でに作成した情報テーブルを基に最適なコード生成を行
うコード生成手段と、 前記コード生成手段で不要になった情報テーブルを初期
化する初期化手段とを有する。
(実施例)
次に、本発明の構成について図面を参照して説明する。
第1図は本発明による分割コード生成方式の一実施例を
示す構成図であり、入力/判定手段1、コード生成手段
2、初期化手段3、中間コード4、ラベル情報5、情報
テーブル6から構成されている。
示す構成図であり、入力/判定手段1、コード生成手段
2、初期化手段3、中間コード4、ラベル情報5、情報
テーブル6から構成されている。
第2図には入力/判定手段1の動作処理流れ図が示され
ており、中間コード4の入力11、ラベル12、ループ
内に存在13、ラベル情報5の入力14、他文から参照
あり15、入口者16、情報テーブル6の作成17の各
ステップから構成されている。
ており、中間コード4の入力11、ラベル12、ループ
内に存在13、ラベル情報5の入力14、他文から参照
あり15、入口者16、情報テーブル6の作成17の各
ステップから構成されている。
また、第3図に示す如く、コード生成手段2はコード生
成21のステップを有する。
成21のステップを有する。
更に、第4図に示す如く、初期化手段3は、不要情報テ
ーブルの初期化31のステップを含んでいる。
ーブルの初期化31のステップを含んでいる。
次に、本発明の動作について、図面を参照して説明する
。
。
利用者がコンパイラを起動してコンパイラ内の入力/判
定手段1が動作すると、既に生成されている中間コード
4の入力を行い(ステップ11)、入力した情報がラベ
ル情報かどうか判定しくステラ712)、ラベル情報で
なければ、入力した情報が入口者の情報かどうか判定す
る(ステップ16)0判定の結果、入口者でなければ入
力しな情報で情報テーブル6の作成(ステップ17)を
行い次の中間コード4の情報を入力する。
定手段1が動作すると、既に生成されている中間コード
4の入力を行い(ステップ11)、入力した情報がラベ
ル情報かどうか判定しくステラ712)、ラベル情報で
なければ、入力した情報が入口者の情報かどうか判定す
る(ステップ16)0判定の結果、入口者でなければ入
力しな情報で情報テーブル6の作成(ステップ17)を
行い次の中間コード4の情報を入力する。
一方、ステップ16において入口者であると判定されれ
ば、コード生成手段2を起動させる。
ば、コード生成手段2を起動させる。
ステップ12において入力した情報がラベル情報であれ
ば、この情報からラベルがループ内に存在するかどうか
判定しくステップ13)、ラベルがループ内に存在する
と判定されると、ステップ17において入力した情報で
情報テーブルの作成を行い次の中間コード4の情報を入
力する。
ば、この情報からラベルがループ内に存在するかどうか
判定しくステップ13)、ラベルがループ内に存在する
と判定されると、ステップ17において入力した情報で
情報テーブルの作成を行い次の中間コード4の情報を入
力する。
ステップ12において、ラベルがループ内に存在しない
と判定されると、ラベル情報5の入力を行い(ステップ
14)、ラベルが他文から参照ありかどうかを判定しく
ステップ15)、参照なしと判定された場合は、ステッ
プ17において入力した情報で情報テーブル6の作成を
行い、次の中間コード4の情報を入力する。他文からの
参照あつと判定された場合は、コード生成手段2を起動
させる。
と判定されると、ラベル情報5の入力を行い(ステップ
14)、ラベルが他文から参照ありかどうかを判定しく
ステップ15)、参照なしと判定された場合は、ステッ
プ17において入力した情報で情報テーブル6の作成を
行い、次の中間コード4の情報を入力する。他文からの
参照あつと判定された場合は、コード生成手段2を起動
させる。
コード生成手段2は、ステップ21において今までに生
成された情報テーブル6で最適なコード生成を行い初期
化手段3を起動する。
成された情報テーブル6で最適なコード生成を行い初期
化手段3を起動する。
初期化手段3はステップ21によるコード生成後、ステ
ップ31において不要情報テーブルの初期化を行い人力
/判定手段1へ戻る。
ップ31において不要情報テーブルの初期化を行い人力
/判定手段1へ戻る。
このようにして、中間コード4を分割して入力してコー
ド生成を行う。
ド生成を行う。
(発明の効果)
以上説明したように本発明は、中間コードを分割して入
力してコード生成を行うため、コンパイラが使用するメ
モリ容量が小さくて済むメモリ制約のある計算機システ
ムにおいて、大規模プログラムの翻訳が可能である分割
単位に最適なコード生成が行えるため、実行性能の低下
が防止できる等の効果がある。
力してコード生成を行うため、コンパイラが使用するメ
モリ容量が小さくて済むメモリ制約のある計算機システ
ムにおいて、大規模プログラムの翻訳が可能である分割
単位に最適なコード生成が行えるため、実行性能の低下
が防止できる等の効果がある。
第1図は本発明による分割二r−ド生成方式の一実施例
を示す構成図、第2図は第1図中の入力/判定手段1の
処理流れ図、第3図は第1図中のコード生成手段2の流
れ図、第4図は第1図中の初期化手段3の処理流れ図で
ある。 1・・・入力/判定手段、2・・・コード生成手段、3
・・・初期化手段、4・・・中間コード、5・・・ラベ
ル情報、6・・・情報テーブル。
を示す構成図、第2図は第1図中の入力/判定手段1の
処理流れ図、第3図は第1図中のコード生成手段2の流
れ図、第4図は第1図中の初期化手段3の処理流れ図で
ある。 1・・・入力/判定手段、2・・・コード生成手段、3
・・・初期化手段、4・・・中間コード、5・・・ラベ
ル情報、6・・・情報テーブル。
Claims (1)
- 【特許請求の範囲】 コンパイラ内でファイルに出力された中間コードと構文
解析処理、後にメモリ上に生成されるラベルの参照状態
を示すラベル情報とを入力して中間コードの情報が分割
可能かどうかを判定する入力/判定手段と、 前記入力/判定手段で分割可能と判定されたとき、今ま
でに作成した情報テーブルを基に最適なコード生成を行
うコード生成手段と、 前記コード生成手段で不要になった情報テーブルを初期
化する初期化手段とを有することを特徴とする分割コー
ド生成方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4574989A JPH02224133A (ja) | 1989-02-27 | 1989-02-27 | 分割コード生成方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4574989A JPH02224133A (ja) | 1989-02-27 | 1989-02-27 | 分割コード生成方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02224133A true JPH02224133A (ja) | 1990-09-06 |
Family
ID=12727955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4574989A Pending JPH02224133A (ja) | 1989-02-27 | 1989-02-27 | 分割コード生成方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH02224133A (ja) |
-
1989
- 1989-02-27 JP JP4574989A patent/JPH02224133A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8032873B2 (en) | Computer program code size partitioning system for multiple memory multi-processing systems | |
KR20140006911A (ko) | Fsm을 구현하기 위한 특수 목적 요소의 이용 | |
JPH08314728A (ja) | ソースプログラムをオブジェクトプログラムに変換する方法および装置 | |
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
US5964861A (en) | Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set | |
JPH02224133A (ja) | 分割コード生成方式 | |
Gorlatch | Stages and transformations in parallel programming | |
JP2006338190A (ja) | 実装コード開発システム、及び実装コード開発プログラム | |
JPH09288580A (ja) | ソースプログラムの最適化装置および最適化方法 | |
JPS63115236A (ja) | オブジエクト選択方式 | |
JP2004021425A (ja) | コンパイラにおけるメモリ配置方式 | |
JPS58112127A (ja) | デ−タ入力手段形成方式 | |
JP2956591B2 (ja) | ループ外への条件付き飛び出しがあるループの並列化方法及び装置 | |
JP3370243B2 (ja) | コンパイル方法及び装置 | |
KR20180098213A (ko) | 단계형 중간언어 변환 장치 및 방법 | |
JPH04116721A (ja) | システム定義ディレクティブの解析方式 | |
JP3327634B2 (ja) | プログラム変換装置、およびプログラム変換方法 | |
JP2004046747A (ja) | ベクトル化方式 | |
JP3124000B2 (ja) | 構造型の利用者定義演算のインライン展開装置 | |
JPH0383140A (ja) | 算術式展開方式 | |
KR20180057317A (ko) | 단계형 중간언어 변환 장치 및 방법 | |
JPS62235643A (ja) | プログラム言語トランスレ−タ | |
JP2848609B2 (ja) | 論理回路変換方法及び装置 | |
JPH01246643A (ja) | エラーメッセージ出力方式 | |
JPH02128224A (ja) | 内部構造データ付加処理方法 |