JPH0196732A - マクロ展開リストの出力方式 - Google Patents
マクロ展開リストの出力方式Info
- Publication number
- JPH0196732A JPH0196732A JP62253715A JP25371587A JPH0196732A JP H0196732 A JPH0196732 A JP H0196732A JP 62253715 A JP62253715 A JP 62253715A JP 25371587 A JP25371587 A JP 25371587A JP H0196732 A JPH0196732 A JP H0196732A
- Authority
- JP
- Japan
- Prior art keywords
- information
- macro
- list
- source
- output
- 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
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、マクロ機能を有する言語プロセッサのリスト
出力処理に係り、特にマクロ展開リストの出力に好適な
方式に関する。
出力処理に係り、特にマクロ展開リストの出力に好適な
方式に関する。
従来の方式では、中間情報はマクロ定義中の可変記号を
すべて置換した形で保持し、リスト出力時には中間情報
をそのまま出力していた。
すべて置換した形で保持し、リスト出力時には中間情報
をそのまま出力していた。
しかし、この方法では、言語プロセッサのコンパイル性
能に対する配慮がされていなかった。
能に対する配慮がされていなかった。
上記従来技術は、第2図、ソースリスト出力機。
構に示すように、1のソースライブラリと2のマクロラ
イブラリから3のマクロ処理部がソースプログラムを入
力し、出力リストを4の中間情報(コンパイラ出力ファ
イル)として編集して、1の出力処理部では、4の中間
情報を6のソースリスト(マクロ展開リスト)として出
力するのみの機構である。
イブラリから3のマクロ処理部がソースプログラムを入
力し、出力リストを4の中間情報(コンパイラ出力ファ
イル)として編集して、1の出力処理部では、4の中間
情報を6のソースリスト(マクロ展開リスト)として出
力するのみの機構である。
上記従来方式では、以下の2点について配慮がされてい
ない。
ない。
■ 同一マクロを呼出す回数が多い場合には。
同一のマクロ定義情報が個々の中間情報に入るため、−
量情報量が増大する。
量情報量が増大する。
■ リスト出力の有無Kかかわらず、中間情報が無条件
にマクロ定義中の可変記号まで置換したリスト形式にな
っているため、リスト出力不要時にはコンパイル速度が
遅くなる。
にマクロ定義中の可変記号まで置換したリスト形式にな
っているため、リスト出力不要時にはコンパイル速度が
遅くなる。
という問題点があった。
本発明の目的は、上記問題点を解決する為に。
中間情報tを最小にし、出力ツースリストの編集箇所を
変更することにより、コンパイラの性能向上を図ること
にある。
変更することにより、コンパイラの性能向上を図ること
にある。
上記目的は、マクロ展開リストの出力に於いて、第2図
の本発明の機構に示すように、以下の2点の手法を導入
することにより達成される。
の本発明の機構に示すように、以下の2点の手法を導入
することにより達成される。
■ 9のマクロ処理部では、7のソースライブラリ及び
8のマクロライブラリよりソースを入力し、10の中間
情報(ソース情報)、と11の。
8のマクロライブラリよりソースを入力し、10の中間
情報(ソース情報)、と11の。
中間情報(マクロ定義情報)を別ファイルとして保持し
、10の中間情報から11の中間情報へはポインタを張
る。
、10の中間情報から11の中間情報へはポインタを張
る。
■ 12のリスト出力処理部では、リスト出力型時のみ
、10の中間情報(ソース情報)から11の中間情報(
マクロ定義情報)へのポインタをもとに、出力リストの
編集を行い、15のソースリスト(マクロ展開リスト)
として出力する。
、10の中間情報(ソース情報)から11の中間情報(
マクロ定義情報)へのポインタをもとに、出力リストの
編集を行い、15のソースリスト(マクロ展開リスト)
として出力する。
第3図は1本発明の流れを示す図である。
16のソース解析で14のソースライブラリ及び15の
フクロライブラリからソースを入力し、17の中間情報
(ソース情報)と18の中間情報(マクロ定義情報)を
作成し、18から19へはポインタを張っておくだけに
する。
フクロライブラリからソースを入力し、17の中間情報
(ソース情報)と18の中間情報(マクロ定義情報)を
作成し、18から19へはポインタを張っておくだけに
する。
こ九により、同一マクロが何回呼出されても19の中間
テキスト(マクロ定義情報)は、1つだけとなり、中間
情報量を減少させることができる。
テキスト(マクロ定義情報)は、1つだけとなり、中間
情報量を減少させることができる。
さらに20でリスト出力の有無を判定し、リスト出力型
時のみ、21T18と19の中間情報を入力し、22で
出力リストの形式に編集し、23でソースリスト(マク
ロ展開リスト)として出力する。
時のみ、21T18と19の中間情報を入力し、22で
出力リストの形式に編集し、23でソースリスト(マク
ロ展開リスト)として出力する。
こ九により、リスト出力不要時には、出力リストの編集
が行われなくなる為、コンパイル性能が向上する。
が行われなくなる為、コンパイル性能が向上する。
以下1本発明を図面を参照して本発明の一実施例を詳細
に説明する。
に説明する。
第4図は、受は取ったパラメータを、L)C(定数定義
)命令の定数として展開する25のマクロ定義及び26
のマクロ呼出し文の例である。
)命令の定数として展開する25のマクロ定義及び26
のマクロ呼出し文の例である。
このマクロ展開では、定数の値以外の部分、27の「υ
C」等は、何回呼び出されても固定である。
C」等は、何回呼び出されても固定である。
第5図は、第4図のマクロ展開に対する中間情報の構成
を示したものである。
を示したものである。
28の中間情報(マクロ定義情報)として、29の一文
単位のリスト情報を持つ。−文単位に持つ情報として、
30の可変記号の記述されている位置(相対ロケーシヨ
ン)と、可変記号の長さを持つ可変記号情報、31のマ
クロ定義内に記述された一文を編集し、圧縮したソース
情報がある。
単位のリスト情報を持つ。−文単位に持つ情報として、
30の可変記号の記述されている位置(相対ロケーシヨ
ン)と、可変記号の長さを持つ可変記号情報、31のマ
クロ定義内に記述された一文を編集し、圧縮したソース
情報がある。
32の中間情報(ソース情報)として、33の一文単位
のリスト情報を持つ。−文単位に持つ情報として、54
のマクロ定義リスト情報へのポイン)t−持つ1文ヘッ
ダ情報、35の可変記号の置換後の長。
のリスト情報を持つ。−文単位に持つ情報として、54
のマクロ定義リスト情報へのポイン)t−持つ1文ヘッ
ダ情報、35の可変記号の置換後の長。
さ、値を持つ可変記号置換情報が、るる。
本例では、可変記号の個数は一文に一個しか存在しない
が、−文に可変記号が複数個存在する場合は、29のマ
クロ定義の一文単位のリスト情報。
が、−文に可変記号が複数個存在する場合は、29のマ
クロ定義の一文単位のリスト情報。
及び55のマクロ展開の一文単位のリスト情報に可変記
号の個数分、30のiクロ定義の可変記号情報と、35
のマクロ展開の可変記号置換情報を持つ。
号の個数分、30のiクロ定義の可変記号情報と、35
のマクロ展開の可変記号置換情報を持つ。
第4図、第5図より、マクロ展開後リストを出力する場
合は、中間情報(ソース情報)のマクロ展開の文ヘッダ
情報からマクロ定義の一文単位のリスト情報を得る。次
に、マクロ定義のソース情報と、可変記号情報から求め
た可変記号の位置に。
合は、中間情報(ソース情報)のマクロ展開の文ヘッダ
情報からマクロ定義の一文単位のリスト情報を得る。次
に、マクロ定義のソース情報と、可変記号情報から求め
た可変記号の位置に。
マクロ展開の可変記号置換情報の値を置換する。
この際、可変記号の長さと可変記号情報情報の長さの組
合せKより出力リストの編集を行い、1り口展開リスト
を出力する。
合せKより出力リストの編集を行い、1り口展開リスト
を出力する。
本発明によれば、コンパイラの中間情報計を減少させる
ことができ、また必要時のみソースリストの編集を行′
うため、プログラムのコンパイル性能(所要メモリ倉、
コンパイル速度)の向上に効果がある。
ことができ、また必要時のみソースリストの編集を行′
うため、プログラムのコンパイル性能(所要メモリ倉、
コンパイル速度)の向上に効果がある。
第1図は1本発明の一実施例の構成図、第2図は従来技
術の構成図、第3図は本発明の動作手順を示すフローチ
ャート、第4図は本発明の一実施例のプログラム図、第
5図は本発明の一実施例の中間情報形式の説明図である
。 1・・・ソースライブラリ、2・・・マクロライブラリ
。 3・・・マクロ処理部、5・・・リスト出力処理部、7
・・・。 ソースライブラリ、8・・・マクロライブラリ、9・・
・マクロ処理部、12・・・リスト出力処理部、14・
・・ソースライブラリ、15・、・・マクロライブラリ
、16・・・ソース解析、17・・・中間情報の作成、
20・・・リスト出力有無の判定、21・・・中間情報
の入力、22・・・出力リスト 。 の編集、23・・・リストの出力、25・・・プログラ
ム中のマクロ定義、26・・・マクロ呼出文、27・・
・マクロ定義中の固定部分。 第 1 凹 第3図 第 4− 図 第 5 回
術の構成図、第3図は本発明の動作手順を示すフローチ
ャート、第4図は本発明の一実施例のプログラム図、第
5図は本発明の一実施例の中間情報形式の説明図である
。 1・・・ソースライブラリ、2・・・マクロライブラリ
。 3・・・マクロ処理部、5・・・リスト出力処理部、7
・・・。 ソースライブラリ、8・・・マクロライブラリ、9・・
・マクロ処理部、12・・・リスト出力処理部、14・
・・ソースライブラリ、15・、・・マクロライブラリ
、16・・・ソース解析、17・・・中間情報の作成、
20・・・リスト出力有無の判定、21・・・中間情報
の入力、22・・・出力リスト 。 の編集、23・・・リストの出力、25・・・プログラ
ム中のマクロ定義、26・・・マクロ呼出文、27・・
・マクロ定義中の固定部分。 第 1 凹 第3図 第 4− 図 第 5 回
Claims (1)
- 1、マクロ機能を有する言語で記述されたプログラムの
ソースリスト出力において、ソース情報と展開対象とな
るマクロ定義情報を別ファイルとし、ソース情報には可
変記号の置換情報とマクロ定義情報へのポインタを設け
、ソースリスト出力時に出力リストの編集を行うことを
特徴とするマクロ展開リストの出力方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62253715A JPH0196732A (ja) | 1987-10-09 | 1987-10-09 | マクロ展開リストの出力方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62253715A JPH0196732A (ja) | 1987-10-09 | 1987-10-09 | マクロ展開リストの出力方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0196732A true JPH0196732A (ja) | 1989-04-14 |
Family
ID=17255140
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62253715A Pending JPH0196732A (ja) | 1987-10-09 | 1987-10-09 | マクロ展開リストの出力方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0196732A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009187098A (ja) * | 2008-02-04 | 2009-08-20 | Canon Inc | 画像形成装置及びその制御方法、並びにプログラム及び記憶媒体 |
-
1987
- 1987-10-09 JP JP62253715A patent/JPH0196732A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009187098A (ja) * | 2008-02-04 | 2009-08-20 | Canon Inc | 画像形成装置及びその制御方法、並びにプログラム及び記憶媒体 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6243864B1 (en) | Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths | |
| JPH1173325A (ja) | プログラム変換装置及び記録媒体 | |
| JPH0721033A (ja) | 言語処理装置及びその方法 | |
| JP2000132404A (ja) | 命令列最適化装置 | |
| JPH0196732A (ja) | マクロ展開リストの出力方式 | |
| US7694283B2 (en) | Method and apparatus for generating specification data | |
| JP3323147B2 (ja) | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 | |
| EP0348563B1 (en) | A system and method for generating program object modules | |
| JPH03282841A (ja) | 可変長レコードの直接入出力処理方式 | |
| JP3003459B2 (ja) | プログラム作成支援装置 | |
| JP2018005551A (ja) | 編集支援プログラム、装置および方法 | |
| JP4494892B2 (ja) | データ処理装置及びプログラム | |
| JPS5846439A (ja) | 計算機のプログラム編集方法 | |
| JPH04273328A (ja) | クロスリファレンスリスト生成方式 | |
| JP3152769B2 (ja) | プログラム解析装置 | |
| JP2581806B2 (ja) | パストレースファイルの修正方法 | |
| JPH064299A (ja) | 最適化オブジェクトプログラム生成方式 | |
| JPH0254368A (ja) | 機械翻訳における翻訳制御方式 | |
| JPH0540638A (ja) | 語彙解析編集方式 | |
| JPH02159629A (ja) | 計算機言語翻訳方式 | |
| JPH05250210A (ja) | プログラムトレース方式 | |
| JP2000207184A (ja) | プログラムソ―ス記述再標準化装置 | |
| JPH081608B2 (ja) | プログラム実行解析ツール | |
| JPH0644082A (ja) | 最適化テキスト作成方式 | |
| JPH0455937A (ja) | プログラム清書処理装置 |