JPS5822453A - 言語翻訳時のマクロ展開方式 - Google Patents

言語翻訳時のマクロ展開方式

Info

Publication number
JPS5822453A
JPS5822453A JP12121181A JP12121181A JPS5822453A JP S5822453 A JPS5822453 A JP S5822453A JP 12121181 A JP12121181 A JP 12121181A JP 12121181 A JP12121181 A JP 12121181A JP S5822453 A JPS5822453 A JP S5822453A
Authority
JP
Japan
Prior art keywords
macro
statement
work area
compiler
definition
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
JP12121181A
Other languages
English (en)
Inventor
Koichi Maeda
前田 剛一
Masao Morita
雅夫 森田
Kazuhisa Terayama
寺山 和久
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.)
Fujitsu Ltd
Nippon Telegraph and Telephone Corp
Original Assignee
Fujitsu Ltd
Nippon Telegraph and Telephone Corp
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 Fujitsu Ltd, Nippon Telegraph and Telephone Corp filed Critical Fujitsu Ltd
Priority to JP12121181A priority Critical patent/JPS5822453A/ja
Publication of JPS5822453A publication Critical patent/JPS5822453A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、マクロ定義ファイルから読出して作業領域に
格納したマクロ定義文を保存し、作業領域内のマクロ定
義文を繰返して使用するようにした言語翻訳時のマクロ
展開方式に関するものである0 ソース・プログラムYオブジェクト・プログラムに変換
する場合、マクロ・コール文に対して言語処理プログラ
ムは2次記憶媒体上のマクロ・ライブラリから対応マク
ロの定義文を主メモリ上に読取り、その定義に従い、マ
クロ展開を行うが、従来方式ではマクロ・コール文対応
(即チマクロ、・コール文毎に毎回)に読み込みを行っ
ている。
これは、たとえマクロ・コール文が連続していても例外
ではなかった0このような従来方式は、マクロ・コール
文毎に入出力動作が行われるので、言語翻訳を高速で行
い得ないという欠点を有している。
本発明は、上記の欠点を除去するものでありて、マクロ
・ライブラリからのマクロ定義文の読込み回数を極力少
なく出来るようにした言語翻訳時のマクロ展開方式を提
供するととt目的としている。
そし【そのため、本発明の言語翻訳時のマクロ展開方式
は、マクロ・コール文v含むソース・プロダラム層成の
ニーず・プログラムが格納された入力ファイルと、コン
パイラと、マクロφライブラリと、出力ファイルと、主
メモリ上に確保された上記コンパイラのための作業領域
とを有し、上記コンパイラが上記ニーず・プログラムの
マクロ命令が展開して上記出力ファイルに出力するため
に、上記マクロ・ライブラリから該尚するマクロ定義文
を上記作業領域に読込み、作業領域のマクロ定義文を用
いてマクロ展開を行うように構成されたコンパイラ・シ
ステムにおいて、上記コンパイラは、上記入力ファイル
からマクロ・コール文を読込んだとき、上記作業領域に
核当てるマクロ定義文があるか否かを調べ、存在する場
合には当該マクロ定義文を用いてマクロ展開を行い、存
在しない場合には上記マクロ・ライブラリから咳尚する
マクロ定義文ン上記作業領域に読込んでマクロ展開を行
うと共に当該マクロ定義文を作業領域上に保留させるこ
と¥特徴とするものである。以下、本発明を図面を参照
しつつ説明する。
第1図は言語翻訳システムの構成な示す図、第2図はソ
ース・プログラムの1例を示す図、II!E3図はマク
ロ展開処理部での処理を示すフローチャートである。
111図において、1は入力ファイル、2は出力ファイ
ル、3はコンパイラ、4はマクロ・ライブラリ、■はコ
ンパイラの作業領域をそれぞれ示している。
入力ファイル1には、ソース命プログラム形式のユーザ
・プログラムが格納されており、このニー望・プログラ
ムがコンパイラ3によってオブジェクト・プログラムに
変換される@第2図は入力ファイルIPlc格納される
ニーず脅プログラムの1例を示すものであって、このユ
ーザープログラムには、AAAマクロの定義文やBBB
マクロの定義文を呼出すマクロ・コール文の外に、コン
パイラのための作業領域■の大きさt指定する文や1ク
ロ・;−ル文の使用回数などが記入されている0出カフ
アイル2には、コンパイラの出力するオブジェクト・プ
ログラムが格納される。コンパイラ3は、コンパイルの
ための準備を行う準備部と、マクロ展開処理部とを有し
ている。準備部は、ニーず・プログラムの領域確保文に
従い主メモリ上にコンパイラのための作業領域を確保す
るためのものである。マりa展開処理部については後述
する。
マタU・ライブラリ4&Cは複数のマクロ定義文が格納
されている◎主メモリ上に確保された作業領域[有]は
、被数のマクロ定義文を格納できる大きさとされている
183図はコンパイラ30マクロ展開処理部で行われる
処理を示すものである。マクロ展開処!1ilSでは、
下記のような処理が行われる。
0) 読込んだ文がマクロ・コール文であるか否かを調
べる。Noであれば該尚する処理を行い、Y@8であれ
ば(ロ)の処理を行う。
(ロ) 該幽するマクロ定義文が作業エリアに存在する
か否かを調べる□Y@sであれば(ホ)のmat’行い
、NOであれば(ハ)の処11Y行う〇(ハ) マクロ
定義ファイル、即ちマクロ・ライブラリ4から該@する
マクロ定義文を作業エリアに読込み、次kに)の処理を
行う〇 に) マクロ定義文の使用回数をカウンタに設定し、次
K(ホ)の処理を行う〇 (ホ)作業領域■に格納されているマクロ定義文をマク
ロ展開に用い、マクロ展開によって生成された文を出力
ファイル2に出力する。
(へ)該尚するマクロ使用カウンタY−1−fる。
(ト)  そのマクロ使用カウンタのカウント値が0で
あるか否かを調べる。Teaであれば(ト)の処Ilv
行い、NoであればH)K戻る。
−作業領域[有]の該当する部分領域を自由にし、他の
マクロ定義文を格納できるようKする。
作業領域■に新たにマクロ定義文を読込むことか必要で
あるが、空き領域が存在しない場合には、適尚なアルゴ
リズムで新たなマクロ定義文を格納する領域を決定すれ
ば追い。そのアルゴリズムとしては、例えば、マクロ使
用カウンタのカウント値を参照する方法やLR8法など
が考えられる。
上記の実施例においては、ユーザ・プログラムにマりc
1使用回数を記入しているがマクC1使用回数の記入は
必ずしも必要ではない・マクa使用回数を記入しない場
合のマクロ展開処理は下記のよ5JCなる・ (()!クローコール文が初めてのときは、マクロ・ラ
イブラリ4から作業領域[有]に読込み、作業領域@に
保留させる。
(ロ) もし既に読込み済のときは、作業領域■のマク
ロ定義文なそのまへ使用する0 (へ)新たにマクロ定義文をマクμ・ライブラリ4から
作業領域@に読込むことが必要であるが、作業領域のが
満杯のときは、一番古く使われていたものな追出してそ
こへマクロ定義文V読込む0 以上の説明から明らかなように、本発明によれば、マク
ロ・ライブラリからのマクロ定義文の読込み回数を従来
方式に比し大幅に減少できるので、言語翻訳を著しく高
速化することが出来るO例えば、システム・ジェネレー
ションでの制御表展開等(同じマクロが連続してコール
される確率が非常に高い)の場合には、言語処理時間が
数十分の−に短縮される。
【図面の簡単な説明】
第1図は言語翻訳システムの構成を示す図、第2図はソ
ース−・−プログラムの1例を示す図、第3図はマクロ
展開処理部での処!It示すフローチャートである。 l・・・入力ファイル、2・・・出力ファイル、3・・
・コンパイラ、4・・・マクロ・ライブラリ、■・・、
コンパイラ作業領域0 )A−1図 え5図 手続補正書(自発) 昭和56年11月17日 、発明の名称 言語翻訳時のマクロ展開方式     
 2・3、補正をする者 事件との関係 特許出願人 住  所  神奈川県用崎市中原区上小田中1015番
