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

コンパイル処理方式

Info

Publication number
JPH0749788A
JPH0749788A JP19380293A JP19380293A JPH0749788A JP H0749788 A JPH0749788 A JP H0749788A JP 19380293 A JP19380293 A JP 19380293A JP 19380293 A JP19380293 A JP 19380293A JP H0749788 A JPH0749788 A JP H0749788A
Authority
JP
Japan
Prior art keywords
option
processing
specified
command
intermediate text
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.)
Withdrawn
Application number
JP19380293A
Other languages
English (en)
Inventor
Yoichi Sato
洋一 佐藤
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators 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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP19380293A priority Critical patent/JPH0749788A/ja
Publication of JPH0749788A publication Critical patent/JPH0749788A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】モジュール間の依存関係を言語で明白に規定し
ているときに、この言語のコンパイラで行なうコンパイ
ル作業の時間短縮をはかる。 【構成】コンパイラ1はコマンド列により起動される。
コンパイラ1は初期処理11の処理後、FEオプション
チェック部12でコマンド列中のフロントエンド処理の
ためのFEオプションの有無をチェックする。FEオプ
ションが指定されているときはFE部13を実行し、ソ
ースプログラム17のコンパイル処理を始める。このと
きにモジュール間の依存関係もチェックされ依存関係ミ
スがあるときはコンパイル処理を打ち切る。コマンド列
中にバックエンド処理のためのBEオプションが指定さ
れているときはBE部15が実行される。BE部15は
中間テキストを入力し、処理し、オブジェクトプログラ
ム20を生成する。コマンド列中にFEオプションの指
定が無いときはFE部13は行わず、BE部15を行い
オブジェクトプログラムを生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンパイル処理方式、特
にコンパイル単位であるモジュール間に依存関係を定義
する機能を有するコンパイル処理方式に関する。
【0002】
【従来の技術】従来、モジュール間に依存関係を有する
ことを明白に記述し、記述された情報をもとにコンパイ
ルしていくコンパイラ処理方式は、依存関係を明白に記
述する機能のないコンパイラ処理方式と同様に、ソース
プログラムを入力しオブジェクトプログラムを生成する
工程まで連続して処理を行う方式を採用している。
【0003】
【発明が解決しようとする課題】しかしながら、上述し
たコンパイル処理方式ではシステムを構成するモジュー
ル数が比較的に少ない場合は、コンパイル作業に顕著な
作業効率の差は出ないが、コンパイル単位であるモジュ
ール数が多い大規模システムの場合には、コンパイル作
業時に不具合が発見され、これを修正したときに関連す
る全モジュールを全てリコンパイルにしなければならな
いという問題がある。
【0004】本発明の目的は、上記の問題発生時にコン
パイル作業を効率良くするために、依存関係の処理を行
うコンパイル処理(コンパイラの前半部の処理)を全て
のモジュールに対して行い、この結果を中間テキストの
形式で保存しておき、全ての依存関係の不具合が解消し
た後に、保存していた中間テキストからオブジェクトプ
ログラムを生成する処理(コンパイラの後半部の処理)
を行う。このことにより総合的なコンパイル時間を縮小
することにある。
【0005】
【課題を解決するための手段】本発明のコンパイラ処理
方式は、コンパイル単位であるモジュール間に依存関係
を定義する機能を有するコンパイル処理方式において、
コンパイラを起動するコマンド列の読込みとコマンド列
のチェックとをして各種の初期処理を行う初期処理部
と、コマンド列中にフロントエンド処理のための”F
E”オプションが指定されているか否かをチェックする
FEオプションチェック部と、”FE”オプションが指
定されているときに起動され、ソースプログラムを読込
んで構文チェック処理、意味チェック処理を行い、依存
関係データをライブラリから入力あるいはライブラリへ
出力することによって依存関係処理を行い、ソースプロ
グラムを中間テキストに変換し中間テキストファイルに
出力するFE部と、中間テキスト生成後に人手によりコ
ンパイル順を定めた後に、コマンド列中にバックエンド
処理のための”BE”オプションが指定されているか否
かをチェックするBEオプションチェック部と、”B
E”オプションが指定されているときに起動され中間テ
キストファイルから中間テキストを読込みオブジェクト
プログラムに変換しオブジェクトプログラムファイルに
出力するBE部と、このBE部の処理の後にコンパイル
処理の終了処理を行う終了処理部とを含むことにより構
成され、またコンパイル単位であるモジュール間に依存
関係を定義する機能を有するコンパイル処理方式におい
て、コンパイラを起動するコマンド列の読込みとコマン
ド列のチェックとをして各種の初期処理を行う初期処理
部と、コマンド列中にフロントエンド処理のための”F
E”オプションが指定されているか否かをチェックする
FEオプションチェック部と、”FE”オプションが指
定されているときに起動されソースプログラムを読込ん
で構文チェック処理、意味チェック処理を行い、依存関
係データをライブラリから入力あるいはライブラリへ出
力することによって依存関係処理を行い、ソースプログ
ラムを中間テキストに変換し中間テキストファイルに出
力するFE部と、コマンド列中のオプションによってコ
ンパイラを起動する各種のコンパイラ起動用コマンド列
をモジュールのコンパイル順にコマンド列テキストファ
イル中に作成するコマンド列作成部と、コマンド列中に
バックエンド処理のための”BE”オプションが指定さ
れているか否かをチェックするBEオプションチェック
部と、”BE”オプションが指定されているときに起動
され中間テキストファイルから中間テキストを読込みオ
ブジェクトプログラムに変換しオプジェクトプログラム
ファイルに出力するBE部と、このBE部の処理の後に
コンパイル処理の終了処理を行う終了処理部とを含むこ
とにより構成される。
【0006】
【実施例】次に、本発明について図面を参照して説明す
る。
【0007】図1は本発明の第一の実施例の構成図であ
る。図1の実施例において、コンパイラ1はこのコンパ
イラを起動するコマンド列のオプションを検査し、解析
し、そしてコンパイラの初期処理を行う初期処理部11
と、コマンド列中にフロントエンド処理を行う”FE”
オプションが指定されているか否かを検査するFEオプ
ションチェック部12と、“FE”オプションが指定さ
れていたときに起動されソースプログラムファイル17
からソースプログラムを読込み、必要ならばライブラリ
ファイル18から他モジュールで定義された依存データ
等を読込み、構文チェック、意味チェック、依存関連デ
ータの更新処理を行い、中間テキストを中間テキストフ
ァイル19に出力し、依存関連データをライブラリファ
イル18に出力する処理を行うFE部13と、コマンド
列中にバックエンド処理のための”BE”オプションが
指定されているか否かを検査するBEオプションチェッ
ク部14と、”BE”オプションが指定されていたとき
に起動され、中間テキストファイル19から中間テキス
トを読込みオブジェクトプログラムファイル20にオブ
ジェクトプログラムを生成するBE部15と、コンパイ
ル処理の後かたずけを行う終了処理部16とを有して構
成される。
【0008】次に、図1の実施例の動作について説明す
る。図2はコンパイル単位であるモジュールの依存関係
を示す概念図、図3はコンパイラを起動するコマンド列
の一例を示す図である。まず、図3(a)に示すコマン
ド列がシステムに投入されることによりコンパイラ1が
起動されると、初期処理部11が起動されコマンド列が
検査され、オプションの有無が記憶される。この後にコ
ンパイル処理のための初期処理が行われ、FEオプショ
ンチェック部12が起動される、FEオプションチェッ
ク部12はコマンド列中に”−FE”オプションが指定
されているか否かを検査する“−FE“オプションが指
定されていなかったときはFE部13の処理はスキップ
するが、指定されていた時はFE部13を起動する。F
E部13はコマンド列の“SOU”オプションで指定さ
れたソースプログラムファイル17からソースプログラ
ムと、”LIB”オプションで指定されたライブラリフ
ァイル18から依存関連情報を入力し、構文チェック、
意味チェックを行い、”IML”オプションで指定した
中間テキストファイル19に中間テキストを出力すると
共に、更新した依存関連情報をライブラリファイル18
に出力する。コマンド列中に”IML”オプションが指
定されなかった場合は、中間テキストファイル19はコ
ンパイラによりテンポラリファイルが割当てられる。続
いて、BEオプションチェック部14が起動される。B
Eオプションチェック部14はコマンド列中に”−B
E”オプションが指定されているか否かを検査する。”
−BE”オプションが指定されていないときはBE部1
5の処理はスキップするが、指定されているときはBE
部15を起動する。BE部15は”IML”オプション
で指定されている中間テキストファイル19から中間テ
キストを入力し、オブジェクトプログラムを生成してオ
ブジェクトプログラムをオブジェクトプログラムファイ
ル20へ出力する。依存関連の処理は既にFE部13で
終了しているので中間テキストからオプジェクトプログ
ラムを生成する処理ではコンパイルの順番は関係ない。
次に、終了処理部16が起動され、必要ならばテンポラ
リファイルなどの解放処理やその他のコンパイラの後処
理を行い処理を終了する。
【0009】図2はモジュールの依存関係を示す概念図
であり、システムが3階層からなっていて、レベル3の
モジュール(c11,c12,c21,c22)はレベ
ル2のモジュール(b1とb2)に依存しており、レベ
ル2のモジュールはレベル1のモジュール(a1)に依
存していることを示している。このとき、コンパイルの
順番はレベル1のモジュール、レベル2のモジュール、
レベル3のモジュールとなる。同じレベルのモジュール
には依存関係は無い。
【0010】図3はコマンド列の例を示す図で、図3
(a)はコマンドの基本形の例であり、図3(b)およ
び(c)は図2で示したモジュールをコンパイルすると
きのコマンド列を示している。図3(b)はFE部13
の処理を全モジュールに対して行い、依存関係の検査、
ソースプログラムの誤りなどを除去し、中間テキストを
作成するところまで行わせるものであり、図3(c)は
BE部15の処理を全モジュールに対して行い、中間テ
キストからオブジェクトプログラムを生成するものであ
る。
【0011】図4は本発明の第2の実施例の構成図であ
る。図4の実施例は図1の実施例のFE部13とBEオ
プションチェック部14との間に、コマンド列のオプシ
ョンによってコンパイラを起動する各種のコンパイラ起
動用コマンド列をコマンド列テキストファイル22中に
作成するコマンド列作成部21を設けたものである。
【0012】図4の実施例では図1の実施例中で同名
称、同符号のものは、それぞれ同じ処理を行なうが、F
Eオプションチェック部12はコマンド列中に”−F
E”オプションが指定されているときはFE部13起動
するが、”−FE”オプションが指定されていなかった
ときはFE部13とコマンド列作成部21との処理をス
キップする。そしてコマンド列作成部21はFE部13
の処理が行なわれたときは、その処理に続いて起動さ
れ、コマンド列中のオプションによりコンパイラを起動
する各種のコンパイラ起動用コマンド列をコマンド列テ
キストファイル22に作成する。このコマンド列テキス
トファイル22は中間テキストからオブジェクトプログ
ラムを作成したり、全モジュールのリコンパイル、ある
いはモジュールの一部を修正したりするときに、コンパ
イラを起動するために使用する。またコマンド列テキス
トファイル中のコマンド列はモジュールのコンパイル順
に作成される。
【0013】図5はコマンド列作成部21の処理のフロ
ー図で、”−c”,”−mkfe”,”−mkbe”,
および”−mkfbe”オプションを設け、それぞれこ
れらのオプションによりコマンド列テキストファイルの
クリア(ステップ102)、ソースプログラムから中間
テキストを生成するコンパイルコマンド列の作成(ステ
ップ103)、中間テキストからオブジェクトプログラ
ムを生成するコンパイルコマンド列の作成(ステップ1
04)、およびソースプログラムからオブジェクトプロ
グラムを生成するコンパイルコマンド列の作成(ステッ
プ105)し、ステップ102では続いて生成したコマ
ンド列をコマンド列テキストファイルの最後に登録し
(ステップ110)、終了する。またステップ103、
104、105では続いて登録スイッチがオンかを調べ
(ステップ106)、オンでなければオンにして(ステ
ップ107)、生成したコマンド列がコマンド列テキス
トファイルに既に登録済みかを調べ(ステップ10
8)、登録済でなければ生成したコマンド列で置換し、
以降のテキストを削除して(ステップ109)、終了す
る。またステップ106で登録スイッチがオンであると
き、およびステップ108で登録済みのときはステップ
110に移る。
【0014】
【発明の効果】以上説明したように本発明によれば、依
存関係のあるモジュールをソースプログラム上で明白に
定義している言語ではコンパイルの順番も明白に定義さ
れているので、まず依存関連の処理が全て済んでからオ
ブジェクトプログラムを生成することにより、オブジェ
クトプログラムの生成処理、すなわちバックエンド部を
起動する処理は依存関係の更新回数に関係なく一回にな
り、コンパイル作業の効率が向上するという効果があ
る。また、中間テキストからオブジェクトプログラムを
生成するためのコマンド列や全モジュールを順番通りに
コンパイルするコマンド列を自動生成することにより、
このコマンド列を使用することによりコンパイル作業時
のミスを回避できるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例の構成図である。
【図2】本発明が適用されるソースプログラムのモジュ
ール間の依存関係を示す概念図である。
【図3】図1の実施例を説明するためのコマンド列の例
を示す図である。
【図4】本発明の第2の実施例の構成図である。
【図5】図4の実施例のコマンド列作成部の処理のフロ
ー図である。
【符号の説明】
1,2 コンパイラ 11 初期処理部 12 FEオプションチェック部 13 FE部 14 BEオプションチェック部 15 BE部 16 終了処理部 17 ソースプログラムファイル 18 ライブラリファイル 19 中間テキストファイル 20 オブジェクトプログラムファイル 21 コマンド列作成部 22 コマンド列テキストファイル

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 コンパイル単位であるモジュール間に依
    存関係を定義する機能を有するコンパイル処理方式にお
    いて、コンパイラを起動するコマンド列の読込みとコマ
    ンド列のチェックとをして各種の初期処理を行う初期処
    理部と、コマンド列中にフロントエンド処理のための”
    FE”オプションが指定されているか否かをチェックす
    るFEオプションチェック部と、”FE”オプションが
    指定されているときに起動され、ソースプログラムを読
    込んで構文チェック処理、意味チェック処理を行い、依
    存関係データをライブラリから入力あるいはライブラリ
    へ出力することによって依存関係処理を行い、ソースプ
    ログラムを中間テキストに変換し中間テキストファイル
    に出力するFE部と、中間テキスト生成後に人手により
    コンパイル順を定めた後に、コマンド列中にバックエン
    ド処理のための”BE”オプションが指定されているか
    否かをチェックするBEオプションチェック部と、”B
    E”オプションが指定されているときに起動され中間テ
    キストファイルから中間テキストを読込みオブジェクト
    プログラムに変換しオブジェクトプログラムファイルに
    出力するBE部と、このBE部の処理の後にコンパイル
    処理の終了処理を行う終了処理部とを含むことを特徴と
    するコンパイル処理方式。
  2. 【請求項2】 コンパイル単位であるモジュール間に依
    存関係を定義する機能を有するコンパイル処理方式にお
    いて、コンパイラを起動するコマンド列の読込みとコマ
    ンド列のチェックとをして各種の初期処理を行う初期処
    理部と、コマンド列中にフロントエンド処理のための”
    FE”オプションが指定されているか否かをチェックす
    るFEオプションチェック部と、”FE”オプションが
    指定されているときに起動されソースプログラムを読込
    んで構文チェック処理、意味チェック処理を行い、依存
    関係データをライブラリから入力あるいはライブラリへ
    出力することによって依存関係処理を行い、ソースプロ
    グラムを中間テキストに変換し中間テキストファイルに
    出力するFE部と、コマンド列中のオプションによって
    コンパイラを起動する各種のコンパイラ起動用コマンド
    列をモジュールのコンパイル順にコマンド列テキストフ
    ァイル中に作成するコマンド列作成部と、コマンド列中
    にバックエンド処理のための”BE”オプションが指定
    されているか否かをチェックするBEオプションチェッ
    ク部と、”BE”オプションが指定されているときに起
    動され中間テキストファイルから中間テキストを読込み
    オブジェクトプログラムに変換しオプジェクトプログラ
    ムファイルに出力するBE部と、このBE部の処理の後
    にコンパイル処理の終了処理を行う終了処理部とを含む
    ことを特徴とするコンパイル処理方式。
