JPH023831A - 複数ソースプログラム言語処理方式 - Google Patents

複数ソースプログラム言語処理方式

Info

Publication number
JPH023831A
JPH023831A JP14933188A JP14933188A JPH023831A JP H023831 A JPH023831 A JP H023831A JP 14933188 A JP14933188 A JP 14933188A JP 14933188 A JP14933188 A JP 14933188A JP H023831 A JPH023831 A JP H023831A
Authority
JP
Japan
Prior art keywords
pass
path
program
language processing
programs
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
JP14933188A
Other languages
English (en)
Inventor
Hiroshi Oyama
大山 博
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 JP14933188A priority Critical patent/JPH023831A/ja
Publication of JPH023831A publication Critical patent/JPH023831A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は複数ソースプログラム言語処理方式に関し、特
に計算機のソフトウェアの言語処理系についての複数ソ
ースプログラム言語処理方式に関する。
〔従来の技術〕
従来、ソースプログラム(言語処理系がコンパイラであ
る場合の高水準プログラミング言語により記述されたプ
ログラム、アセンブラである場合のアセンブラ言語によ
り記述されたプログラムおよびトランスレータである場
合の高水準プログラミング言語により記述されたプログ
ラム等)を入力としてとりそのソースプログラムを翻訳
してそのソースプログラムと等価な(意味構造が同一の
)中間情報を出力するパス1手段、パス1手段により出
力された中間情報を人力としてとりその中間情報を変換
してオブジェクトプログラム(言語処理系がコンパイラ
である場合の機械語やアセンブラ言語により記述された
プログラム、アセンブラである場合の機械語により記述
されたプログラムおよびトランスレータである場合のソ
ースプログラムを記述する高水準プログラミング言語以
外の高水準プログラミング言語により記述されたプログ
ラム等)を出力するパス2手段ならびにパス1手段のプ
ロセスおよびパス2手段のプロ、セスの実行を制御する
制御手段を含んで構成され複数のソースプログラムの言
語処理を行う複数ソースプログラム言語処理方式では、
以下に示すような処理が行われていた。
最初に、制御手段が起動されると、制御手段はパス1手
段に制御を移す。
パス1手段は、ソースプログラムを中間情報に翻訳する
中間情報が出力されてパス1手段の処理が終了すると、
パス1手段は制御手段に制御を戻す。
制御手段は、さらにパス2手段に制御を移し、上述のソ
ースプログラムに関するパス2手段の実行を開始させる
パス2手段は、パス1手段によって出力された中間情報
を人力し、その中間情報をオブジェクトプログラムに変
換し、そのオブジェクトプログラムを出力した後に制御
手段に制御を戻す。
制御手段は、次に処理すべきソースプログラムが存在す
るか否かを判断する。
この判断で次に処理すべきソースプログラムが存在する
場合には、そのソースプログラムに関して上述と同様な
処理が繰り返される(まず、制御手段が再びパス1手段
に制御を移す)。
上述の判断で次に処理すべきソースプログラムが存在し
なくなって複数のソースプログラムの言′語処理におい
て必要な全ての処理が完了した場合には、制御手段は自
分自身の実行(この複数ソースプログラム言語処理方式
の実行)を終了する。
第3図は、上述の従来の複数ソースプログラム言語処理
方式によりn(正整数)個のソースプログラム(プログ
ラムl’、2’、3’、・・・、  (n−1)’、n
’)を処理する場合のプロセス(パス1手段のプロセス
であるプロセスAl’、A2 ’、  A3 ’、 −
、A (n−1)  ’、  An ’およびパス2手
段のプロセスであるプロセスBl’B2’   B3’
、−、B  (n−1)  ’、Bn’)の実行状態(
時系列tに基づく実行状態)の−例を示す図である。
このように、従来の複数ソースプログラム言語処理方式
は、制御手段、パス1手段およびパス2手段の3手段の
間の制御を順次遷移していくことにより(したがって、
パス1手段とパス2手段とが同時に動作することはない
)、複数のソースプログラムを複数のオブジェクトプロ
グラムに翻訳し変換していた。
〔発明が解決しようとする課題〕
上述した従来の複数ソースプログラム言語処理方式では
、複数のソースプログラムの言語処理を行う際にパス1
手段とパス2手段とを同時に動作させることができない
ので、言語処理における処理時間に無駄が生じ、特に処
理対象のソースプログラムの数が増加すると処理時間が
長大になるという欠点がある。
例えば、第3図に示す処理においては、まず最初のソー
スプロゲラ4(プログラム1’)をパス1手段のプロセ
スAt’により中間情報に翻訳して次にパス2手段のプ
ロセスBl’により中間情報をオブジェクトプログラム
に変換しプログラム1′に関する全体の処理が完了する
。その後に、2番目のソースプログラム(プログラム2
′)のパス1手段のプロセスA2’による翻訳処理が行
われる(さらに、パス1手段のプロセスA2’による翻
訳処理およびパス2手段のプロセスB2’による変換処
理が行われた後に3番目のソースプログラム(プログラ
ム3′)のパス1手段のプロセスA3’による翻訳処理
が開始される)。
したがって、2番目以後のソースプログラムはパス1手
段およびパス2手段による直前のソースプログラムに関
する全体の処理が完了するまで自分自身についての処理
を待たなければならず、その間においては常にパス1手
段とパス2手段とのどちらか片方だけが動作中でありも
う一方は何もせずに処理を中断しているという状態が続
くことになり、言語処理の処理時間に大きな無駄が生じ
ることになる(ソースプログラムの数nが増加すると処
理時間が非常に長くなる)。
本発明の目的は、上述の点に鑑み、複数のソースプログ
ラムに関する全体の言語処理の処理時間を短縮すること
ができる複数ソースプログラム言語処理方式を提供する
ことにある。
〔課題を解決するための手段〕
本発明の複数ソースプログラム言語処理方式は、ソース
プログラムを入力としてとり中間情報を出力するパス1
手段と、このパス1手段により出力された中間情報を入
力としてとりオブジェクトプログラムを出力するパス2
手段と、同一のソースプログラムに関する前記パス1手
段のプロセスと前記パス2手段のプロセスとの間の実行
順序の同期をとり異なるソースプログラムに関する前記
パス1手段のプロセスと前記パス2手段のプロセスとを
互いに独立に並列実行させる同期手段を含み前記パス1
手段のプロセスおよび前記パス2手段のプロセスの実行
を制御する制御手段とを存する。
〔作用〕
本発明の複数ソースプログラム言語処理方式では、パス
1手段がソースプログラムを入力としてとり中間情報を
出力し、パス2手段がパス1手段により出力された中間
情報を入力としてとりオブジェクトプログラムを出力し
、制御手段が同一のソースプログラムに関するパス1手
段のプロセスとパス2手段のプロセスとの間の実行順序
の同期をとり異なるソースプログラムに関するパス1手
段のプロセスとパス2手段のプロセスとを互いに独立に
並列実行させる同期手段を含みパス1手段のプロセスお
よびパス2手段のプロセスの実行を制御する。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は、本発明の複数ソースプログラム言語処理方式
の一実施例の構成を示すブロック図である0本実施例の
複数ソースプログラム言語処理方式は、制御手段lと、
パス1手段2と、パス2手段3と、ソースプログラム4
と、中間情報5と、オブジェクトプログラム6とを含ん
で構成されている。
制御手段1は、同期手段11を含んでおり、パス1手段
2のプロセスおよびパス2手段3のプロセスの実行を同
期手段11により制御する。
同期手段11は、処理すべきソースプログラム4をパス
1手段2に入力として与え、処理すべき中間情報5をパ
ス2手段3に入力として与え、同一のソースプログラム
4に関するパス1手段2のプロセスとパス2手段3のプ
ロセスとの間の実行順序の同期をとり異なるソースプロ
グラム4に関するパス1手段2のプロセスとパス2手段
3のプロセスとを互いに独立に並列実行させる。
パス1手段2は、ソースプログラム4を同期手段11に
より入力として与えられると、翻訳を行いソースプログ
ラム4と等価な中間情報5を出力する。
パス2手段3は、パス1手段2が出力した中間情報5を
同期手段11により入力として与えられると、変換を行
いオブジェクトプログラム6を出力する。
第2図は、本実施例の複数ソースプログラム言語処理方
式によりn個のソースプログラム(プログラム1,2,
3.・・・、(n−1)、n)を処理する場合のプロセ
ス(パス1手段のプロセスであるプロセスAI、A2.
A3. ・・、A (n−1)Anおよびパス2手段の
プロセスであるプロセスBl、 B2. B3.−、 
B (n−1) 、 Bn)の実行状態(時系列tに基
づ(実行状態)の−例を示す図である。
次に、このように構成された本実施例の複数ソースプロ
グラム言語処理方式の動作について説明する。なお、こ
こでは第2図に示すプログラム12.3.・・・、(n
−1)、nの言語処理が行われる場合の動作について説
明する。
この場合には、まず制御手段lがプログラム1(最初の
ソースプログラム4)をパス1手段2に入力として与え
る。
この入力に基づくプロセスAt(プログラム1に関して
パス1手段2が翻訳処理を行い中間情報5を出力するプ
ロセス)の実行が終了すると、制御手段1はプログラム
1の中間情報5をパス2手段3に入力として与えると同
時にプログラム2(2番目のソースプログラム4)をパ
ス1手段2に入力として与える。
制御手段1内の同期手段11は、プログラムlに関する
中間情報5の変換処理を行うパス2手段3のプロセスB
lおよびプログラム2の翻訳処理を行うパス1手段2の
プロセスA2を互いに独立に並列実行させる。
また、同期手段11は、同一のソースプログラム4(例
えば、プログラム1)に関するパス1手段2のプロセス
(例えば、プロセスAI)およびパス2手段3のプロセ
ス(例えば、プロセスBl)の実行順序の同期をとる制
御(例えば、プロセスAIの実行の後にプロセスBlの
実行を行わせる制御)を行う。
第2図に示す例では、プログラム2に関するパス1手段
2のプロセスA2よりもプログラム1に関するパス2手
段3のプロセスBlの方が先に実行を終了する。
プロセスB1の実行が終了する時点t1において、パス
2手段3が次に処理すべき中間情報5は存在しないので
、プロセスA2の実行が終了するまでパス2手段3は処
理を中断する(この中断は従来の複数ソースプログラム
言語処理方式における中断と比較すると短いものである
)。
プロセスA2の実行が終了すると、制御手段1(同期手
段11の処理が中心となる)はプロセスA2によって生
成されたプログラム2に関する中間情報5をパス2手段
3に入力として与えてプロセスB2の実行を開始させる
。同時に、パス1手段2にプログラム3(3番目のソー
スプログラム4)に関するプロセスA3の実行を開始さ
せる。
プロセスA3とプロセスB2との実行については、パス
1手段2のプロセスA3の方がパス2手段3のプロセス
B2よりも先に実行を終了する。
したがって、プロセスA3の実行が終了する時点t2に
おいてプロセスA3が生成したプログラム3についての
中間情報5に関するパス2手段3の処理は、プロセスB
2の実行が終了する時点t3まで処理待ちの状態になる
プロセスB2の実行が終了する時点t3において、パス
2手段3は制御手段1(同期手段11)の制御に基づい
てただちにプログラム3に関する中間情報5の処理を行
うプロセスB3の実行を開始する。
以後は、パス1手段2およびパス2手段3による上述の
ような処理が繰り返され、プログラムn(n番目(最後
)のソースプログラム4)の処理を行うパス1手段2の
プロセスAnの実行が終了する時点t4において次に処
理すべきソースプログラム4がもはや存在しないので、
パス1手段2の処理は完了する。
さらに、プロセスAnにより生成されたプログラムnに
関する中間情報5を処理するプロセスBnの実行が終了
すると、それまで次々に処理を行っていたパス2手段3
の処理は完了する。
パス2手段3のプロセスBnの実行が終了すると、制御
手段1は必要な後処理を実行した後に自分自身の実行(
本実施例の複数ソースプログラム言語処理方式の実行)
を終了する。
本実施例の複数ソースプログラム言語処理方式が適用さ
れる言語処理系としては、例えばコンパイラが存在する
適用される言語処理系がコンパイラの場合には、第1図
中の制御手段lはコンパイラ制御部となり、パス1手段
2は構文解析部となり、パス2手段3はコード生成部と
なり、ソースプログラム4は任意の高水準プログラミン
グ言語で記述されたプログラムとなり、オブジェクトプ
ログラム6は低水準プログラミング言語(例えば、アセ
ンブリ言語。
機械語等)で記述されたプログラムとなり、中間情報5
はソースプログラム4の記述言語や計算機の機種に依存
しない独立な中間言語コードによる情報となる。
本実施例の複数ソースプログラム言語処理方式が適用さ
れたコンパイラにより複数のソースプログラム4をコン
パイルする場合には、異なるソースプログラム4に関し
て構文解析部(パス1手段2)のプロセスとコード生成
部(パス2手段3)のプロセスとを互いに独立に並列実
行させること等により、全てのソースプログラム4のコ
ンパイル時間の総計を従来よりも短縮することが可能に
なる。
〔発明の効果〕
以上説明したように本発明は、複数のソースプログラム
の言語処理を行うにあたり、制御手段の内部の同期手段
によってパス1手段およびパス2手段の入力を指定し、
同一のソースプログラムに関するパス1手段のプロセス
とパス2手段のプロセスとの間の実行順序の同期をとり
、異なるソースプログラムに関するパス1手段のプロセ
スとパス2手段のプロセスとを互いに独立に並列実行さ
せることにより、複数のソースプログラムに関する全体
の言語処理の処理時間を大幅に短縮することができると
いう効果がある(この効果は処理対象のソースプログラ
ムの数が増加するほど顕著になる)。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中のパス1手段およびパス2手段のプロ
セスの実行状態の一例を示す図、第3図は従来の複数ソ
ースプログラム言語処理方式のパス1手段およびパス2
手段のプロセスの実行状態の一例を示す図である。 図において、 1・・・制御手段、 2・・・パス1手段、 3・・・パス2手段、 4・・・ソースプログラム、 5・・・中間情報、 6・・・オブジェクトプログラム、 11・・・同期手段である。

Claims (1)

  1. 【特許請求の範囲】 ソースプログラムを入力としてとり中間情報を出力する
    パス1手段と、 このパス1手段により出力された中間情報を入力として
    とりオブジェクトプログラムを出力するパス2手段と、 同一のソースプログラムに関する前記パス1手段のプロ
    セスと前記パス2手段のプロセスとの間の実行順序の同
    期をとり異なるソースプログラムに関する前記パス1手
    段のプロセスと前記パス2手段のプロセスとを互いに独
    立に並列実行させる同期手段を含み前記パス1手段のプ
    ロセスおよび前記パス2手段のプロセスの実行を制御す
    る制御手段と を有することを特徴とする複数ソースプログラム言語処
    理方式。
JP14933188A 1988-06-17 1988-06-17 複数ソースプログラム言語処理方式 Pending JPH023831A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14933188A JPH023831A (ja) 1988-06-17 1988-06-17 複数ソースプログラム言語処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14933188A JPH023831A (ja) 1988-06-17 1988-06-17 複数ソースプログラム言語処理方式

Publications (1)

Publication Number Publication Date
JPH023831A true JPH023831A (ja) 1990-01-09

Family

ID=15472773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14933188A Pending JPH023831A (ja) 1988-06-17 1988-06-17 複数ソースプログラム言語処理方式

Country Status (1)

Country Link
JP (1) JPH023831A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499642A (en) * 1992-01-22 1996-03-19 Japan Field Co., Ltd. Washing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499642A (en) * 1992-01-22 1996-03-19 Japan Field Co., Ltd. Washing apparatus

Similar Documents

Publication Publication Date Title
JP3032031B2 (ja) ループ最適化方法及び装置
JP2947356B2 (ja) 並列処理システム及び並列プロセッサの同期方法
US6751791B2 (en) Method of optimizing an MPI procedure by altering to a procedure other than the invoked MPI procedure portion or by altering the execution sequence
JPH023831A (ja) 複数ソースプログラム言語処理方式
JP3114884B2 (ja) ファジィ推論処理コンパイルシステム
JP2001255912A (ja) モーションプログラムの実行方法
KR970049508A (ko) 병렬 컴파일러 및 그 제어 병렬화 설계방법
JP2002041283A (ja) サブパイプライン変換構造、及びバイナリの互換性を持たせる方法
JP3628782B2 (ja) 並列分散処理システム
JPH03172958A (ja) 同期処理方法および並列処理システムおよび並列処理方法および並列化プログラム生成装置
JPS62182930A (ja) 機能分割型並列コンパイル方式
JPS61264440A (ja) コンパイル処理方式
JPH02236732A (ja) ソースプログラム作成方式
JPH04286030A (ja) 最適化方式
JPH0659933A (ja) コード変換装置
JPH01147624A (ja) 言語処理系システム
JP2682206B2 (ja) 目的プログラムの最適化方式
JPH03282826A (ja) 並列化翻訳方式
JPS6232557A (ja) 通信プロトコ−ル変換装置
JPH0314039A (ja) 命令変換単体テスト支援方式
JPH0254368A (ja) 機械翻訳における翻訳制御方式
JPH01211163A (ja) 並列計算機制御方式
JPH025131A (ja) 実行ユニット変更方式
JPH04264924A (ja) コンパイラ
JPS6074039A (ja) コンパイル言語認識処理方式