JPH0231236A - コンパイラ - Google Patents

コンパイラ

Info

Publication number
JPH0231236A
JPH0231236A JP63182708A JP18270888A JPH0231236A JP H0231236 A JPH0231236 A JP H0231236A JP 63182708 A JP63182708 A JP 63182708A JP 18270888 A JP18270888 A JP 18270888A JP H0231236 A JPH0231236 A JP H0231236A
Authority
JP
Japan
Prior art keywords
source program
list
compiler
analysis
program
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
JP63182708A
Other languages
English (en)
Inventor
Hiroshi Tomita
浩史 冨田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63182708A priority Critical patent/JPH0231236A/ja
Publication of JPH0231236A publication Critical patent/JPH0231236A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンパイラに関し、特に情報処理システムに
おけるプログラム言語のコンパイラに関する。
〔従来の技術〕
従来、コンパイラは、HITACプログラムプロダクト
vO83最適化PASCAL第131頁から第137頁
において述べられているように、コンパイルリストとし
て原始プログラムリストの他に、コンパイラが原始プロ
グラムを解析して判明したエラー情報やブロック・複合
文のネスト情報等の解析情報を出力するプログラムリス
ト出力処理を有している。
また、コンパイラには、プログラムリスト出力処理以外
に、原始プログラム解析処理と目的プログラム生成処理
が必須の処理であるが、原始プログラム解析処理につい
ては、文献:中田育男著「コンパイラ」、産業図書(1
985年)の第4章「字句解析」ならびに第5章「構文
解析」に、また目的プログラム生成処理については、同
じく第9章「目的プログラムの生成」において、詳しく
論じられている。
〔発明が解決しようとする課題〕
上記コンパイルリスト出力処理に関する従来技術は、ユ
ーザが作成した原始プログラムとコンパイラが出力した
コンパイルリストとが異なるファイルとして存在するた
め、原始プログラム中のエラーを修正する場合にコンパ
イルリスト内のエラーメツセージを参照しながら原始プ
ログラムを修正する必要がある、コンパイルリストには
コンパイラが解析情報を付加して解読や保守が行いやす
いにもかかわらず、コンパイルリストは直接コンパイラ
の原始プログラムとして用いることができないため、プ
ログラムの管理は解析情報の付加されていない原始プロ
グラムに対して行う必要がある、という課題があった。
本発明の目的は、このような従来の課題を解決し、コン
パイルリストも直接コンパイラ入力可能とし、デパック
の効率を向上させ、かつプログラム保守の簡素化を図れ
るコンパイラを提供することにある。
〔課題を解決するための手段〕
上記課題を解決するため1本発明のコンパイラは、入力
された原始プログラムを解析する原始プログラム解析処
理手段と、該解析した結果である解析情報をもとに目的
プログラムを生成する目的プログラム生成処理手段と、
原始プログラムに解析情報を付加してコンパイルリスト
として出力するコンパイルリスト出力処理手段とを有す
るコンパイラにおいて、入力されたコンパイルリストか
ら原始プログラムリストを抽出して原始プログラム解析
処理手段に渡す原始プログラム抽出処理手段を設け、該
抽出された原始プログラムを上記原始プログラム解析処
理手段に渡すことに特徴がある。
また1本発明のコンパイラは、上記コンパイルリストの
出力処理として、原始プログラムリストと解析情報とを
分離するための分離記号を付加して出力し、上記原始プ
ログラム抽出処理手段が、該分離記号をもとにして原始
プログラムリストを抽出することや、上記コンパイルリ
ストの出力処理として、原始プログラムリストと解析情
報とを各々定められた位置に出力し、上記原始プログラ
ム抽出処理手段が、原始プログラムリストが出力されて
いる位置の文字記号列を原始プログラムと判断して抽出
することに特徴がある。
さらに、上記コンパイルリストの出力処理として、解析
情報を出力する際に原始プログラムリストと解析情報と
を分離するための分離記号を付加して出力する場合と、
解析情報を出力する専用の位置に出力する場合とを使い
分けて出力し、上記原始プログラム抽出処理手段は、上
記分離記号をもとにして分離記号の付加された解析情報
以外の部分を抽出する処理と、解析情報を出力する専用
の位置に出力された解析情報を除いた部分を抽出する処
理とを並用して原始プログラムを抽出することにも特徴
がある。
上記抽出に際して、上記原始プログラム抽出処理手段は
、原始プログラム全体を抽出した後にと記原始プログラ
ム解析手段に渡す処理と、原始プログラムを部分的に抽
出して上記原始プログラム解析手段に渡す処理のうち、
いずれか一方を用いることに特徴がある。
〔作用〕
本発明においては、コンパイラにユーザが作成した原始
プログラムを入力した場合、コンパイラは入力が原始プ
ログラムだけから構成されていることを判断し、原始プ
ログラムを解析し、出力として原始プログラムリストに
エラー情報・解析情報を付加して出力する。コンパイラ
に、コンパイラが出力したコンパイルリスト、またはそ
のコンパイルリストをユーザが修正して入力した場合、
コンパイラは入力されたコンパイルリストの中から原始
プログラムリストとエラー情報・解析情報を分離して、
原始プログラムリストのみを解析対象として解析を行い
、その原始プログラムリストに新たなエラー情報・解析
情報を付加して出力する。このように、入力がエラー情
報・解析情報の付加されていない原始プログラムの場合
であっても、また、原始プログラムリストにエラー情報
・解析情報の付加されたコンパイルリストであっても、
コンパイラは原始プログラムの部分のみを解析対象とし
てコンパイルすることが可能となる。
〔実施例〕
以下、本発明の一実施例を1図面により詳細に説明する
本実施例は、プログラミング言語Pa5calのコンパ
イラであり、原始プログラムリストと、文番号、複合文
のネストレベルからなる解析情報と、原始プログラムに
文法誤りがあればそのエラー情報をコンパイルリストと
して出力する。本実施例においては、解析情報とエラー
情報は、記号「(嘲¥」と「¥嘲)」とで囲んで出力す
る規則を設ける。
第2図は、本発明を適用したコンパイラの入出力関係図
である。
コンパイラ13は、入力原始プログラム11を入力とし
、コンパイル結果として目的プログラム14とコンパイ
ルリスト12を出力する。
第3図は、入力原始プログラム11の例であり、プログ
ラミング言語Pa5calで書かれたものである。第4
図は、第3図に示した人力原始プログラム例をコンパイ
ルした時に、コンパイラ13が出力するコンパイルリス
トである。コンパイルリストは、原始プログラムリスト
121と、原始プログラムの解析情報122と、1M始
プログラムのエラー情報123から構成される。原始プ
ログラムの解析情報122と原始プログラムのエラー情
報123の各行の先頭には解析情報とエラー情報の先頭
を示す開始記号124が出力され、各行の終端には解析
情報とエラー情報の終端を示す終了記号125が出力さ
れている。エラー情報123は変数yの宣言がされてい
ないことを示している。
ここで、ユーザは、第4図に示したコンパイルリストを
修正して第5図に示した修正されたコンパイルリストを
作成することができる。第4図と第5図の差異は、第5
図4行目の部分126である。
第5図の修正されたコンパイルリストをコンパイルした
場合、コンパイラ13は、開始記号124と終了記号1
25とで囲まれた部分が解析情報122か、あるいはエ
ラー情報123であり、それ以外の部分が原始プログラ
ムリスト121であると判断して、原始プログラムリス
ト121のみをコンパイル対象としてコンパイルする。
第1図は、本発明の一実施例を示すコンパイラの構成図
である。これは、第2図におけるコンパイラ13のモジ
ュール関連を示している。
第1図において、131は入力されたコンパイルリスト
から原始プログラムリストを抽出して原始プログラム解
析部132に渡す原始プログラム抽出部、132は原始
プログラムの解析を行う原始プログラム解析部、133
は原始プログラムに解析情報を付加してコンパイルリス
トとして出力するコンパイルリスト出力部、134は解
析した結果である解析情報をもとに目的プログラムを生
成する目的プログラム生成部である。本実施例では、原
始プログラム解析部132と目的プログラム生成部13
4については、従来と同様であるので、詳細な説明は省
略することとし、原始プログラム解析部132の処理内
容は、前述した文献[コンパイラ」の第4章「字句解析
」および第5章「構文解析」を参照されたい。また、目
的プログラム生成部134の処理内容は、前述した文献
「コンパイラ」の第9章「目的プログラムの生成」を参
照されたい。
原始プログラム抽出部131は、入力された入力原始プ
ログラム11がコンパイルリス1−であった場合に、解
析情報とエラー情報の開始記号124と終了記号125
を手掛りとして原始プログラムリスト121の部分を抽
出して原始プログラム解析部132へ渡す。原始プログ
ラム抽出部131は、入力された入力原始プログラム1
1が解析情報やエラー情報を含まない原始プログラムで
あった場合には、入力原始プログラム11をそのまま原
始プログラム解析部132へ渡す。
第6図は、第1図における原始プログラム抽出部131
の処理の概要を示すフローチャートである。ここで、ト
ークンとは入力原始プログラム11中に存在する論理的
意味のある文字列の最小単位を示す。
原始プログラム抽出部131は、先ず入力原始プログラ
ム11から1トークン読み込む(ステップ151)、 
 読み込んだトークンが解析情報とエラー情報の開始記
号124であるか否かを検査しくステップ152)、開
始記号124でなければ(ステップ153)、読み込ん
だトークンを原始プログラム解析部132へ渡しくステ
ップ154)、入力原始プログラム11が終了していな
ければ(ステップ155)、入力原始プログラム11か
ら1トークン読み込む処理(ステップ151)へ制御を
戻す(ステップ156)。入力原始プログラム11が終
了していれば(ステップ157)、処理を終了する。入
力原始プログラム11から読み込んだトークンが開始記
号124であれば(ステップ158)、終了記号125
までを読み飛ばす処理に移る。終了記号125までを読
み飛ばす処理は、先ず、入力原始プログラム11から1
トークン読み込み(ステップ159)、読み込んだトー
クンが終了記号125か否かを検査する(ステップ16
0)。読み込んだトークンが終了記号125であれば、
終了記号125までを読み飛ばす処理を終了し、入力原
始プログラム11の終了判断(ステップ155)へ移る
(ステップ161)。読み込んだトークンが終了記号1
25でない場合(ステップ162)、入力原始プログラ
ム11が終了していなければ引き続いて入力原始プログ
ラム1Fからトークンを読み込む処理(ステップ159
)へ制御を移す(ステップ163)。入力原始プログラ
ム11が終了していれば、エラー処理(ステップ164
)を行い、原始プログラム抽出部131の処理を終了す
る。
第7図は、第1図におけるコンパイルリスト出力部13
3が各メツセージを出力する際のフローチャートである
先ず、出力するメツセージが原始プログラムリスト12
1であるか、解析情報122やエラー情報123である
かを検査しくステップ171)、原始プログラムリスト
121であれば、そのメツセージを出力する(ステップ
172)。原始プログラムリスト121でなければ、開
始記号124.メツセージ、および終了記号125を出
力する(ステップ173,174,175)。第8図に
修正されたコンパイルリストをコンパイルした結果のコ
ンパイルリスト例を示す。
このように、本実施例においては、コンパイラ13の出
力であるコンパイルリスト12内の原始プログラムリス
ト121以外の部分は、開始記号124と終了記号12
5とで囲まれており、開始記号124と終了記号125
はP ascal言語の注釈部の開始と終了をも示して
いるため、コンパイルリスト12を本実施例のコンパイ
ラ13や、従来存在する他のPa5calコンパイラの
入力原始プログラム11として用いることが可能となる
〔発明の効果〕 以上説明したように、本発明によれば、コンパイラが出
力するコンパイルリストや、そのコンパイルリストに対
してユーザが修正を加えたものを、そのままコンパイラ
の入力原始プログラムとして扱うことが可能となる。よ
って、プログラム開発時においては、文法エラーの発見
と修正をコンパイルリストに対してのみ行えばよく、原
始プログラムとコンパイルリストの双方を見比べるとい
う手間が省け、デパック効率が向上する。また、プログ
ラム保守時においても、コンパイラの解F[報が付加さ
れたコンパイルリストを原始プログラムとして保守の対
象とすることにより、原始プログラムの解読・修正を容
易にすることができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すコンパイラの構成図、
第2図は本発明を適用したコンパイラの入出力関係図、
第3図は原始プログラム例を示す図、第4図はコンパイ
ルリストの例を示す図、第5図は修正されたコンパイル
リストの例を示す図、第6図は第1図における原始プロ
グラム抽出部の処理フローチャート、第7図は第1図に
おけるコンパイルリスト出力部の処理フローチャート、
第8図は修正されたコンパイルリストをコンパイルした
結果のコンパイルリスト例を示す図である。 11:入力原始プログラム、12:コンパイルリスト、
13:コンパイラ、14:オブジェクトモジュール、1
31:原始プログラム抽出部、132:原始プログラム
解析部、133:コンパイルリスト出力部、134:オ
ブジェクト生成部、121:原始プログラムリスト、1
22:解析情報、123:エラー情報、124:開始記
号、125:終了記号。 特許出願人 株式会社 日立製作所

Claims (1)

  1. 【特許請求の範囲】 1、入力された原始プログラムを解析する原始プログラ
    ム解析処理手段と、該解析した結果である解析情報をも
    とに目的プログラムを生成する目的プログラム生成処理
    手段と、原始プログラムに解析情報を付加してコンパイ
    ルリストとして出力するコンパイルリスト出力処理手段
    とを有するコンパイラにおいて、入力されたコンパイル
    リストから原始プログラムリストを抽出して原始プログ
    ラム解析処理手段に渡す原始プログラム抽出処理手段を
    設け、該抽出された原始プログラムを上記原始プログラ
    ム解析処理手段に渡すことを特徴とするコンパイラ。 2、上記コンパイルリストの出力処理として、原始プロ
    グラムリストと解析情報とを分離するための分離記号を
    付加して出力し、上記原始プログラム抽出処理手段は、
    該分離記号をもとにして原始プログラムリストを抽出す
    ることを特徴とする特許請求の範囲第1項記載のコンパ
    イラ。 3、上記コンパイルリストの出力処理として、原始プロ
    グラムリストと解析情報とを各々定められた位置に出力
    し、上記原始プログラム抽出処理手段は、原始プログラ
    ムリストが出力されている位置の文字記号列を原始プロ
    グラムと判断して抽出することを特徴とする特許請求の
    範囲第1項記載のコンパイラ。 4、上記コンパイルリストの出力処理として、解析情報
    を出力する際に原始プログラムリストと解析情報とを分
    離するための分離記号を付加して出力する場合と、解析
    情報を出力する専用の位置に出力する場合とを使い分け
    て出力し、上記原始プログラム抽出処理手段は、上記分
    離記号をもとにして分離記号の付加された解析情報以外
    の部分を抽出する処理と、解析情報を出力する専用の位
    置に出力された解析情報を除いた部分を抽出する処理と
    を並用して原始プログラムを抽出することを特徴とする
    特許請求の範囲第1項記載のコンパイラ。 5、上記原始プログラム抽出処理手段は、原始プログラ
    ム全体を抽出した後に上記原始プログラム解析手段に渡
    す処理と、原始プログラムを部分的に抽出して上記原始
    プログラム解析手段に渡す処理のうち、いずれか一方を
    用いることを特徴とする特許請求の範囲第1項、第2項
    、第3項、または第4項記載のコンパイラ。
JP63182708A 1988-07-21 1988-07-21 コンパイラ Pending JPH0231236A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63182708A JPH0231236A (ja) 1988-07-21 1988-07-21 コンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63182708A JPH0231236A (ja) 1988-07-21 1988-07-21 コンパイラ

Publications (1)

Publication Number Publication Date
JPH0231236A true JPH0231236A (ja) 1990-02-01

Family

ID=16123045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63182708A Pending JPH0231236A (ja) 1988-07-21 1988-07-21 コンパイラ

Country Status (1)

Country Link
JP (1) JPH0231236A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100471936B1 (ko) * 1996-06-04 2005-09-09 미쓰비시 마테리알 가부시키가이샤 웨이퍼의세정·박리방법및장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100471936B1 (ko) * 1996-06-04 2005-09-09 미쓰비시 마테리알 가부시키가이샤 웨이퍼의세정·박리방법및장치

Similar Documents

Publication Publication Date Title
JP3190773B2 (ja) 言語処理プログラムのコンパイル処理方法
US5991539A (en) Use of re-entrant subparsing to facilitate processing of complicated input data
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
US20020019973A1 (en) Compiler and method for compiling easily adaptable to processor specifications
Diatchki et al. High-level views on low-level representations
KR20090011974A (ko) 컴파일 대상 파일 추출 방법
JP4719415B2 (ja) 情報処理システム及びコード生成方法
JPH0231236A (ja) コンパイラ
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
CN118069142B (zh) 编译优化方法、装置、电子设备及存储介质
Eriksen et al. The BOBS-system
JP3018783B2 (ja) コンパイル方式
WO1997007452A1 (en) Programmable compiler
JPS62259147A (ja) 構文解析方式
CN117008919A (zh) 仿真模型文件的解析方法、装置、电子设备及存储介质
CN118069142A (zh) 编译优化方法、装置、电子设备及存储介质
JPH06242958A (ja) コンパイル方式
JPH0658633B2 (ja) 論理型言語のコンパイル方式
JPS58169637A (ja) コンパイル処理方式
JPS61264440A (ja) コンパイル処理方式
JPS6074039A (ja) コンパイル言語認識処理方式
JPH03268029A (ja) 構文チェッカ
JP2002032231A (ja) 文字コード変換方法
JPH0754464B2 (ja) マイクロプログラム翻訳処理方法