JP19380293A 1993-08-05 1993-08-05 コンパイル処理方式 Withdrawn JPH0749788A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19380293A JPH0749788A (ja) 1993-08-05 1993-08-05 コンパイル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19380293A JPH0749788A (ja) 1993-08-05 1993-08-05 コンパイル処理方式

Publications (1)

Publication Number Publication Date
JPH0749788A true JPH0749788A (ja) 1995-02-21

Family

ID=16314021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19380293A Withdrawn JPH0749788A (ja) 1993-08-05 1993-08-05 コンパイル処理方式

Country Status (1)

Country Link
JP (1) JPH0749788A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210116872A1 (en) * 2012-08-27 2021-04-22 Johnson Controls Technology Company Syntax translation from first syntax to second syntax based on string analysis
US11762362B2 (en) 2017-03-24 2023-09-19 Johnson Controls Tyco IP Holdings LLP Building management system with dynamic channel communication
US11920810B2 (en) 2017-07-17 2024-03-05 Johnson Controls Technology Company Systems and methods for agent based building simulation for optimal control

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210116872A1 (en) * 2012-08-27 2021-04-22 Johnson Controls Technology Company Syntax translation from first syntax to second syntax based on string analysis
US11754982B2 (en) * 2012-08-27 2023-09-12 Johnson Controls Tyco IP Holdings LLP Syntax translation from first syntax to second syntax based on string analysis
US20230333519A1 (en) * 2012-08-27 2023-10-19 Johnson Controls Tyco IP Holdings LLP Syntax translation from first syntax to second syntax based on string analysis
US12474679B2 (en) 2012-08-27 2025-11-18 Tyco Fire & Security Gmbh Syntax translation from first syntax to second syntax based on string analysis
US11762362B2 (en) 2017-03-24 2023-09-19 Johnson Controls Tyco IP Holdings LLP Building management system with dynamic channel communication
US11920810B2 (en) 2017-07-17 2024-03-05 Johnson Controls Technology Company Systems and methods for agent based building simulation for optimal control
US12270560B2 (en) 2017-07-17 2025-04-08 Johnson Controls Technology Company Systems and methods for digital twin-based equipment control