地氏 名 (522)富士通株式会社 代表者 山 本 卓 眞(外1名) 4、代理人 5、補正により増加する発明の数 なし全文補正明細書 発明の名称 言語翻訳時のマクロ展開方式 特許請求の範囲 マクロ・コール文を含むソース・プログラム型式のユー
ザ・プログラムが格納された入力ファイルと、コンパイ
ラと、マクロ・ライブラリと、出力ファイルと、主メモ
リ上に確保された上記コンパイラのための作業領域とを
有し、上記コンパイラが上記ユーザ・プログラムのマク
ロ命令を展開して上記出力ファイルに出力するために、
上記マクロ・ライブラリから該当するマクロ定義文を上
記作業領域に読込み、作業領域のマクロ定義文を用いて
マクロ展開を行うように構成されたコンパイラ−システ
ムにおいて、上記コンパイラは、上記入力ファイルから
マクロ・コール文を読込んだとき、上記作業領域に該当
するマクロ定義文があるか否かを調べ、存在する場合に
は当該マクロ定義文を用いてマクロ展開を行い、存在し
ない場合には上記マクロ・ライブラリから該当するマク
ロ定義文を上記作業領域に読込んでマクロ展開を行うと
共に当該マクロ定義文を作業領域上に保留させることを
特徴とする言語翻訳時のマクロ展開方式。 3、発明の詳細な説明 本発明は、iクロ定義ファイルから読出して作業領域に
格納したマクロ定義文を保存し、作業領域内のマクロ定
義文を繰返して使用するようにした言語翻訳時のマクロ
展開方式に関するものである。 ソース・プログラムをオブジェクト・プログラムに変換
する場合、マクロ・コール文に対して言語処理プログラ
ムは2次記憶媒体上のマクロ・ライブラリから対応マク
ロの定義文を主メモリ上に読取り、その定義に従い、マ
クロ展開を行うが、従来方式ではマクロ・コール文対応
(即ちマクロ・コール文毎に毎回)に読み込みを行って
いる。 これは、たとえマクロ・コール文が連続していても例外
ではなかった。このような従来方式は、マクロ・コール
文毎に人出方動作が行われるので、言語翻訳を高速で行
い得ないという欠点を有している。 本発明は、上記の欠点を除去するものであって、マクロ
・ライブラリからのマクロ定義文の読込み回数を極力少
なく出来るようにした言語翻訳時のマクロ展開方式を提
供することを目的としている。 そしてそのため、本発明の言語翻訳時のマクロ展開方式
は、マクロ・コール文を含むソース・プログラム型式の
ユーザ・プログラムが格納された入力ファイルと、コン
パイラと、マクロ・ライブラリと、出力ファイルと、主
メモリ上に確保された上記コンパイラのための作業領域
とをゼし、上記コンパイラが上目ごユーザ・プログラム
のマクロ命令を展開して上記出方ファイルに出方するた
めに、上記マクロ・ライブラリから該当するマクロ定義
文を上記作業領域に読込み、作業領域のマクロ定義文を
用いてマクロ展開を行うように構成されたコンパイラ・
システムにおいて、上記コンパイラは、上記入力ファイ
ルからマクロ・コール文を読込んだとき、上記作業領域
に該当するマクロ定義文があるか否かを調べ、存在する
場合には当該マクロ定義文を用いてマクロ展開を行い、
存在しない場合には上記マクロ・ライブラリから該当す
るマクロ定義文を上記作業領域に読込んでマクロ展開を
行うと共に当該マクロ定義文を作業領域上に保留させる
ことを特徴とするものである。以下、本発明を図面を参
照しつつ説明する。 第1図は言語翻訳システムの構成を示す図、第2図はソ
ース・プログラムの1例を示す図、第3図ハマクロ展開
処理部での処理を示すフローチャートである。 第1図において、1は入力ファイル、2は出力ファイル
、3はコンパイラ、4はマクロ・ライブラリ、■はコン
パイラの作業領域をそれぞれ示している。 入力ファイル1には、ソース・プログラム形式のユーザ
・プログラムが格納されており、このユーザ・プログラ
ムがコンパイラ3によってオブジェクト・プログラムに
変換される。第2図は入力ファイルlに格納されるユー
ザ・プログラムの1例を示すものであって、このユーザ
・プログラムには、AAAマクロの定義文やBBBマク
ロの定義文を呼出すマクロ・コール文の外に、コンパイ
ラのための作業領域■の大きさを指定する文やマクロ・
コール文の使用回数などが記入されて論る。出力ファイ
ル2には、コンパイラの出力するオブジェクト・プログ
ラムが格納される。コンパイラ3は、コンパイルのため
の準備を行う準備部と、マクロ展開処理部とを有してい
る。準備部は、ニー文 ンバイラのための作業領域を確保するためのものである
。マクロ展開処理部については後述する。 マクロ・ライブラリ4には複数のマクロ定義文が格納さ
れている。主メモリ上に確保された作業領域のは、複数
のマクロ定義文を格納できる大きさとされている。 第3図はコンパイラ3のマクロ展開処理部で行われる処
理を示すものである。マクロ展開処理部では、下記のよ
うな処理が行われる。 0)読込んだ文がマクロ・コール文であルカ否かを調べ
る。No″Cあれば該当する処理を行い、Yesであれ
ば(ロ)の処理を行う。 ←) 該当するマクロ定義文が作業エリアに存在するか
否かを調べる。Yes″T:あれば(ホ)の処理を行い
sNoであれば(ハ)の処理を行う。 el  マクロ定義ファイル、即ちマクロ・ライブラリ
4から該当するマクロ定義文を作業エリアに読込み1次
にに)の処理を行う。 に) マクロ定義文の使用回数をカウンタに設定し、次
に幽の処理を行う。 に)作業領域のに格納されているマクロ定義文をマクロ
展開に用い、マクロ展開によりて生成された文を出力フ
ァイル2に出力する。 (へ)該当するマクロ使用カウンタを−エする。 (ト)  そのマク寵使用カウンタのカウント値が0で
あるか否かを調べるe Y e Bであれば(イ)の処
理を行い%Noであれば(イ)に戻る。 (ハ)作業領域■の該当する部分領域を自由にし。 他のマクロ定義文を格納できるようにする。 作業領域■に新たにマクロ定義文を読込むことが必要で
あるが、空き領域が存在しない場合には、適当なアルゴ
リズムで新たなマクロ定義文を格納する領域を決定すれ
ば良い、そのアルゴリズムとしては、例えば、マクロ使
用カウンタのカウント値を参照する方法やLRU法など
が考えられる。 上記の実施例においては、ユーザ・プログラムにマクロ
使用回数を記入しているがマクロ使用回数の記入は必ず
しも必要ではない。マクロ使用(ロ)数を記入しない場
合のマクロ展開処理は下記のようになる。 (イ) マクロ・コール文が初めてのときは、マクロ・
ライブラリ4がら作業領域■に読込み、作業領域■に保
留させる。 (ロ) もし既に読込み済のときは、作業領域■のマク
ロ定義文をそのま\使用する。 (ハ)またにマクロ定義文をマクロ・ライブラリ4から
作業領域■に読込むことが必要であるが、作業領域[株
]が満杯のときは、一番古く使われていたものを追出し
てそこへマクロ定義文を読込む。 以上の説明から明らかなように、本発明によれば、マク
ロ・ライブラリからのマクロ定義文の読込み回数を従来
方式に比し大−幅に減少できるので、言語翻訳を著しく
高速化することが出来る。例えば、システム・ジェネレ
ーシ曹ンでの制御表展開等(同じマクロが連続してコー
ルされる確率が非常に高い)の場合には、言語処理時間
が数十分の−に短縮される。 4、図面の簡単な説明 第1図は言語翻訳システムの構成を示す図、第2図はソ
ース・プpグラ人の1例を示す図、第3図はマクロ展開
処理部での処理を示すフローチャートである。 l・・・入力ファイル、2・・・出力ファイル、3・・
・コンパイラ−74・・・マクロ・ライブラリ、■・・
・コンパイラ作業領域。 代理人弁理士  京 谷 四 部

