JPH02161531A - 共通ブロック統合化方式 - Google Patents

共通ブロック統合化方式

Info

Publication number
JPH02161531A
JPH02161531A JP63315705A JP31570588A JPH02161531A JP H02161531 A JPH02161531 A JP H02161531A JP 63315705 A JP63315705 A JP 63315705A JP 31570588 A JP31570588 A JP 31570588A JP H02161531 A JPH02161531 A JP H02161531A
Authority
JP
Japan
Prior art keywords
program
text
common block
common
information
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
JP63315705A
Other languages
English (en)
Inventor
Ryoji Nemoto
根元 亮治
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63315705A priority Critical patent/JPH02161531A/ja
Publication of JPH02161531A publication Critical patent/JPH02161531A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は共通ブロック統合化方式に関し、特に高級言語
のコンパイラにより生成される目的プロダラムの実行時
における効率の改善を行うために複数のプログラム単位
間で参照される複数の共通の記憶域を一つの連続した領
域に統合化する共通ブロック統合化方式に関する。
(従来の技術) 記憶域のアドレスを記憶域を参照するためのベースアド
レスとベースアドレスからの変位との組合わせにより表
現しベースアドレスを有限個のベースレジスタの内の一
つに予めロードしてベースレジスタの番号とベースアド
レスからの変位とを指定することにより記憶域の参照を
行う計算機システムにおいては、コンパイラは、複数の
共通ブロックを宣言する複数のプログラム単位を目的プ
ログラムに翻訳する場合に、翻訳対象の複数のプログラ
ム単位中で宣言されている複数の共通ブロックのそれぞ
れに対して別々のベースアドレスを割り当てて複数の共
通ブロックが参照されるように目的プログラムを生成し
ている。
例えば、第2図に示すように、高級言語であるFORT
RAN言語で記述された複数の名前付き共通ブロックU
l、U2.U3を宣言している複数のグロダラムlit
位PR0,1,PR0,2およびPRo、3を翻訳して
得られる目的グロダラムにおいては、例えば第4図に示
すように、共通ブロックUl、U2およびU3は記憶域
上である距離G1およびG2だけ隔たった3つの領域に
分離されて構成されるようになっている。ここで、共通
ブロックUl、U2およびU3の先頭のベースアドレス
を、例えばベースアドレスA1.A2およびA3とする
と、コンパイラは共通ブロックU1およびU2間の距離
G1および共通ブロックU2およびU3間の距離G2を
認識できないので、共通ブロックU2およびU3をベー
スアドレスA1からの変位のみでは参照することは出来
ない。
このため、目的プログラムでは、共通ブロックU1.U
2およびU3のそれぞれを参照するために共通ブロック
IJI、U2およびU3の先頭にベースアドレスAI、
A2およびA3をそれぞれ割り当てて、それらのベース
アドレスを、例えばベースレジスタ81.B2およびB
3にそれぞれロードする命令を実行した後に、ベースレ
ジスタBl、B2およびB3にベースアドレスAI。
A2およびA3からの変位をそれぞれ加えることによっ
て共通ブロックtJ1.tJ2およびU3の参照を行う
必要があった。
また、共通ブロックUl、U2およびU3毎に参照のた
めのベースレジスタBl、B2およびB3が必要になる
ので、特に使用することが可能なベースレジスタの個数
が少ない計算機システムにおいては、ベースレジスタを
共通ブロックの参照と池の記憶域の参照との間で兼用し
て使用する必要が生じる場合が多くなり、このような場
合には必要に応じて他の記憶域の参照のための使用前に
共通ブロックを参照を行うためのベースレジスタの内容
を一旦待避させ、使用後に待避させた内容をベースレジ
スタに再び復元させる命令列を目的プログラムに実行さ
せる必要があった。
(発明が解決しようとする課題) 上述した従来の高級言語プログラムの翻訳処理方式では
、目的プログラムにおいて複数プログラム単位で宣言さ
れている複数の共通ブロック毎にそれらの共通ブロック
を参照するために使用されるベースレジスタが必要であ
ったので、複数の共通ブロックを宣言する複数のプログ
ラム単位を翻訳して得られた目的プログラムには実行時
に共通ブロックを参照するために使用されるすべてのベ
ースレジスタの内容を定義する命令列が必要になるとい
う欠点がある。
また使用することが可能なベースレジスタの個数が少な
い計算機システムにおいては、ベースレジスタを共通ブ
ロックの参照と他の記憶域の参照との間で兼用して使用
することになるので、必要に応じてそのベースレジスタ
の内容の待避および復元を行う命令列が更に必要になり
、目的プログラムの実行時の効率を少なからず悪いもの
にしてしまうという欠点がある。
本発明の目的は、上述の点に雪み、コンパイラにおいて
複数のプログラム単位中で宣言されている複数の共通ブ
ロックの宣言を認識し、それら複数の共通ブロックが目
的プログラムにおいて一つの連続した領域に統合される
ようにテキストを変形することにより、生成された目的
プログラムの実行時の効率を高いものにすることを目的
とした共通ブロック統合化方式を提供することにある。
(課題を解決するための手段) 本発明の共通ブロック統合化方式では、記憶域のアドレ
スをその記憶域を参照するためのベースアドレスとベー
スアドレスからの変位との組合せにより表現しベースア
ドレスを有限個のベースレジスタのうちの一つにあらか
じめロードしてベースレジスタの番号とベースアドレス
からの変位とを指定することにより記憶域の参照を行う
計算機システムにおける高級言語プログラムの翻訳を行
うコンパイラにおいて、 複数の共通ブロックを宣言する複数のプログラム単位を
入力するプログラム単位入力手段と、このプログラム単
位入力手段によって入力された複数のプログラム単位を
構文解析してテキスト群を生成するテキスト生成手段と
、 前記テキスト群から複数のプログラム単位で宣言された
複数の共通ブロックのテキス1〜を認識し、統合化に必
要な情報を抽出する共通ブロック認識手段と、 前記共通ブロック認識手段によって得られた複数の共通
ブロックの情報を保持する共通ブロック情報保持手段と
、 前記共通ブロック情報保持手段によって保持された情報
を基にして複数の共通ブロックを一つの連続した領域に
統合化し、共通ブロックのテキストを変形する共通ブロ
ック統合化手段と、前記テキストにより、共通ブロック
が統合化された目的プログラムを生成する目的プログラ
ム生成手段とを有する (作用) 本発明の共通ブロック統合化方式では、プログラム単位
入力手段が複数の共通ブロックを宣言する複数のプログ
ラム単位を入力し、テキスト生成手段がプログラム単位
入力手段によって入力された複数のプログラム単位を構
文解析してテキスト群を生成し、共通ブロック認識手段
が前記テキスト群から複数のプログラム単位で宣言され
た複数の共通ブロックのテキストを認識して、統合化に
必要な情報を抽出し、共通ブロック情報保持手段が前記
認識手段によって得られた複数の共通ブロックの情報を
保持し、共通ブロック統合化手段が前記共通ブロック情
報保持手段によって保持された情報を基にして複数の共
通ブロックを一つの連続した領域に統合化し、共通ブロ
ックのテキストを変形し、目的プログラム生成手段が前
記テキストにより、共通ブロックが統合化された目的プ
ログラムを生成する。
(実施例) 次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例の共通ブロック統合化方式
の構成を示すブロック図である9本実施例の共通ブロッ
ク統合化方式は、複数のプログラム単位からなるソース
プログラム1と、ソースプログラム1を入力して翻訳す
るコンパイラ2と、コンパイラ2から出力される複数の
コンパイルユニット3とから、その主要部が構成されて
いる。
コンパイラ2は、ソースプログラム1を入力するプログ
ラム単位入力手段21と、このプログラム単位入力手段
21によって入力されたソースプログラム1の複数のプ
ログラム単位を構文解析してテキスト群を生成するテキ
スト生成手段22と、ソースプログラム1の複数のプロ
グラム単位中の共通ブロックの宣言を認識する共通ブロ
ック認識手段23と、共通ブロック認識手段23によっ
て得られた複数の共通ブロックの情報を保持する共通ブ
ロック情報保持手段24と、共通ブロック情報保持手段
24によって保持された情報を基にして複数の共通ブロ
ックが一つの連続した領域に統合化されるように共通ブ
ロックのテキストを変形する共通ブロック統合化手段2
5と、共通ブロック統合化手段25によって変形された
テキストにより、共通ブロックが統合化された目的プロ
グラムを生成する目的プログラム生成手段26とを含ん
で構成されている。
次に、このように構成された本実施例のプログラム統合
化方式の動作について第2図〜第8図を参照しながら具
体的に説明する。
コンパイラ2が起動されると、まずプログラム単位入力
手段21は、例えば第2図に示すようなFORTRAN
言語で記述され複数の名前付き共通ブロックUl、U2
.およびU3を宣言している複数のプログラム単位PR
0,1,PR0,2およびPRo、3からなるソースプ
ログラム1を取り込み、デキスト生成手段22に渡す。
次に、テキスト生成手段22は、プログラム単位入力手
段21から渡されたソースプログラム1を構文解析し、
テキスト群を生成する。このテキストは、第6図に示す
ように、一つの共通ブロックに対してその共通ブロック
そのものに関する情報を含む部分と、その共通ブロック
に含まれる変数に関する情報を含む部分が連結されたよ
うな形式で構成され、それぞれの共通ブロック、変数の
名前、大きさ、ベースアドレスからの変位等の情報が含
まれている。
続いて、共通ブロック認識手段23は、テキスト生成手
段22の生成したテキスト群を入力して共通ブロックの
テキストを認識して統合化に必要な情報を抽出し、共通
ブロック情報保持手段24へ出力する。この情報は、第
7図に示すような形式になっており、それぞれのプログ
ラム単位で宣言されているすべての共通ブロックと、そ
れに含まれているすべての変数に関する情報を含んでい
る。
次に、共通ブロック統合化手段25は、共通ブロック情
報保持手段24に保持された情報を基にして、宣言され
ている共通ブロックU1.U2およびU3が第5図に示
すよな一つの連続した領域である共通ブロックUに統合
化されるようにテキストを変形する。変形されたテキス
トは第8図のように共通ブロックtJ1.U2およびU
3に対応したテキストに含まれていた変数に関する情報
が連結されたような形式に構成されており、それぞれの
変数の情報の内、ベースアドレスからの変位は統合化さ
れた共通ブロックUのベースアドレスA1からの変位に
変更されている。ここで、※印はこの情報に対応する変
数がそのプログラム単位では参照されていないことを示
す。
なお、第8図の変形されたテキストは第3図に示すよう
なソースプログラムが入力されたときにテキスト生成手
段22によって生成されるテキストと等価なものになる
次に、目的プログラム生成手段26は、上記のように変
形されたテキストに基づいて、第5図に示すように、共
通ブロックUl、U2およびU3の一つの連続した領域
である共通ブロックUの先頭にベースアドレスA1だけ
を割り当て、このベースアドレスA1をベースレジスタ
B1にロードし、第8図の変形されたテキストに示され
ているベースアドレスA1からの変位によって変数の参
照を行うような命令を生成し、複数のコンパイルユニッ
ト3を出力する。
このように高級言語プログラムの翻訳処理に本実施例の
共通ブロック統合化方式を適用すれば、例えば第2図に
示すソースプログラム1の複数のプログラム単位PR0
,1,PR0,2およびPRo、3中の共通ブロックU
1.U2およびU3は、目的プログラムにおいて第5図
に示すような一つの連続した領域でなる共通ブロックU
となるように構成される。このため、共通ブロックUl
、LJ2およびU3が連続しているので、共通ブロック
Uの先頭にベースアドレスA1だけを割り当ててベース
レジスタB1にロードした後にベースアドレスA1から
の変位を加えれば、共通ブロックU1ばかりでなく共通
ブロックU2およびU3も参照できるようになる。
(発明の効果) 以上に説明したように、本発明では複数の共通ブロック
を宣言する複数のプログラム単位を翻訳する際に、複数
のプログラム単位中で宣言されている複数の共通ブロッ
クが一つの連続した領域に統合化されるようにコンパイ
ラの内部でテキストの変形を行うことにより、共通ブロ
ックの参照に必要なベースレジスタの個数を節約してベ
ースレジスタの内容の定義を行う命令列を減らし、目的
プログラムの実行時の効率を高めることができるという
効果がある。
また、生成される目的プログラムにおいて他の記憶域の
参照に使用できるベースレジスタの個数を増やし、特に
使用することが可能なベースレジスタの個数が少ない計
算機システムにおいては、ベースレジスタを共通ブロッ
クの参照と他の記憶域の参照との間で兼用して使用する
ことによって生じることのあるベースレジスタの内容の
待避および復元を不要にして、生成した目的プログラム
の実行時の効率を高めることができるという効果がある
【図面の簡単な説明】
第1図は本発明の一実施例の共通ブロック統合化方式の
構成を示すブロック図、 第2図は第1図中のソースプログラムの複数の共通ブロ
ックを宣言する複数のプログラム単位の一例を示す図、 第3図は第1図中の共通ブロック統合化手段によって変
形されたテキストがテキスト生成手段22によって直接
に生成されるような、入力ソースプログラムの例を示す
図、 第4図は第2図に示したソースプログラムをコンパイラ
が共通ブロックの統合化を行わずに出力する目的プログ
ラムにおける共通ブロックの配置を例示する図、 第5図は統合化により変形したテキストによって生成さ
れる目的プログラムにおける共通ブロックの配置を示す
図、 第6図は統合化を行う前のテキストを例示する図、 第7図は共通ブロック認識手段23によって出力される
情報を例示する図、 第8図は統合化が行われ、変形されたテキストを例示す
る図である。 1・・・ソースプログラム、2・・・コンパイラ、21
・・・ソースプログラム入力手段、22・・・テキスト
生成手段、23・・・共通ブロック認識手段、24・・
・共通ブロック情報保持手段、25・・・共通ブロック
統合化手段、26・・・目的プログラム生成手段、3・
・・複数のコンパイルユニット、AI、A2.A3・・
・ベースアドレス、Bl、B2.B3・・・ベースレジ
スタ、Ul、U2.U3.U・・・名前付き共通ブロッ
ク、A、B、C,D、E、F、G、H・・・名前付き共
通ブロックに含まれる変数、PRo、1゜PRo、2.
PRo、3・・・プログラム単位。 2 コンパイラ

