JPH04260936A - コンパイラ装置 - Google Patents

コンパイラ装置

Info

Publication number
JPH04260936A
JPH04260936A JP3000247A JP24791A JPH04260936A JP H04260936 A JPH04260936 A JP H04260936A JP 3000247 A JP3000247 A JP 3000247A JP 24791 A JP24791 A JP 24791A JP H04260936 A JPH04260936 A JP H04260936A
Authority
JP
Japan
Prior art keywords
error
error information
program
source program
translation processing
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
JP3000247A
Other languages
English (en)
Inventor
Toshihiko Kataoka
敏彦 片岡
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3000247A priority Critical patent/JPH04260936A/ja
Publication of JPH04260936A publication Critical patent/JPH04260936A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソースプログラムをオ
ブジェクトプログラムに翻訳するコンパイラ装置に関す
る。
【0002】
【従来の技術】コンパイラ装置は計算機に計算を行わせ
るために使用される目的別のプログラム言語、たとえば
FORTRAN 等を計算機システム内において使用さ
れるプログラム言語、たとえば機械語等に翻訳するソフ
トウェアであるコンパイラを利用した装置である。
【0003】図3は計算機を利用したコンパイラ装置の
概念を示すブロック図である。図3において、参照符号
1は計算機全体を示しており、CPU2、主記憶装置3
、補助記憶装置4、入出力制御装置5、プリンタ6、キ
ーボード7、ディスプレイ8等にて構成されている。
【0004】CPU2には主記憶装置3及び入出力制御
装置5が接続されており、主記憶装置3には翻訳処理部
31が含まれている。翻訳処理部31は具体的にはプロ
グラムの形で主記憶装置3に記憶されているコンパイラ
である。 また、入出力制御装置5には補助記憶装置4、プリンタ
6、キーボード7及びディスプレイ8が接続されている
。補助記憶装置4には、このコンパイラ装置の処理対象
であるソースプログラム41及びそれから翻訳されたオ
ブジェクトプログラム42が格納されている。
【0005】図4は上述の図3の計算機を利用したコン
パイラ装置の動作手順を示すフローチャートである。
【0006】まず、補助記憶装置4に格納されているソ
ースプログラム41が主記憶装置3へ読込まれる (ス
テップS1)。
【0007】主記憶装置3に読込まれたソースプログラ
ム41に対して字句解析が行われ、変数名, 定数, 
区切り記号等がまとめられて構文上の基本単位の並びと
して再構成される (ステップS2)。この字句解析に
際してエラー発生があれば (ステップS3)、それを
表すエラー情報がサブルーチンで主記憶装置3に格納さ
れる (ステップSS)。エラー発生が無ければ (ス
テップS3)、次のステップS4へ進む。
【0008】ステップS4では構文解析が行われ、言語
の構文規則に従ってソースプログラム41がプログラム
として適切な形をしているか否かがチェックされる。構
文規則に反するエラーがあった場合、前述同様にサブル
ーチンでエラー情報が主記憶装置3に格納され (ステ
ップSS)、構文規則に則った正しいプログラムであれ
ば次のステップへ処理が進められる (ステップS5)
【0009】次に、上述のステップS4の構文解析の処
理で得られた構文的構造に基づいて中間言語への翻訳が
行われる (ステップS6)。この際、プログラム中に
現れる名前が型に関して適切に用いられているか否か等
の意味上のチェックが行われ、エラーが発生していれば
サブルーチンでエラー情報が主記憶装置3に格納され 
(ステップSS)、正常であれば次のステップへ処理が
進められる (ステップS7)。
【0010】次に、作成されるオブジェクトプログラム
の効率を向上させる目的で、共通の表現の簡略化,記憶
領域の節約のためのコードの最適化等が行われる (ス
テップS8)。そして、上述のコードの最適化の結果得
られた情報を参照して中間言語から目的言語への翻訳が
行われてオブジェクトプログラムが作成される (ステ
ップS9)。この際、エラーが発生していればサブルー
チンでエラー情報が主記憶装置3に格納される (ステ
ップSS)。
【0011】以上のステップS1〜S9の各処理におい
てエラーが発生した場合、サブルーチンのステップSS
の処理によりエラー情報を主記憶装置3に格納する処理
が行われている。そして、エラー発生があった場合、即
ち主記憶装置3にエラー情報が格納されている場合 (
ステップS11)にはステップS13へ処理が進められ
てコンパイルリストがプリンタ6またはディスプレイ8
に出力される。 この際、主記憶装置3に格納されているエラー情報も同
時にコンパイルリストに出力される (ステップS13
)。
【0012】このようにしてコンパイルリストにエラー
情報が表示された場合、オペレータはそれに従ってソー
スプログラムの修正を行い、再度ステップS1からの処
理を反復する。そして、全くエラー発生なしにステップ
S9の目的言語への翻訳までの処理が行われれば、変換
後のオブジェクトプログラムが出力され (ステップS
11)、コンパイルリストが出力される (ステップS
13)。
【0013】
【発明が解決しようとする課題】従来のコンパイラ装置
は上述のようにコンパイル結果をコンパイルリストとし
て出力している。このため、オペレータがソースプログ
ラムのエラー発生箇所の修正を行うには、コンパイルリ
スト上でエラー発生箇所を探索し、そのエラー箇所がソ
ースプログラム上のどの部分であるかをソースプログラ
ム上で探索して修正を行わなければならない。従って、
ソースプログラムの修正作業に多大の労力と時間とを要
していた。またソースプログラムの修正を行うとソース
プログラムの他の部分のライン番号も順送り的に変わっ
てしまう可能性があり、エラー発生箇所を捜すために更
に多大の労力と時間が必要になる等の問題がある。
【0014】本発明はこのような事情に鑑みてなされた
ものであり、コンパイル時のエラー情報 (文法的エラ
ー) をコンパイルリストに出力するのではなく、ソー
スプログラム上のエラー発生箇所に直接書込んで表示し
て探索を容易にすることにより、ソースプログラム修正
の際の労力と時間とを大幅に削減したコンパイラ装置の
提供を目的とする。
【0015】
【課題を解決するための手段】本発明に係るコンパイラ
装置は、ソースプログラムをオブジェクトプログラムに
翻訳する翻訳処理手段と、翻訳処理手段による翻訳処理
中にエラーが発生した場合にそのエラー情報をソースプ
ログラムの該当箇所に書込むエラー情報書込み手段と、
ソースプログラムのエラー発生箇所が修正された後に翻
訳処理手段による翻訳処理が行われてエラーが発生しな
かった場合にソースプログラムに書込まれているエラー
情報を消去するエラー情報消去手段とを備えている。
【0016】
【作用】本発明のコンパイラ装置では、翻訳処理手段に
よる翻訳実行時にエラー (文法的エラー) が発生す
ると、それを表すエラー情報がエラー情報書込み手段に
よりソースプログラム上の該当箇所に書込まれ、表示さ
れる。このエラーが修正された後にはそのエラーに対応
してソースプログラム上に書込まれたエラー情報がエラ
ー情報消去手段により消去される。
【0017】
【実施例】以下、本発明をその実施例を示す図面に基づ
いて詳述する。
【0018】図1は本発明に係るコンパイラ装置の機能
ブロック図である。通常、コンパイラはソフトウェア、
即ちプログラムであり、それを計算機上で動作させるこ
とにより実現されるので、本発明のコンパイラ装置の機
能を図1にブロック図として示す。なお、本発明のコン
パイラ装置は前述の図3に示した従来例同様の計算機1
上で動作し、主記憶装置3内の翻訳処理部31として格
納されている。
【0019】本発明のコンパイラ装置は、従来同様の翻
訳処理手段9の他に、本発明に特徴的なエラー情報書込
み手段10及びエラー情報消去手段11を備えている。
【0020】翻訳処理手段9は、従来のコンパイラ装置
と同様に動作してソースプログラム41をオブジェクト
プログラム42に翻訳する。
【0021】エラー情報書込み手段10は、翻訳処理手
段9によるソースプログラム41のオブジェクトプログ
ラム42への翻訳の際にエラーが発生した場合にそのエ
ラー発生に対応して主記憶装置3に格納されたエラー情
報をソースプログラム41の該当箇所に書込む。
【0022】エラー情報消去手段11は、エラー情報書
込み手段10により一旦ソースプログラム41に書込ま
れたエラー情報を、その原因となったエラーが解消され
た場合に消去する。
【0023】以上のような機能構成を有する本発明のコ
ンパイラ装置の動作について、その動作手順を示す図2
のフローチャートを参照して説明する。
【0024】まず、補助記憶装置4に格納されているソ
ースプログラム41が主記憶装置3へ読込まれる (ス
テップS1)。
【0025】主記憶装置3に読込まれたソースプログラ
ム41に対して字句解析が行われ、変数名, 定数, 
区切り記号等がまとめられて構文上の基本単位の並びと
して再構成される (ステップS2)。この字句解析に
際してエラー発生があれば (ステップS3)、それを
表すエラー情報がサブルーチンで主記憶装置3に格納さ
れ (ステップSS)、エラー発生が無ければ (ステ
ップS3)、次のステップS4へ進む。
【0026】ステップS4では構文解析が行われ、言語
の構文規則に従ってソースプログラム41がプログラム
として適切な形をしているか否かがチェックされる。構
文規則に反するエラーがあった場合、前述同様にサブル
ーチンでエラー情報が主記憶装置3に格納され (ステ
ップSS)、構文規則に則った正しいプログラムであれ
ば次のステップへ処理が進められる (ステップS5)
【0027】次に、上述のステップS4の構文解析の処
理で得られた構文的構造に基づいて中間言語への翻訳が
行われる (ステップS6)。この際、プログラム中に
現れる名前が型に関して適切に用いられているか否か等
の意味上のチェックが行われ、エラーが発生していれば
サブルーチンでエラー情報が主記憶装置3に格納され 
(ステップSS)、正常であれば次のステップへ処理が
進められる (ステップS7)。
【0028】次に、作成されるオブジェクトプログラム
の効率を向上させる目的で、共通の表現の簡略化,記憶
領域の節約のためのコードの最適化等が行われる (ス
テップS8)。そして、上述のコードの最適化の結果得
られた情報を参照して中間言語から目的言語への翻訳が
行われてオブジェクトプログラムが作成される (ステ
ップS9)。
【0029】以上のステップS1〜S9の処理は前述の
図4のフローチャートに示した従来例と同一であり、翻
訳処理手段9により処理される。
【0030】次に、ソースプログラム41上に書込まれ
ているエラーと主記憶装置3に格納されているエラー情
報とがエラー情報消去手段11により比較され、ソース
プログラム41上に書込まれてはいるが主記憶装置3に
は格納されていないエラー情報が捜し出され、そのエラ
ー情報をエラー情報消去手段11がソースプログラム4
1から消去する (ステップS21)。
【0031】この処理は、たとえばあるソースプログラ
ム41を最初にコンパイルした場合には、ステップS9
まで処理が済んだ時点でいくつかのエラーが発生してい
れば、ソースプログラム41上にはエラー情報の書込み
は行われてはおらず、主記憶装置3にのみエラー情報が
格納されている。従って、この場合にはステップS11
からステップS22へ処理が進められ、主記憶装置3に
格納されているエラー情報をエラー情報書込み手段10
がソースプログラム41のそれぞれのエラー情報の原因
となっている箇所に書込む処理を行い (ステップS2
2)、ステップS12の処理であるオブジェクトプログ
ラム42の出力を行わずに処理が終了する。
【0032】このようにステップS1からステップS9
までの処理中にエラー発生が有った場合には、ソースプ
ログラム41をプリンタ6で出力し、あるいはディスプ
レイ8に表示するとエラー発生箇所が一目瞭然の状態に
なっている。オペレータはそれを目視で探索して修正し
、再度ステップS1からの処理を本発明のコンパイラ装
置に実行させる。
【0033】以上のようなステップS1からステップS
9までの処理及びステップS22の処理が反復されると
、やがて主記憶装置3にエラー情報が全く格納されてい
ない状態、即ちソースプログラム41のオブジェクトプ
ログラム42への翻訳の処理が全くエラー無しで行われ
るようになるので、ステップS11からステップS12
へ処理が進められて完全なオブジェクトプログラム42
が出力される。
【0034】なお、上記実施例では、コンパイル時に発
生するエラー情報をソースプログラムに直接書込むよう
にしているが、ソースプログラム上でのエラー情報を表
示する手法としては種々の手法、たとえばディスプレイ
上では点滅させ、プリンタ出力上では強調印字を行う等
の種々の手法が可能である。
【0035】また、複数のソースプログラムをコンパイ
ルする場合には、ディスプレイ上にソースプログラムの
一覧を表示してエラー発生があるソースプログラムを点
滅するような手法も可能である。
【0036】
【発明の効果】以上に詳述したように、本発明のコンパ
イラ装置によれば、コンパイル時に発生すエラー情報を
従来とは異なってソースプログラム上の該当箇所に直接
書込むようにしているので、ソースプログラム上でのエ
ラー発生箇所の探索が容易になり、またエラーの修正を
忘れるというような事態も回避される。
【図面の簡単な説明】
【図1】本発明のコンパイラ装置の機能ブロック図であ
る。
【図2】本発明のコンパイラ装置の動作手順を示すフロ
ーチャートである。
【図3】計算機を利用した従来のコンパイラ装置の概念
を示すブロック図である。
【図4】従来のコンパイラ装置の動作手順を示すフロー
チャートである。
【符号の説明】
9    翻訳処理手段 10    エラー情報書込み手段 11    エラー情報消去手段 41    ソースプログラム 42    オブジェクトプログラム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  ソースプログラムをオブジェクトプロ
    グラムに変換するコンパイラ装置において、処理対象の
    ソースプログラムをオブジェクトプログラムに翻訳する
    翻訳処理手段と、該翻訳処理手段による翻訳処理に際し
    て、エラーが発生した場合にエラー発生を示すエラー情
    報を前記処理対象のソースプログラムの該当箇所に書込
    むエラー情報書込み手段と、前記処理対象のソースプロ
    グラムのエラー発生箇所が修正された後に前記翻訳処理
    手段による翻訳処理が行われてエラーが発生しなかった
    場合に前記処理対象のソースプログラムに書込まれたエ
    ラー情報を消去するエラー情報消去手段とを備えたこと
    を特徴とするコンパイラ装置。