Claims (1)

    【特許請求の範囲】
  1. マクロ自コール文YttrンースΦプログラム典゛式の
    ユーザ・プログラムが格納された入力ファイルと、コン
    パイラと、マクロ・ライブラリと、出力ファイルと、主
    メモリ上に確保された上記コンパイラのための作業領域
    とを有し、上記コンパイラか上記ユーザ・プログラムの
    マクロ命令を展開して上記出力ファイルに出力するため
    に、上記マクロ・ライブラリから該当するマクロ定義文
    を上記作業領域に読込み、作業領域のマクロ定義文を用
    いて一クロ展開を行うように構成されたコンパイラ・シ
    ステムにおいて、上記コンパイラは、上記入力ファイル
    からマクロ・コール文を読込んだとt1上記作業領域に
    蚊娼するマクロ定義文があるか否かを調べ、存在する場
    合には轟#iクロ定義文を用いてマクロ!開を行い、存
    在しない場合には上記マクロ・ライブラリから該当する
    マクロ定義文を上記作業領域に読込んでマクロ展開1行
    うと共に当該マクロ定義文を作業領域上に保留させるこ
    とt特徴とする言語翻訳時のマクロ展開方式0
JP12121181A 1981-07-31 1981-07-31 言語翻訳時のマクロ展開方式 Pending JPS5822453A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12121181A JPS5822453A (ja) 1981-07-31 1981-07-31 言語翻訳時のマクロ展開方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12121181A JPS5822453A (ja) 1981-07-31 1981-07-31 言語翻訳時のマクロ展開方式