Claims (1)

  1. 【特許請求の範囲】 記憶域のアドレスをその記憶域を参照するためのベース
    アドレスとベースアドレスからの変位との組合せにより
    表現しベースアドレスを有限個のベースレジスタのうち
    の一つにあらかじめロードしてベースレジスタの番号と
    ベースアドレスからの変位とを指定することにより記憶
    域の参照を行う計算機システムにおける高級言語プログ
    ラムの翻訳を行うコンパイラにおいて、 複数の共通ブロックを宣言する複数のプログラム単位を
    入力するプログラム単位入力手段と、このプログラム単
    位入力手段によって入力された複数のプログラム単位を
    構文解析してテキスト群を生成するテキスト生成手段と
    、 前記テキスト群から複数のプログラム単位で宣言された
    複数の共通ブロックのテキストを認識し、統合化に必要
    な情報を抽出する共通ブロック認識手段と、 前記共通ブロック認識手段によって得られた複数の共通
    ブロックの情報を保持する共通ブロック情報保持手段と
    、 前記共通ブロック情報保持手段によって保持された情報
    を基にして複数の共通ブロックを一つの連続した領域に
    統合化し、共通ブロックのテキストを変形する共通ブロ
    ック統合化手段と、 前記テキストにより、共通ブロックが統合化された目的
    プログラムを生成する目的プログラム生成手段と、 を有することを特徴とする共通ブロック統合化方式。
