JPH03156641A - コンパイル処理方式 - Google Patents

コンパイル処理方式

Info

Publication number
JPH03156641A
JPH03156641A JP29805789A JP29805789A JPH03156641A JP H03156641 A JPH03156641 A JP H03156641A JP 29805789 A JP29805789 A JP 29805789A JP 29805789 A JP29805789 A JP 29805789A JP H03156641 A JPH03156641 A JP H03156641A
Authority
JP
Japan
Prior art keywords
declaration
information
compilation
processing
partial
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
JP29805789A
Other languages
English (en)
Inventor
Tomiko Nakajima
中島 登美子
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.)
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe Ltd
Original Assignee
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe 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 KOBE NIPPON DENKI SOFTWARE KK, NEC Software Kobe Ltd filed Critical KOBE NIPPON DENKI SOFTWARE KK
Priority to JP29805789A priority Critical patent/JPH03156641A/ja
Publication of JPH03156641A publication Critical patent/JPH03156641A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンパイル処理方式に関し、特に一部分を修正
したソースプログラムを翻訳し、目的プログラム作成す
るコンパイル処理方式に関する。
〔従来の技術〕
614、ソースプログラムをコンパイルして目的プログ
ラムを生成するには、たとえ1行の修正あるいは1文字
の修正でありも、ソースプログラムのすべての行に対し
てソースプログラム入力、構文解析処理、宣言処理、意
味解析処理、コード生成処理及びオブジェクトモジュー
ル生成処理を改めて行い目的プログラムを生成していた
〔発明が解決しようとする課題〕
上述した従来のコンパイル処理方式は、ソースプログラ
ムに対して1行の修正(追加・変更・削除)を行った場
合(一般に、プログラム開発途中において数行程度の小
規模な修正は頻繁に行われている)でも、すべての行に
対してソースプログラム入力、構文解析処理、宣言処理
、意味解析処理及びコード生成処理を行うため、他の修
正されていない行に対しては無駄な時間が費やされると
いう問題点があった。
本発明の目的は、ソースプログラムの修正されていない
行に対しては再度コンパイル処理を行わないで無駄な時
間を費やすことなく、コンパイルの処理時間を短縮した
コンパイル処理方式を提供することにある。
〔課題を解決するための手段〕
本発明のコンパイル処理方式は、ソースプログラムを読
み込み、構文解析処理、宣言処理、意味解析処理、コー
ド生成処理及びオブジェクトモジュール生成処理を行い
目的プログラムを出力するコンパイル処理方式において
、 (A)履歴種別、旧ソース開始行番号、旧ソース終了行
番号、新ソース開始行番号、新ソース終了行番号及び差
分ソース群を要素として前記ソースプログラムの修正の
履歴情報を記憶する履歴情報ファイル、 (B)どの行に宣言文が記述されていたかを示す宣言行
情報を格納する宣言行情報ファイル、(C)修正された
部分だけの部分コンパイルが可能であるか否かの判断を
行うためのデータとなる部分コンパイル構文テーブル、 (D)前記宣言文によって決定されたアドレスとしての
割付はロケーション及びブロックの情報と、ラベル定義
文によって決定されたラベル情報とを示す宣言・ラベル
情報を格納した宣言・ラベル情報ファイル、 (E)前記コード生成処理の結果であり、さらに前記オ
ブジェクトモジュール生成処理の情報となる中間言語ま
たはアセンブラソースを記憶する中間言語テキストファ
イル、 (F)ソースプログラムのコンパイル処理過程で前記履
歴情報を読み込み、前記宣言行情報と照合し、さらに前
記部分コンパイル構文テーブルを参照し前記構文解析処
理を行うことにより前記部分コンパイルが可能か否かの
判断を行う部分コンパイル判断手段、 (G)前記部分コンパイルが可能な場合、前記宣言・ラ
ベル情報を入力することにより前記宣言処理を省略し、
未修正部分に対する前記中間言語テキストをコピーする
ことにより前記構文解析処理、意味解析処理及びコード
生成処理を省略し修正された部分のみ、意味解析処理及
びコード生成処理を行って前記中間言語テキストを生成
し、さらに前記目的プログラムを生成する部分コンパイ
ル手段、 (H)W記部分コンパイルが不可の場合に前記対象ソー
スプログラムを入力し、前記構文解析処理、宣言処理、
意味解析処理、コード生成処理及びオブジェクトモジュ
ール生成処理を行って前記目的プログラムを生成し、前
記中間言語テキスト、宣言行情報及び宣言・ラベル情報
の生成処理を行う全コンパイル手段、 を備えて構成されている。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明の一実施例の構成図、第2図は第1図の
一実施例の部分コンパイル判断手段1の処理の流れ図、
第3図は第1図の一実施例の部分コンパイル手段2の処
理の流れ図、第4図は第1図の一実施例の履歴情報を示
す図、第5図は第1図の一実施例の構文解析後のテキス
ト形式を示す図、第6図は第1図の一実施例の行番号補
正テーブルのテーブル形式を示す図である。
第1図に示すコンパイル処理方式は、ソース10グラム
を格納するソースプログラムファイル9、履歴種別、旧
ソース開始行番号、旧ソース終了行番号、新ソース開始
行番号、新ソース終了行番号及び差分ソース群を要素と
してソースプログラムの修正の履歴情報を記憶する履歴
情報ファイル4、どの行に宣言文が記述されていたかを
示す宣言行情報を格納する宣言行情報ファイル5、修正
された部分だけの部分コンパイルが可能であるか否かの
判断を行うためのデータとなる部分コンパモル横文テー
ブル8、宣言文によって決定されたアドレスとしての割
付はロケーション及びブロックの情報と、ラベル定義文
によって決定されたラベル情報とを示す宣言・ラベル情
報を格納した宣言・ラベル情報ファイル7、コード生成
処理の結果であり、さらにオブジェクトモジュール生成
処理の情報となる中間言語またはアセンブラソースを記
憶する中間言語テキストファイル6、ソースプログラム
のコンパイル処理過程で履歴情報を履歴情報ファイル4
から読み込み、宣言行情報ファイル5の宣言行情報と照
合し、さらに部分コンパイル構文テーブル8を参照し構
文解析処理を行うことにより、部分コンパイルが可能か
否かの判断を行って部分コンパイルが可能であれば制御
を部分コンパイル手段2へ移し、部分コンパイルが不可
能であれば制御を全コンパイル手段3へ移す部分コンパ
イル判断手段1、部分コンパイルが可能な場合、宣言・
ラベル情報を入力することにより宣言処理を省略し、未
修正部分に対する中間言語テキストをコピーすることに
より、修正された部分だけに対して構文解析処理、意味
解析処理及びコード生成処理を行ってREV(i+1)
の中間言語テキストを生成し、さらにREV(i+1>
の目的プログラム、及びREV(i+1)の宣言・ラベ
ル情報を生成する部分コンパイル手段2、生成された目
的プログラムを格納する目的プログラム格納ファイル1
0、部分コンパイルが不可の場合にREV(i+1)の
ソース10グラムをソースプログラムファイル9から入
力し、構文解析処理、宣言処理、意味解析処理。
コード生成処理及びオブジェクトモジュール生成処理を
行ってREV(i+1)の目的プログラムを生成して目
的プログラム格納ファイル10に格納し、REV(i+
1)の中間言語テキスト、宣言行情報及び宣言・ラベル
情報の生成処理を行う全コンパイル手段3から構成され
ている。
次に、動作を説明する。
第2図に示すように、REV (i )の宣言行情報を
入力して宣言性テーブルに展開しくステップ21)、履
歴情報ファイル4より第4図に示す履歴情報の履歴種別
及び行情報を入力し、履歴種別及び行情報を第5図に示
す構文解析後テキストとして出力する(ステップ22)
0次に、履歴種別を判定しくステップ23)、変更・削
除であればステップ24へ進み、追加であればステラ1
25へ進み、終了であればステップ29へ進む。
ステップ24では、宣言文を含む行が変更・削除された
場合は部分コンパイルができないため、修正行が宣言行
であるか否かをREV(i)の宣言行情報入力処理で作
成した宣言行テーブルを参照し判定する。宣言行であれ
ば部分コンパイルが不可とする。宣言行でなければステ
ップ25へ進む。
ステップ25では、REV(i+1)の宣言行を作成す
るための行番号補正情報を第6図に示す行番号補正テー
ブルに蓄積する。履歴情報の要素である履歴種別の追加
であれば、(履歴情報の旧ソース開始番号、新ソース終
了番号+1)を行番号補正テーブルの要素である(旧ソ
ース行番号。
新ソース行番号)として出力し、変更であれば、(履歴
情報の旧ソース終了番号、新ソース終了番号)を行番号
補正テーブルの要素である(旧ソース行番号、新ソース
行番号)として出力し、削除であれば、(履歴情報の旧
ソース終了番号+1゜履歴情報の旧ソース開始番号−直
前に出力した行番号補正テーブルの要素である旧ソース
開始番号新ソース終了番号十直前に出力した行番号補正
テーブルの要素である新ソース行番号)を行番号補正テ
ーブルの要素である(旧ソース行番号、新ソース行番号
)として出力し、ステップ26へ進む。ステップ26で
は、部分コンパイル構文テーブル8を参照する。次に、
修正されたソースが部分コンパイル可能であるか否かを
判定しくステップ27)、構文エラーがあれば部分コン
パイルは不可とする。また、修正されたソースプロラム
が部分コンパイル可能であれば、構文解析後テキストの
要素である差分テキストを作成しくステップ28)、ス
テップ22へ進む。
ステップ29では、部分コンパイル可能とし、宣言行テ
ーブルをもとにREV(i+1)の宣言行情報を宣言行
情報ファイル5に出力する。このとき、行番号補正テー
ブルを参照し宣言行テーブルのREV (i )の行番
号をREV(i+1)の行番号に変更する。
第3図において、REV (i )の宣言・ラベル情報
を宣言・ラベル情報ファイル7から入力して宣言・ラベ
ルテーブルに展開し、ステップ32へ進む。
ステップ32では、ステップ28で作成した構文解析後
テキストの履歴種別及び行情報を入力し、行番号補正テ
ーブルを参照して宣言・ラベルテーブルの行情報を補正
する(行情報を含まないテキスト形式の場合は補正を行
わない)。
さらに、修正されていない行に対するREV(i)の中
間言語テキストを中間言語テキストファイル6から入力
し、REV(i+1)の中間言語テキストとして中間言
語テキストファイル6に出力する。ただし、行情報は必
要であれば行番号補正テーブルを参照してREV(i+
1)に適した行番号に補正して出力する。さらに、RE
V(i+1)の目的プログラムを生成し目的プログラム
ファイル10に格納する(ステップ33)。
次に、履歴種別の判定を行い(ステップ34)、履歴種
別が変更・削除であれば、ステップ35に進む。また、
履歴種別が追加であれば、ステップ36に進み、履歴種
別が追加であれば、ステップ37に進む。
ステップ35では、構文テキスト旧ソース終了行までの
行に対するREV (i )の中間言語テキストを読み
とばし、ステップ36へ進む。ステップ36では、構文
解析後テキストを入力しREV(i+1>の目的プログ
ラム及びREV(i+1)の中間言語テキストを作成し
、ステップ32へ進む。ステップ37では、ステップ3
1で展開した宣言・ラベルテーブルを参照し、REV(
i+1)の宣言・ラベル情報を生成して宣言・ラベル情
報ファイル7に格納し処理を終了する。
〔発明の効果〕
以上説明したように、本発明は、履歴情報を読み込み、
宣言行情報との照合及び部分コンパモル可能楕文解析に
より、部分コンパイルが可能か否かの判断を行い宣言・
ラベル情報を読み込むことにより宣言処理を省略し、未
修正部分に対する中間言語テキストをコピーすることに
より構文解析処理、意味解析処理、及びコード生成処理
を省略して修正された部分のみ意味解析処理、コード生
酸処理を行い中間言語テキストを生成し、さらに目的プ
ログラムを生成する処理を行うことにより、コンパイル
の処理時間を短縮することができるという効果を有する
0・・・・・・目的プログラムファイル。

Claims (1)

  1. 【特許請求の範囲】 ソースプログラムを読み込み、構文解析処理、宣言処理
    、意味解析処理、コード生成処理及びオブジェクトモジ
    ュール生成処理を行い目的プログラムを出力するコンパ
    イル処理方式において、(A)履歴種別、旧ソース開始
    行番号、旧ソース終了行番号、新ソース開始行番号、新
    ソース終了行番号及び差分ソース群を要素として前記ソ
    ースプログラムの修正の履歴情報を記憶する履歴情報フ
    ァイル、 (B)どの行に宣言文が記述されていたかを示す宣言行
    情報を格納する宣言行情報ファイル、(C)修正された
    部分だけの部分コンパイルが可能であるか否かの判断を
    行うためのデータとなる部分コンパイル構文テーブル、 (D)前記宣言文によって決定されたアドレスとしての
    割付けロケーション及びブロックの情報と、ラベル定義
    文によって決定されたラベル情報とを示す宣言・ラベル
    情報を格納した宣言・ラベル情報ファイル、 (E)前記コード生成処理の結果であり、さらに前記オ
    ブジェクトモジュール生成処理の情報となる中間言語ま
    たはアセンブラソースを記憶する中間言語テキストファ
    イル、 (F)ソースプログラムのコンパイル処理過程で前記履
    歴情報を読み込み、前記宣言行情報と照合し、さらに前
    記部分コンパイル構文テーブルを参照し前記構文解析処
    理を行うことにより前記部分コンパイルが可能か否かの
    判断を行う部分コンパイル判断手段、 (G)前記部分コンパイルが可能な場合、前記宣言・ラ
    ベル情報を入力することにより前記宣言処理を省略し、
    未修正部分に対する前記中間言語テキストをコピーする
    ことにより前記構文解析処理、意味解析処理及びコード
    生成処理を省略し修正された部分のみ、意味解析処理及
    びコード生成処理を行って前記中間言語テキストを生成
    し、さらに前記目的プログラムを生成する部分コンパイ
    ル手段、 (H)前記部分コンパイルが不可の場合に前記対象ソー
    スプログラムを入力し、前記構文解析処理、宣言処理、
    意味解析処理、コード生成処理及びオブジェクトモジュ
    ール生成処理を行つて前記目的プログラムを生成し、前
    記中間言語テキスト、宣言行情報及び宣言・ラベル情報
    の生成処理を行う全コンパイル手段、 を備えたことを特徴とするコンパイル処理方式。
JP29805789A 1989-11-15 1989-11-15 コンパイル処理方式 Pending JPH03156641A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29805789A JPH03156641A (ja) 1989-11-15 1989-11-15 コンパイル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29805789A JPH03156641A (ja) 1989-11-15 1989-11-15 コンパイル処理方式

Publications (1)

Publication Number Publication Date
JPH03156641A true JPH03156641A (ja) 1991-07-04

Family

ID=17854572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29805789A Pending JPH03156641A (ja) 1989-11-15 1989-11-15 コンパイル処理方式

Country Status (1)

Country Link
JP (1) JPH03156641A (ja)

Similar Documents

Publication Publication Date Title
US5204960A (en) Incremental compiler
JPH07141201A (ja) 2パスコンパイラのための改良された方法
Atkinson et al. Context sensitive editing as an approach to incremental compilation
JPH03156641A (ja) コンパイル処理方式
JPS5922140A (ja) 対話型コンパイル方式
JPH01307832A (ja) コンパイラの原始プログラムの文法誤り自動修正方式
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法
JP2007080207A (ja) プログラム開発支援システム及びリンカ
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JPH05197561A (ja) コンパイル方式
JPH11327887A (ja) 自動部品化機能付コンパイラシステムおよび記録媒体
JP3114199B2 (ja) 言語処理システムのリスト出力方式
JPH03100730A (ja) 高級言語による緊急修正データ作成処理方法
JP2002082811A (ja) コンパイル方法および記録媒体
JPH06103054A (ja) コーディング用チェックシート生成方式
JPH04101229A (ja) コンパイルエラー表示制御方式
JP2001125793A (ja) コンパイラシステム及びコンパイル方法並びに記録媒体
JPH06290052A (ja) 再コンパイル方式
JPS59231649A (ja) コンパイルリスト出力処理方式
JP2607975B2 (ja) デバック方式
JP2000242483A (ja) 2000年問題対応プログラム修正装置、修正方法及び記憶媒体
JPH0944347A (ja) エラー知識ベース作成装置
JPH04270422A (ja) プリコンパイル処理方式
JPH05313878A (ja) プログラムのコーディング支援方式
JPH02139641A (ja) デバッガ