JPS60200340A - コンパイラ制御方式 - Google Patents

コンパイラ制御方式

Info

Publication number
JPS60200340A
JPS60200340A JP59055795A JP5579584A JPS60200340A JP S60200340 A JPS60200340 A JP S60200340A JP 59055795 A JP59055795 A JP 59055795A JP 5579584 A JP5579584 A JP 5579584A JP S60200340 A JPS60200340 A JP S60200340A
Authority
JP
Japan
Prior art keywords
information
analysis
output
partial
compiler
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
JP59055795A
Other languages
English (en)
Inventor
Fumio Sugimoto
杉本 文雄
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
Original Assignee
Fujitsu Ltd
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 filed Critical Fujitsu Ltd
Priority to JP59055795A priority Critical patent/JPS60200340A/ja
Publication of JPS60200340A publication Critical patent/JPS60200340A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明はコンパイラ制御方式に係り、特にソースプログ
ラムからオブジェクトを作成するコンパイラにおいて、
ソース修正時あるいは未完成プログラムに対して部分的
にコンパイルを実行することかできるようにしたもので
ある。
〔従来技術と問題点〕
言語コンパイラのフェーズ構成は、第1図に示す如く、
制御llフェーズ、構文解析フェーズ、文法解析フェー
ズ、翻訳フェーズ、出力フェーズ等の一連物理的構成を
もっている。したかってカードまたは磁気テープ等より
ソースプログラムを入力すると、制イIフェーズで情報
をコンパイラの作業域に中間言語の形成で各フェーズの
データテーブル情報とかりステング情報等の情報を保持
させ、各フェーズ毎走っていって最後に出カフニーズで
結果が得られる。あるいは途中の機械語変換フェース゛
で機↑成語に変換されオブジェクトとなってデータ処理
装置上にのるきいうような処理か行われる3、そして従
来はソースプログラムか入力されると1tjlJ御フエ
ーズから出カフニーズまで各フェーズか走行する。ただ
し構文解析フェーズ等でエラーが検出されると以降のフ
ェーズを走行させても意味かないので、出カフニーズに
バイパスされて中止する。
ところか初めてのプログラム経験の者の作成プログラム
ではエラーか多く存在し、コンパイラの全フェーズを走
行させるのは無駄か多いので構文解析フェーズまで走行
させて、畳き方の誤りの有無をチェックさせるという要
求がある。あるいは文法解析までチェックしてエラーの
有無を出力させるという要望もある。もしこのようなこ
とか可能になれば結果としてエラーリストも用紙1.2
牧柵度の少量ですむし、計Nd時間も少くてすみ、コン
パイラの全フェーズを走る必要かないにもかかわらず、
このような部分的な解析かできなかつた。
また従来ソースプログラムはまとまった形で最初から最
後まで流していたか、それを部分的にチェックすること
かできない。レリえば1回チェックして部分的に修正し
たプログラムをコンパイルするときでも従来は全ソース
プログラムをコンパイルしなければならなかったので、
修正部分のみの場合でも全部チェックしなければならな
かった。
〔発明の目的〕
本発明の目的は前記の如き問題点を改善するために、部
分的なフェーズでのチェックあるいは部分的なプログラ
ムをチェックできるようにしたコンパイラ制御方式を提
供することである。
〔発明の構成〕
段と、文法解析する文法解析手段と、機械語コードに変
換するコード生成処理手段を備えたコンパイラにおいて
、制御情報を識別する情報制御部と、プログラム全体の
解析であるか部分的プログラムの解析であるかに応じて
出力を切替える部分切替手段と、構文解析のみか文法解
析をも行うものかに応じて出力を切替える第1切替手段
と、文法解析までかそれ以降のコード生成をも行うもの
かに応じて出力を切替える第2切替手段を設け、制御情
報にもとづき前記1′S報制御部かこれらの各切替部を
選択制御してコンパイラを構文解析のみ行うのか、構文
解析と文法解析を行うのか、オブジェクトの生成まで行
うのか、あるいは部分的プロクラムの構文解析を行うの
か等を選択動作できるようにしたことを特徴とする。
〔発明の実施例〕
本発明を一実施例にもとづき詳述するに先立ち、その概
略を第2図により説明する。
本発明では、例えば制御カード1により部分カード(修
正時)指定か、全体カード(初回時)指定かを入力し、
また制御カード2にて、■構文解析のみチェック、■文
法解析までチェック、■従来通りのコンパイル等の希望
事項を入力する。コンパイラは制御フェーズにてこれら
の入力されたコンパイル制御情報を解読してこれらを保
持する。
そして部分的なソース・プログラムかソース・プログラ
ム全体かという指定区分にしたかって次の制御を行う。
■ 構文解析のみチェックする場合は構文解析フェーズ
を動作させて構文上の誤りをチェックしたのち他のフェ
ーズは経由せず、出力フェーズにこの構文解析結果を出
力させる。
■ 文法解析フェーズまでをチェックする場合は、構文
解析フェーズと文法解析フェーズを動作させて構文上の
誤りと文法上の誤りをチェックしたのち他のフェーズは
経由せず出力フェーズにこれらの構文解析結果と文法解
析結果を出力させる。
■ 従来通りチェックする場合は従来と同一の解析が行
われて各解析結果か出力される。
また部分的なソース・プログラム(すなわち部分修正)
のときは、部分修正分のカードのみをチェックする。
次に本発明の一実施例を第3図および第4図にもきづき
詳述する。
第3図は本発明の一笑施例構成図であり、第4図はその
動作説明用のフローチャートである。
図中、1は情報入力装置、2は情報制御部、3は部分コ
ンパイル切替器、4は部分構文解析処理部、5は構文解
析処理部、6は第1目的コンパイル切替器、7は文法解
析処理部、8は第2目的コンパイル切替、9は翻訳準備
処理部、10は翻訳処理部、11は最適化処理部、12
はコード生成処理部、13はレジスタ割当処理部、14
は編集処理部、15は出力処i!!!郡、16は情報出
力装置である。
情報入力装置1は例えばカードに記入されたデータを読
取るカード読取装置の如き、入力装置である。
情報制御部2は、前記制御カードにより入力されたコン
パイル制御情報を分析して、コンパイラの内部構成の各
部の処理起動を制御する各切替器への情報伝達を行うも
のである。コンパイル制御情報とし”Cは、次のものが
ありこれらにもとづきコンパイル・モードか与えられる
A1コンパイル対象情報 (イ) プログラム全体を対象とする(従来通り)。
(O) プログラムの1部分を対象とする。
B1 コンパイル目的情報(前記■〜■に相当)(イ)
構文上の正当性チェックのみ行う。
(ロ)文法上の正当性チェックオで行う。
(ハ) オブジェクトの生成まで行う(従来通り)。
部分コンパイル切替器3は前記制御情報のコンパイル・
モードに基づいて処理の流れを切替えるものであり、プ
ログラムの1部分を対象とするコンパイル、且つ構文上
の正当性チェックのみを行う場合にはbへ、それ以外は
αへ、各々処理か流れるように切替制御するものである
部分構文解析処理部4は、プログラムの1部分を対象と
するコンパイル、構文上の正当性チェックのみを行う場
合に起動されて、各プログラム上の文単位に構文チェッ
クを実施する。従来の構文解析処理部ではプログラム言
語の構成が必らず開始文、終了文の必要を伴うのに対し
て、この部分構文解析処理部4ではこのような開始文、
終了文かなくともエラーとはせずに、部分的な文の構成
のみで構文チェックを行うものである。
構文解析処理部5はプログラム開始文からプログラム終
了文に到る迄の一連のプログラム全体について、各文単
位に構文上の王宮性チェックを行う。
第1目的コンパイル切替a6は、制御情報のコンパイル
書モードに基づいて処理の流れを切替えるものであり、
構文上の正当性チェックのみを行う旨の場合はdへ、そ
れ以外はCへ、それぞれ処理が流れるように切替えるも
のである。
文法解析処理部7はプログラム開始文からプログラム終
了文に到る迄の一連のプログラム全体について、各文単
位に文法上の正当性チェックを行うものである。
第2目的コンパイル切替器8は、制御情報のコンパイル
・モードに基づいて処理の流れを切替えるものであり、
文法上の正当性のチェックまでを行う場合はfへ、それ
以外はeへ、それぞれ処理が流れるように切替える。
翻訳準備処理部9はコンパイラの中間言語の作成等を行
うものである。
翻訳処理部10はコンパイラ処理の中核であって、テー
ブル情報化、データの型変換等の処理を行うものである
最適化処理部11は、一般にコンパイル速度、実行速度
等のオブジェクト効率の向上のための処理を行うもので
ある。
コード生成処理部12は、使用するデータ処理装置の命
令に合わせて機械語コードへ変換する処理を行うもので
ある。
レジスタ割当処理部13は機械語コードに合わせて使用
レジスタの割当て等の処理を行うものである。
編集処理部14はリスティング情報の出力の為に必要な
出力フォーマット編集等の処理を行うものである。
出力処理部15は、ソースリストやエラーリスト等の各
種のりスティング情報の出力処理を行うものである。
情報出力装置16はりスティング情報を出力するもので
あって、例えばラインプリンタ装置で構成されている。
第3図で示した本発明の動作を第4図のフローチャート
を参照しつつ説明する。
(1) まず、コンパイラへ利用目的を伝えるため、制
御カード1,2を使用して前記Aのコンパイル対象情報
、Bのコンパイル目的情報を与える。1人、 力情報は
下記の通りである。
制御カード1(コンパイル対象情報) ■ 部分カード(修正時)指定 ■ 全体カード(初回時)指定 制御カード2(コンパイル目的情報) ■ 構文解析のみチェック希望((資)■ 文法解析ま
でチェック希望(ロ) ■ 従来通りのコンパイル希望(γ) (2) コンパイラに対する前記制御情報は情報入力装
置1で読取られ、この制御情報は情報制御部2で分析さ
れ、制御情報に応じて部分コン、N6イル切替器3、第
1目的コンパイル切替器6、第2目的コンパイル切替器
8等の動作切替制御信号を出力する等、起動すべきフェ
ーズ順位の振分けが行われる。
(3)いま新人の作成したプログラムを構文解析のみチ
ェックしたい場合は、制御カード1で全体カード指定を
行ない、制御カード2で構文解析のみチェック希望(ψ
を入力する。これにより情報制御部2は部分コンパイル
切替器3をα側に出力制御させ、第1目的コンパイル切
替器6をd側に出力制御させる。したかって作成された
プログラムは、情報入力装置1で読取られたあと情報制
御部2を経由して部分コンパイル切替器3より構文解析
処理部5に送出されてここで構文上の正当性かチェック
される。このとき第1目的コンパイル切替器6はd側に
出力するように制御されているので、前記構文解析処理
部5でのチェックのみで、そのチェック結果か出力処理
部15に伝達されて情報出力装置16からラインプリン
タ等で印字出力される。このときエラーかあればエラー
に対するメツセージか出力され、なければソース・リス
トのりスティングか出力される。
(4) また部分カードで修正したものを構文解析のみ
チェックしたいときには、制御カード1で部分カード指
定を行ない、制御カード2で構文解析のみチェック希望
(ψを入力する。これにより情報制御部2は部分コンパ
イル切替器3をb側に出力制御させる。したかって入力
された部分カードによる部分的プログラムは部分構文解
析処理部4にて構文上の正当性かチェックされ、その結
果が出力処理部15を経由して情報出力装置16から出
力される。このときエラーかあればエラーに対するメツ
セージが出力され、なければソース・リストのりスティ
ングが出力される。
(5) 文法解析までのチェック希望のときは制御カー
ド1で全体カード指定を行ない、制御カード2で文法解
析までチェック希望(ロ)を入力する。これにより情報
制御部2は部分コンパイル切替器3をa IIQ出力制
arl シ、第1目的コンパイル切替器6をC側出力制
御し、第2目的コンパイル切替器8をf側出力制御する
。したかって作成されたプログラムは、情報入力装置1
で読取られたあと情報制御部2および部分コンパイル切
替器3を経由して構文解析処理部5にて構文上の正当性
がチェックされる。それから第1目的コンパイル切替器
6を経由して文法解析処理部7にてその文法上の正当性
がチェックされ、第2目的コンパイル切替器8のf側を
経由して出力処理部】5に伝達される。
したがってこれら構文解析処理部5および文法解析処理
部7でエラーが検出されれば、エラーに対するメツセー
ジが出力され、なければソースリストのりスティングか
出力される。
(6)従来通りのコンパイル希望の場合には、制御カー
ド1で全体カード指定を行ない、制御カード2で従来通
りのコンパイル希望(γ)を入力する。これにより情報
制御部2は部分コンパイル切替器3をα側出力制御し、
第1目的コンパイル切替器6をC側出力制御し、第2目
的コンパイル切替器8をC側出力制御する。これにより
ソース・プログラムは、従来通り構文解析処理部5およ
び文法解析処理部7でチェックされて構文上の正当性お
よび文法上の正当性のチェックを受け、それから従来と
同様に翻訳準備処理部9等を経由して出力処理部15に
至り、エラーかあればエラーメツセージか情報出力装置
16から出力され、エラーかなければソース・リストの
りスティングが出力されることになる。
なお前記説明では入力データをカード入力した例につい
て説明したか、本発明は勿論これのみに限定されるもの
ではなく、例えば磁気テープ入力してもよい。
〔発明の効果〕
本発明によれば、プログラムのコンパイルを部分モード
及び全体モードの区別を与えて必らずしもプログラム全
体をコンパイル対象とはせず、さらにコンパイラ内部構
成がオブジェクト生成を目的としているがユーザの希望
によって、構文上あるいは文法上の正当性チェックのみ
に留めてコンパイラを中途まで実行させることかできる
この結果、本発明ではコンパイル時間の短縮が図れるこ
と、用途に応じてコンパイラを利用できること、出力ラ
インプリントリストの減少が図れる等の効果かある。
【図面の簡単な説明】
第1図は従来のコンパイラの説明図、第2図は本発明の
コンパイラの概略説明図、第3図は本発明の一実施例構
成図、第4図は本発明の動作説明用の概略フローチャー
トである。 第3図の図中、1は情報入力装置、2は情報制御部、3
は部分コンパイル切替器、4は部分構文解析処理部、5
は構文解析処理部、6は第1目的コンパイル切替器、7
は文法解析処理部、8は第2目的コンパイル切替、9は
翻訳準備処理部、10は翻訳処理部、11は最適化処理
部、12はコード生成処理部、13はレジスタ割当処理
部、14は編集処理部、15は出力処理部、16は情報
出力装置である。 特許出願人 富士通株式会社 代理人 弁理士 山 谷 晧 榮 −jrl 図 才 2 図 才 3 図 14 図

Claims (1)

    【特許請求の範囲】
  1. 入力されたプログラムを構文解析する構文解析手段と、
    文法解析する文法解析手段と、機械語コードに変換する
    コード生成処理手段を備えたコンパイラにおいて、制御
    情報を識別する情報制御部と、プログラム全体の解析で
    あるか部分的プログラムの解析であるかに応じて出力を
    切替える部分切替手段と、構文解析のみか文法解析をも
    行うものかに応じて出力を切替える第1切替手段と、文
    法解析までかそれ以降のコード生成をも行うものかに応
    じて出力を切替える第2切替手段を設け、制御1n報に
    もとづき前記情報制御部がこれらの各切替部を選択制御
    してコンパイラを構文解析のみ行うのか、構文解析と文
    法解析を行うのか、オブジェクトの生成まで行うのか、
    あるいは部分的プログラムの構文解析を行うのか等を選
    択動作できるようにしたことを特徴とするコンパイラ制
    御方式。
JP59055795A 1984-03-23 1984-03-23 コンパイラ制御方式 Pending JPS60200340A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59055795A JPS60200340A (ja) 1984-03-23 1984-03-23 コンパイラ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59055795A JPS60200340A (ja) 1984-03-23 1984-03-23 コンパイラ制御方式

Publications (1)

Publication Number Publication Date
JPS60200340A true JPS60200340A (ja) 1985-10-09

Family

ID=13008841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59055795A Pending JPS60200340A (ja) 1984-03-23 1984-03-23 コンパイラ制御方式

Country Status (1)

Country Link
JP (1) JPS60200340A (ja)

Similar Documents

Publication Publication Date Title
JPS62113244A (ja) プログラムテスト装置
JPS5922140A (ja) 対話型コンパイル方式
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JPH0317136B2 (ja)
JP3041919B2 (ja) プログラム結合処理装置
JPS58169637A (ja) コンパイル処理方式
JPH06242958A (ja) コンパイル方式
JPH02100732A (ja) プログラム文法チェック方式
JPH0283628A (ja) マルチタスクコンパイラ処理方式
JP2001014185A (ja) コンパイルおよびデバッグ方法
JPH0353334A (ja) 言語処理プログラムのデバッグ情報出力処理方式
JPS60217437A (ja) プログラムコンパイル方式
JPH03260830A (ja) プログラムデバッグ処理方式
Feriozi AC programming model for OS/2 device drivers
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH0358232A (ja) プリプロセッサ呼び出し方式
JPH02253443A (ja) プログラム生成方法
JPH01298444A (ja) プログラム実行制御方式
JPH06290052A (ja) 再コンパイル方式
JPH04209029A (ja) 並列処理プログラム翻訳処理装置
JPH05313909A (ja) 中間コードインライン展開機能を有するコンパイラシステム
JPH02207343A (ja) デバッグ装置
JPS63269229A (ja) 文字列操作系命令コンパイル処理方式
JPH056278A (ja) Fortranコンパイル処理装置
JPS5911448A (ja) 高級言語の構文チエツク方式