JPS5922140A - 対話型コンパイル方式 - Google Patents

対話型コンパイル方式

Info

Publication number
JPS5922140A
JPS5922140A JP57130386A JP13038682A JPS5922140A JP S5922140 A JPS5922140 A JP S5922140A JP 57130386 A JP57130386 A JP 57130386A JP 13038682 A JP13038682 A JP 13038682A JP S5922140 A JPS5922140 A JP S5922140A
Authority
JP
Japan
Prior art keywords
program
line
intermediate code
machine language
source 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
JP57130386A
Other languages
English (en)
Inventor
Yoshie Matsuzaki
松崎 吉衛
Seiji Hata
清治 秦
Yasuichiro Ogawa
小川 靖一郎
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 JP57130386A priority Critical patent/JPS5922140A/ja
Publication of JPS5922140A publication Critical patent/JPS5922140A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 本発明は、計算機におけるプログラムの入力・編集・実
行を対話型で高速に行うだめの対話型コンパイル方式に
関するものである。
一般に、計算機におけるプログラムの入力・編集・実行
の方式には、インタプリタ型とコンパイラ型とがある。
インタプリタ型のものは、ソースプログラムを1行だけ
入力するごとに中間コード(−または内部コード)への
変換を行い、その解釈をしながら当該プログラムの実行
をするもので、対話型機能を必要とするものに適してい
るものとされている。
しかしながら、プログラム実行時に中間コードの解釈を
行わなければならないので、その処理に相当の時間を要
し、全体の実行時間も長くなる。ちなみに、同一の中央
処理装置(以下、CP Uという。)によっても、例え
ば、コンパイラ型のものに比べて1/10〜1/100
程度の低速度である。
一方、コンパイラ型のものは、ソースプログラムを対話
型エディタ等により入力するときには、構文解析をせず
、そのままの形で内部に格納するので、ある1行の人力
時にチェック可能なエラーがあっても、それを検出する
ことができない。また、機械語への変換は、ソースプロ
グラムから行うので、たとえ1行だけの修正をする場合
でも、ソースプログダム全体の変換を改めて始めから行
わなければならず、その修正に相当の時間を要する。
なお、高速実行性能と機械語生成時間の短縮とを目的と
して、ノースプログラムを1行だけ入力するごとに機械
語へ変換するようにした逐次コンパイラ型のものもある
が、これとても、行単位の情報だけで完全に機械語を生
成しうるのは単純な言語に限られるので、各行間の相互
関係で当該機械語が定まるような言語を処理しようとす
ると、ソースプログラム1行の入力時の機械語変更時間
が長くなって入力操作性が悪くなるか、または各行間の
相互関係に依存する部分の実行待解釈が必要となり、実
行速度の向上は望むことができない。
しだがって、コンパイラ型のものは、いずれにしても対
話型機能を必要とするものには不適当であるとされてい
た。
更に、インタプリタ型、コンパイラ型両者の欠点を補う
ために、同一言語に対してインタプリタ。
コンパイラの両者を有し、デバッグはインタプリ゛りで
行い、プログラム完成後はコンパイラで機械語を生成し
て高速実行を可能としようとする/ステムもあるが、例
えば設備制御プログラムのデバッグの場合のように、実
際の対象(設備)とのタイミング調整が最も重要である
ときには、実際の制御状態よりも低速なインタプリタを
1吏用して確実なデバッグを行いうる範囲は極めて限ら
れたものとなってしまう。
本発明の目的は、上記した従来技術の欠点をなくシ、計
算機におけるプログラムの入力・編集・実行について、
特に、そのノースプログラムの入力時におけるエラーチ
ェックを可能とし、機械語を実行することによって高速
性を実現し、丑だ、プログラム修正も対話型で短時間に
可能な対話型コンパイル方式を提供することにある。
本発明に係る対話型コンパイル方式の構成は、ノースプ
ログラムを機械語にコンパイルし、その機械語に基づい
て当該プログラムの実行・処理を行う機能を有する計算
機において、ソースプログラムの1行ごとに当該構文解
析を行った後に機械語への変換を行うだめの中間コード
の形式を設定しておき、ソースプログラムを行ことに上
記中間コードへ変換し、また、その所要の逆変換をも行
い、各中間コードに関する編集・バッファリングを行っ
た後、それらの中間コードを一斉に機械語にコンパイル
せしめることにより、ソースプログラムの入力時のエラ
ーチェックを可能とするとともに、ソースプログラムの
修正を上記中間コードで行いうるように17だものであ
る。
これを要するに、ノースプログラムについて、その入力
時のエラーチェックによって機械語への変換時間を短縮
するとともに、その修正に無関係な構文解析をやり直す
必要性をなくして修正時間をも短縮し、従来から困難と
されていたコンパイラの対話型化をしながらもプログラ
ム実行の高速化をはかるものである。
以下、本発明の実施例を図に基づいて説明する。
第1図は、本発明に係る対話型コンパイル方式の一実施
例の方式構成図、第2図は、その中間コードの構成図、
第3図は、同フローチャー1・である。
ここで、1は、ノースプログラムが1行だけ入力される
ごとに、その構文解析をし、エラーがあればエラーメツ
セージを送出し、エラーがなければ後述する所定の中間
コートへの変換を行うトランスレータ、2は、トランス
レータ1が生成する中間コードを、行番号順に編集する
エディタ、3は、その編集結果のバッファリングを行う
中間コードバッファ、4は、その各中間コードを所定の
機械語に変換(コンパイル)するコンパイラ、5は、中
間コードをノースプログラムへ変換する逆トランスレー
タ、6は、中央処理装置(CP U )である。
まず、プログラム初期入力時には、トランスレータ1は
、入力されたソースプログラムについて、その1行ごと
に構文解釈を行った後、エラーチェック(例えば、変数
名の二重定義チェック)を行い、エラーがあればエラー
メツセージを出力し、エラーがなければ中間コードに変
換してエディタ2へ渡す(第3図(a)の処理10)。
ここで、中間コードは、例えば、第2図(a)に示すよ
うにソースプログラムのある行が演算式A−B米(C+
D)であると、BASIC言語で書かれた逆ボーランド
記法形式のものにより、第2図(b)に示すように各変
数AおよびB、C,Dに対しては、当該各データ(例え
ば、各2バイト)に対応する命令内容のロード、ブツシ
ュ表示(例えば、各2バイト)を付し、その他の演算記
号に対しては、その旨の表示(例えば、各2・くイト)
のみで表現するようにしている。
エディタ2は、渡された各中間コードについて、その行
番号を調べ、これを中間コードノくソファ3の該当箇所
に(例えば、文の行番号順に)挿入・バッファリングを
する(同処理20>。
すべてのソースプログラムの入力が終了したかどうかが
CIIJ6によって判断され(同判断30)、終了して
いると、コンパイラ4は、CPU6ノ制徊1により、中
間コードバッファ3の中の全中間コードを一斉に受は取
り、これらを順次に所定の機械語に変換する(同処理4
0)。この際、必要に応じて分岐先アドレス決定(例え
ば、いわゆるGOTO文等におけるもの)、変数エリア
割イ」け等も行う。
なお、逆トランスレータ5は、プログラム表示が必要な
ときに、中間コードバッファ3から所望の中間コードを
受は取り、これを対応するソースプログラムに逆変換(
復元)をするものである。
次に、プログラム修正時には、トランスレータ1は、入
力された修正行の部分のみを中間コードに変換しく第3
図(b)の処理50)、エディタ2は、それに対応する
中間コードバッファ30当該行を修正しく同処理60)
、コンパイラ4も、当該中間コードのみの機械語への変
換を行う(同処理70)。
このようにして、ソースプログラムの人力時または修正
時には、インタプリタ型と同様に対話型で行いうるよう
にし、最終的な機械語への変換時には、コンパイラ型で
行いうるようにしているので、若干の効率悪化(例えば
、高々2倍程度の所要時間)があったとしても、総合的
にはコンパイラ型と同程度の動作速度となり、従来のイ
ンタプリタ型のものに比べて極めて高速化される。
ちなみに、8ビツトのマイクロコンピュータについて、
同−CPUによったときに、機械語1命令の実行時間は
、コンパイラ型では数マイクロ秒であるのVご対して、
インタプリタ型では1ミリ秒程度である。
また、最終過程の中間コードから機械語への変換(コン
パイル)は、従来のコンパイラに比べて極めて短かぐす
ることができる(例えば、従来0.4秒/行程度であっ
たものを01秒/行程度にできる)。したがって、」二
連のようにノースプログラムの入力を行うのに相当の時
間(例えば、0.3秒/行程度)を要したとしても、総
合的に全時間は従来のコンパイラと同程度(0,1−1
−0,3=04秒/行)となる。しかも、ノースプログ
ラムの入力は、通常、人手によるキー操作によるもので
あり、この程度の入力間隔(上記0.3秒/行)は、実
用上側等支障となるものではない。
なお、一旦入力したプログラムの修正についても、入力
時に1行ごとにエラーチェックが行われて正しいプログ
ラム人力が行われており、修正が必要となっても、その
修正行の中間コードへの変換と、当該コンパイル(中間
コードから機械語への変換)とだけで済むので、全行の
修正を行うようにしている従来のコンパイラに比べて極
めて短時間(約1/4程度)で実行することができる。
以上、詳細に説明したように、本発明によれば、ノース
プログラムの入力時におけるエラーチェックを可能とし
、またプログラム修正も対話型で短時間で可能とし、総
合的な実行速度は、従来もつばら対話型用として使用さ
れてきたインタプリタ型のものより大幅に高速化(10
〜100倍程度)できるので、この種の計算機が利用さ
れるシステムの効率向上、サービス性向上、運用性向上
に顕著な効果が得られる。
【図面の簡単な説明】
第1図は、本発明に係る対話型コンパイル方式の一実施
例の方式構成図、第2図は、その中間コードの構成図、
第3図は、同フローチャートである。 ■・・・トランスレータ、2・・・エディタ、3・・・
中間コードバッファ、4・・・コンパイラ、5・・・逆
トランスレータ、6・・・CPU。 代理人 弁理士 福田幸作 (ほか1名) sI 口 茅20