JP3000247A 1991-01-07 1991-01-07 コンパイラ装置 Pending JPH04260936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3000247A JPH04260936A (ja) 1991-01-07 1991-01-07 コンパイラ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3000247A JPH04260936A (ja) 1991-01-07 1991-01-07 コンパイラ装置

Publications (1)

Publication Number Publication Date
JPH04260936A true JPH04260936A (ja) 1992-09-16

Family

ID=11468620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3000247A Pending JPH04260936A (ja) 1991-01-07 1991-01-07 コンパイラ装置

Country Status (1)

Country Link
JP (1) JPH04260936A (ja)

Similar Documents

Publication Publication Date Title
EP0643851B1 (en) Debugger program which includes correlation of computer program source code with optimized objet code
US5182806A (en) Incremental compiler for source-code development system
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5201050A (en) Line-skip compiler for source-code development system
EP1280056A1 (en) Generation of debugging information
Bailey et al. A formal model and specification language for procedure calling conventions
KR20020070809A (ko) 포스트-링크 코드 최적화
US6684394B1 (en) Relocation format for linking with relocation instructions containing operations for combining section data
JPH0769833B2 (ja) 多言語最適化コンパイラ内のシンボル テーブル構成用インタフェイス
EP1085411B1 (en) A relocation format for linking
US6687899B1 (en) Relocation format for linking
US20110202906A1 (en) Compiling method and compiling program
EP0406028A2 (en) Incremental compiler for source code development system
KR20090011974A (ko) 컴파일 대상 파일 추출 방법
JPH04260936A (ja) コンパイラ装置
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法
JP2827724B2 (ja) プログラムデバッグ処理方法
JP3417960B2 (ja) 文章校正支援方法および装置
JP2662533B2 (ja) ロジック・アナライザ
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH07168719A (ja) 冗長式除去装置
JPH11327887A (ja) 自動部品化機能付コンパイラシステムおよび記録媒体
Sekerinski et al. Pascal0 compiler
JPS58169637A (ja) コンパイル処理方式
JPH05233314A (ja) コンパイル処理およびプログラム実行における用語辞書処理方式