Similar Documents

Publication Publication Date Title
Lammel et al. Cracking the 500-language problem
EP0905617B1 (en) Method for generating a java bytecode data flow graph
JP2811990B2 (ja) プログラム処理装置及びプログラム処理方法
US5606697A (en) Compiler system for language processing program
US9535664B1 (en) Computerized software development process and management environment
US11294665B1 (en) Computerized software version control with a software database and a human database
US6934940B2 (en) Source code transformation-temporary object reduction
JPH0749788A (ja) コンパイル処理方式
GB2420638A (en) Method of substituting code fragments in Internal Representation
JP2000029678A (ja) プログラム言語変換方法、変換装置および記録媒体
Mössenböck Compiler Construction: Fundamentals and Applications
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法
Jain et al. An interactive method for extracting grammar from programs
JPH07121379A (ja) 複数言語混在コンパイラ
JP2000242504A (ja) コンパイラ装置
JPH05197561A (ja) コンパイル方式
JPH06290052A (ja) 再コンパイル方式
CN120610714A (zh) 同步建模语言代码生成器的高可信构造及其形式化验证方法
CN118377469A (zh) 一种基于prompt的自动编译构建C++项目方法
CN119807010A (zh) 源代码的处理方法、装置及电子设备
JPH02100732A (ja) プログラム文法チェック方式
JP3018783B2 (ja) コンパイル方式
CN117931171A (zh) 一种应用的开发方法、系统、可读存储介质和电子设备
JPH06103054A (ja) コーディング用チェックシート生成方式
JPS59231649A (ja) コンパイルリスト出力処理方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001031