Claims (1)

  1. 【特許請求の範囲】 1、7−スプログラムを機械語にコンパイルし、その機
    械語に基づいて当該プログラムの実行・処理を行う機能
    を有する計算機において、ソースプログラムの1行ごと
    に当該構文解析を行った後に機械語への変換を行うだめ
    の中間コードの形式を設定しておき、ソースプログラム
    を行ごとに上記中間コードへ変換し、また、その所要の
    逆変換をも行い、各中間コードに関する編集・バッファ
    リングを行った後、それらの中間コードを一斉に機械語
    にコンパイルせしめることにより、ソースプログラムの
    入力時のエラーチェックを可能とするとともに、ノース
    プログラムの修正を上記中間コードで行いうるようにす
    ることを特徴とする対話型コンパイル方式。 2、特許請求の範囲第1項記載のものにおいて、中間コ
    ードは、各変数に対しては当該各命令内容を付したもの
    、および演算記号に対してはそれ自身のみその他所製項
    目を各所定のコードで表示し、」1記コンパイルに適合
    した順序に並べ替えたものである対話型コンパイル方式
JP57130386A 1982-07-28 1982-07-28 対話型コンパイル方式 Pending JPS5922140A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57130386A JPS5922140A (ja) 1982-07-28 1982-07-28 対話型コンパイル方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57130386A JPS5922140A (ja) 1982-07-28 1982-07-28 対話型コンパイル方式