Publications (1)

Publication Number Publication Date
JPS5822453A true JPS5822453A (ja) 1983-02-09

Family

ID=14805622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12121181A Pending JPS5822453A (ja) 1981-07-31 1981-07-31 言語翻訳時のマクロ展開方式

Country Status (1)

Country Link
JP (1) JPS5822453A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59183435A (ja) * 1983-03-31 1984-10-18 Fujitsu Ltd ユニツト処理方式
US5414855A (en) * 1992-08-12 1995-05-09 International Business Machines Corporation Language compiler

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59183435A (ja) * 1983-03-31 1984-10-18 Fujitsu Ltd ユニツト処理方式
JPH0368417B2 (ja) * 1983-03-31 1991-10-28 Fujitsu Ltd
US5414855A (en) * 1992-08-12 1995-05-09 International Business Machines Corporation Language compiler

Similar Documents

Publication Publication Date Title
JPS5622300A (en) Memory check method
JPS5822453A (ja) 言語翻訳時のマクロ展開方式
JPS63115236A (ja) オブジエクト選択方式
JPS58151677A (ja) 翻訳文編集方法
JP2848609B2 (ja) 論理回路変換方法及び装置
JPS6075936A (ja) 簡易パツチキヤンセル方式
JPS61112243A (ja) プログラム縮小装置
JPH064167A (ja) ディスク媒体障害の復旧方式
JPH05274224A (ja) 動的アドレス変換機構
JPH0359726A (ja) プログラム単位一括翻訳方式
JPS5725063A (en) Input data editing system
Akimoto et al. A general dimensional neutron diffusion calculation code: ADC
JPH0391004A (ja) プログラマブル・コントローラ用開発支援装置
JPH05120334A (ja) 機械翻訳装置
JPS6167143A (ja) プログラムにおけるデ−タ文変換処理方式
JPH04102125A (ja) アセンブラのシンボル処理方式
JPS62190551A (ja) ワ−ドプロセツサ
JPH02105224A (ja) コンパイラにおけるデータ割付け方式
JP2002169695A (ja) プログラム変換装置及び仮想マシン
JPS6039245A (ja) 情報処理装置
JPS6367638A (ja) オブジエクト指向言語におけるオブジエクトの構成方法
JPH0578057B2 (ja)
JPS63257038A (ja) 原始プログラム変換における対応識別情報付加方式
JPS5854450A (ja) テキスト多重組み込み処理方式
JPH04148480A (ja) Cadデータの作図方式