JP63315705A 1988-12-14 1988-12-14 共通ブロック統合化方式 Pending JPH02161531A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63315705A JPH02161531A (ja) 1988-12-14 1988-12-14 共通ブロック統合化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63315705A JPH02161531A (ja) 1988-12-14 1988-12-14 共通ブロック統合化方式

Publications (1)

Publication Number Publication Date
JPH02161531A true JPH02161531A (ja) 1990-06-21

Family

ID=18068553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63315705A Pending JPH02161531A (ja) 1988-12-14 1988-12-14 共通ブロック統合化方式

Country Status (1)

Country Link
JP (1) JPH02161531A (ja)

Similar Documents

Publication Publication Date Title
JP5118745B2 (ja) メモリアクセス命令のベクトル化
Nelson A comparison of PASCAL intermediate languages
JPH07319710A (ja) コンパイル処理方法
JPH02161531A (ja) 共通ブロック統合化方式
Hannan et al. Higher-order arity raising
Ershov Problems in many-language systems
JPH03135630A (ja) 命令スケジューリング方式
JP2539070B2 (ja) コンパイラ処理装置
JP2786689B2 (ja) コンパイラ処理方法
JPS6365530A (ja) コ−ド最適化方式
JPS63298530A (ja) 共通ブロック統合化方式
JP2754866B2 (ja) データ駆動形計算機用オブジエクトコード生成装置
JP2764358B2 (ja) データ駆動型情報処理装置
JPH02130637A (ja) ソースコード翻訳方式
HK40028942A (en) Neural network model computing chip, method and apparatus, device and medium
HK40028942B (en) Neural network model computing chip, method and apparatus, device and medium
JPH01280833A (ja) 共通ブロック割り付け方式
JPS63257038A (ja) 原始プログラム変換における対応識別情報付加方式
JPH03257579A (ja) コンパイラの並列化方式
JPH07129408A (ja) 言語処理プログラムの実行方式
Brezány et al. Code generation for a data parallel SIMD language
Minow Random generation of sentences from context free and context sensitive phrase structure grammars Report No. 215.
JPH0390931A (ja) Rom化プログラムの生成方法
JPH0373026A (ja) コンパイル方式
JPH04243429A (ja) コンパイラ