Publications (1)

Publication Number Publication Date
JPS5922140A true JPS5922140A (ja) 1984-02-04

Family

ID=15033079

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57130386A Pending JPS5922140A (ja) 1982-07-28 1982-07-28 対話型コンパイル方式

Country Status (1)

Country Link
JP (1) JPS5922140A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175435A (ja) * 1984-09-20 1986-04-17 Hitachi Software Eng Co Ltd 構文チエツカ−とテキストエデイタの連動方式
JPS61205304A (ja) * 1985-01-25 1986-09-11 ゼネラル・エレクトリック・カンパニイ
JPS61282941A (ja) * 1985-06-07 1986-12-13 Matsushita Electric Ind Co Ltd マイクロプログラム開発支援装置
JPS6327774A (ja) * 1986-07-21 1988-02-05 Yokogawa Electric Corp アナログlsiテスト装置
JPS6473425A (en) * 1987-09-16 1989-03-17 Mitsubishi Electric Corp Program converting device
JPH01261734A (ja) * 1988-04-13 1989-10-18 Fujitsu Ltd デバッグ結果によるプログラム出力処理方式

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175435A (ja) * 1984-09-20 1986-04-17 Hitachi Software Eng Co Ltd 構文チエツカ−とテキストエデイタの連動方式
JPS61205304A (ja) * 1985-01-25 1986-09-11 ゼネラル・エレクトリック・カンパニイ
JPH0411723B2 (ja) * 1985-01-25 1992-03-02 Gen Electric
JPS61282941A (ja) * 1985-06-07 1986-12-13 Matsushita Electric Ind Co Ltd マイクロプログラム開発支援装置
JPS6327774A (ja) * 1986-07-21 1988-02-05 Yokogawa Electric Corp アナログlsiテスト装置
JPS6473425A (en) * 1987-09-16 1989-03-17 Mitsubishi Electric Corp Program converting device
JPH01261734A (ja) * 1988-04-13 1989-10-18 Fujitsu Ltd デバッグ結果によるプログラム出力処理方式

Similar Documents

Publication Publication Date Title
US7793270B2 (en) Method and apparatus for performing incremental validation of program code conversion
JPH11242597A (ja) Javaバイトコードデータのフローグラフの生成方法
JPH07141201A (ja) 2パスコンパイラのための改良された方法
JP2001184218A (ja) Mpiプログラムのコンパイルにおける最適化方法
JPS5922140A (ja) 対話型コンパイル方式
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
US20200341736A1 (en) Dynamic updates in an interactive programming environment
JPH10187461A (ja) 言語処理方式
JPH01307832A (ja) コンパイラの原始プログラムの文法誤り自動修正方式
JP3596570B2 (ja) クラスの主記憶装置への配置方法
JPH03144832A (ja) プリコンパイラ言語プログラムのシンボリックデバッグ装置
JPH04248624A (ja) プログラム変換処理装置
JPS58169637A (ja) コンパイル処理方式
JPS63317826A (ja) シンボリックデバッグ方式
JPH03242736A (ja) 異常処理方式
JPH02245934A (ja) データ処理装置
JPH04257029A (ja) エディタ
Crowe et al. A software development environment for Ada
JPH05127888A (ja) メツセージ出力機能自動組込方式
JPH04209029A (ja) 並列処理プログラム翻訳処理装置
JPH04138550A (ja) コマンド文字列構文解析処理方式
JPH04317112A (ja) マン・マシン・インターフェースのエラーメッセージ処理方法
JPH0954696A (ja) プログラム生成方法及びトランスレータ、コンパイラ並びに実行時ライブラリ
JPS63305434A (ja) ディバッギングエイド装置
JPH08161179A (ja) 一文実行方法