JPS6074039A - コンパイル言語認識処理方式 - Google Patents
コンパイル言語認識処理方式Info
- Publication number
- JPS6074039A JPS6074039A JP18223183A JP18223183A JPS6074039A JP S6074039 A JPS6074039 A JP S6074039A JP 18223183 A JP18223183 A JP 18223183A JP 18223183 A JP18223183 A JP 18223183A JP S6074039 A JPS6074039 A JP S6074039A
- Authority
- JP
- Japan
- Prior art keywords
- language
- source
- processing
- section
- compiler
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(5)発明の技術分野
本錦明はコンパイル言語認識処理方式、特に例えばC0
BOL、 FORTRAN等といったような種々の計算
機用言語で記述されたプログラムについて。
BOL、 FORTRAN等といったような種々の計算
機用言語で記述されたプログラムについて。
システム内において、そのプログラムの言語種別を自動
認識することにより、コンパイル処理ヲ統合的に行い得
るようにしたコンパイル言語認識処理方式に関するもの
である。
認識することにより、コンパイル処理ヲ統合的に行い得
るようにしたコンパイル言語認識処理方式に関するもの
である。
(13) 従来技術と問題点
電子計算機に所望の動作をさせるための命令は。
最終的には、電気的信号に変換される「0」およびrl
Jの組合せからなる機械語によって与えられなければな
らないが、一般にプログラムを作成する場合、効率的に
、かつわかりやすく命令を記述することができるように
、予め定められた構文規則に基づく計算機用の高級言語
またはアセンブリ言語が用いられる。通常、高級言語を
機械語に変換するプログラムをコン、バイラといい、ア
センブリ言語を機械語に変換するプログラムをアセンブ
ラというが2本明細書においては、説明7簡単化するた
めに、上記両方について2機械語に変換する処理をコン
パイルということにする。
Jの組合せからなる機械語によって与えられなければな
らないが、一般にプログラムを作成する場合、効率的に
、かつわかりやすく命令を記述することができるように
、予め定められた構文規則に基づく計算機用の高級言語
またはアセンブリ言語が用いられる。通常、高級言語を
機械語に変換するプログラムをコン、バイラといい、ア
センブリ言語を機械語に変換するプログラムをアセンブ
ラというが2本明細書においては、説明7簡単化するた
めに、上記両方について2機械語に変換する処理をコン
パイルということにする。
自然言語に近い形の計算機用高級言語の代表的なものと
して2例えばC0BOL、 FORTRAN、 PL/
I等がある。これらの各言語は、それぞれ構文規則が異
なるため、従来9機械語に変換するためのコンパイラは
、各々まったく独立したものとして設けられていた。そ
のため2例えばメイン・モジュールがC0DOLで記述
され、サブ・モジュールがFORTRANで記述された
ようなプログラムの場合。
して2例えばC0BOL、 FORTRAN、 PL/
I等がある。これらの各言語は、それぞれ構文規則が異
なるため、従来9機械語に変換するためのコンパイラは
、各々まったく独立したものとして設けられていた。そ
のため2例えばメイン・モジュールがC0DOLで記述
され、サブ・モジュールがFORTRANで記述された
ようなプログラムの場合。
それぞれ、別々にコンパイルして、生成された機械語の
オブジェクトをリンクし、実行可能形式に改めるという
処理が必要であった。すなわち、従来方式によれば、言
語によって、各種コンパイラを予め選択し、その動作環
境を定義するジョブ制御文等を別々に用意しなければな
らず、また、 Ta2の場合、言語別にライブラリを作
るなど極めて煩雑であり1%に9例えば言語が異なるソ
ースプログラムについて、1ジヨブステツプで連続コン
パイルできないという問題があった。
オブジェクトをリンクし、実行可能形式に改めるという
処理が必要であった。すなわち、従来方式によれば、言
語によって、各種コンパイラを予め選択し、その動作環
境を定義するジョブ制御文等を別々に用意しなければな
らず、また、 Ta2の場合、言語別にライブラリを作
るなど極めて煩雑であり1%に9例えば言語が異なるソ
ースプログラムについて、1ジヨブステツプで連続コン
パイルできないという問題があった。
(C) 発明の目的と構成
本発明は上記問題点の解決を図り、ソースプログラムを
読み込んで、その言語種別を認識し、自動的に認識結果
の言語種別に対応するコンパイラに制御を移すことによ
り、異なる言語構成のプログラム群を連続コンパイル可
能とし、操作性および処理効率を向上させることを目的
としている。
読み込んで、その言語種別を認識し、自動的に認識結果
の言語種別に対応するコンパイラに制御を移すことによ
り、異なる言語構成のプログラム群を連続コンパイル可
能とし、操作性および処理効率を向上させることを目的
としている。
そのため2本発明のコンパイル言語認識処理方式は、各
種計算機用言語により記述されたソースプログラムをコ
ンパイルしてオブジェクト・モジュールを生成するデー
タ処理システムにおいて、上記計算機用言語の各種別に
対応してコンパイルを実行する複数のコンパイル処理部
と、上記ソースプログラムを読み込むソース入力部と、
該ソース入力部が読み込んだソースプログラムに関し上
記各計算機用言語の特徴を判別して言語種別を決定する
言語認識部と、該言語認識部の認識結果に従って上記コ
ンパイル処理部の1つを選択し起動するコンパイラ起動
部とをそなえたことを特徴としている。以下図面を参照
しつつ実施例に従って説明する。
種計算機用言語により記述されたソースプログラムをコ
ンパイルしてオブジェクト・モジュールを生成するデー
タ処理システムにおいて、上記計算機用言語の各種別に
対応してコンパイルを実行する複数のコンパイル処理部
と、上記ソースプログラムを読み込むソース入力部と、
該ソース入力部が読み込んだソースプログラムに関し上
記各計算機用言語の特徴を判別して言語種別を決定する
言語認識部と、該言語認識部の認識結果に従って上記コ
ンパイル処理部の1つを選択し起動するコンパイラ起動
部とをそなえたことを特徴としている。以下図面を参照
しつつ実施例に従って説明する。
(I))発明の実施例
第1図は本発明の一実施例構成、第2図は言語種別に対
応した特徴の例についての説明図、第3図はコメントに
対する処理を説明するための図。
応した特徴の例についての説明図、第3図はコメントに
対する処理を説明するための図。
第4図は本発明の一実施例処理説明図を示す。
図中、■はソース・モジュール、2はデータ管理部、3
はジョブ空間、4はソース入力部、5は言語認識部、6
は特徴記憶部、7はエラー処理部。
はジョブ空間、4はソース入力部、5は言語認識部、6
は特徴記憶部、7はエラー処理部。
8はコンパイラ起動部、9−1ないし9−3はコンパイ
ル処理部、10はオブジェクト・モジュールを表わす。
ル処理部、10はオブジェクト・モジュールを表わす。
ソース・モジュールエは1例えば磁気テープ。
磁気ディスク等に格納され記憶されたソースプログラム
である。データ管理部2は、オペレーティング・システ
ム(O8)の1処理機能として提供される実行可能なプ
ログラム群によって、構成されるものであって、外部記
憶装置上に記憶され管理されるデータセットに対する入
出力処理を実行するものである。このデータセットには
、ソース・モジュール1やオブジェクト・モジュール1
0等のデータセットもしくはライブラリが含まれる。
である。データ管理部2は、オペレーティング・システ
ム(O8)の1処理機能として提供される実行可能なプ
ログラム群によって、構成されるものであって、外部記
憶装置上に記憶され管理されるデータセットに対する入
出力処理を実行するものである。このデータセットには
、ソース・モジュール1やオブジェクト・モジュール1
0等のデータセットもしくはライブラリが含まれる。
ジョブ空間3は、処理プログラムの動作環境としてシス
テムから与えられる仮想的なメモリ資源等の空間であっ
て2図示省略したプロセッサが。
テムから与えられる仮想的なメモリ資源等の空間であっ
て2図示省略したプロセッサが。
該空間において処理プログラムの命令をフェッチして実
行し、ユーザーが所望する処理を遂行するようにされる
ものである。ソース入力部4は、データ管理部2が提供
するマクロ命令を発行し、指定されたソース−モジュー
ル1のステートメントを所定のバッファ上に順次読み込
むものである。
行し、ユーザーが所望する処理を遂行するようにされる
ものである。ソース入力部4は、データ管理部2が提供
するマクロ命令を発行し、指定されたソース−モジュー
ル1のステートメントを所定のバッファ上に順次読み込
むものである。
言語認識部5は、ソース入力部4が入力したソース・モ
ジュール1のステートメントを参照し、予め特徴記憶部
6に記憶された各種言語の特徴と比較照合することによ
り、そのステートメントもしくはステートメント群が、
どの計算機用言語によるものであるかを判別するもので
ある。特徴記憶部6には、第2図を参照して後述する如
く、各言語種別に特有のキーワード情報等がテーブル化
されて記憶される。もちろん、テーブル化することなく
、言語認識部5内に個々の文字判定命令として組み込む
ようにしてもよい。
ジュール1のステートメントを参照し、予め特徴記憶部
6に記憶された各種言語の特徴と比較照合することによ
り、そのステートメントもしくはステートメント群が、
どの計算機用言語によるものであるかを判別するもので
ある。特徴記憶部6には、第2図を参照して後述する如
く、各言語種別に特有のキーワード情報等がテーブル化
されて記憶される。もちろん、テーブル化することなく
、言語認識部5内に個々の文字判定命令として組み込む
ようにしてもよい。
エラー処理部7は、言語認識部5が特徴の抽出に失敗し
、言語種別を認識できなかったときに。
、言語種別を認識できなかったときに。
エラー・メツセージを出力し、ユーザに警告を与えて、
ソース・モジュール1の修正を促すものである。コンパ
イラ起動部8は、言語認識部5が認識した言語種別に対
応するコンパイル処理部9−1.9−2. ・・・を起
動するものである。これらの各コンパイル処理部9−1
.9−2. ・・・は。
ソース・モジュール1の修正を促すものである。コンパ
イラ起動部8は、言語認識部5が認識した言語種別に対
応するコンパイル処理部9−1.9−2. ・・・を起
動するものである。これらの各コンパイル処理部9−1
.9−2. ・・・は。
例えば従来ノC0BOL、 FORTRAN、 PL/
I すと47) −zンパイラまたはアセンブラに対応
するものであって2周知の如くソースプログラムを解析
して機械語に変換し、オブジェクト・モジュール10を
生成する。なお、オブジェクト・モジューA/10を言
語別に作成するか、または、一括して作成するかについ
て2例えば簡単なオプション機能を設ければ便利である
。
I すと47) −zンパイラまたはアセンブラに対応
するものであって2周知の如くソースプログラムを解析
して機械語に変換し、オブジェクト・モジュール10を
生成する。なお、オブジェクト・モジューA/10を言
語別に作成するか、または、一括して作成するかについ
て2例えば簡単なオプション機能を設ければ便利である
。
言語認識部5は、具体的には例えば第2図に示したよう
な各言語の特徴によって、各言語種別を決定する。C0
BOLの場合、ソースプログラムを何枚か読み込むと、
必ずl’−11)ENTIFICATTON( DIVISION、Jのステートメントがある。このス
テートメントを検出したならば、 C0BOLであると
判断してよい。また、PL/Iの場合、「pitoc(
MAIN)Jのステートメントが出てくる。一方。
な各言語の特徴によって、各言語種別を決定する。C0
BOLの場合、ソースプログラムを何枚か読み込むと、
必ずl’−11)ENTIFICATTON( DIVISION、Jのステートメントがある。このス
テートメントを検出したならば、 C0BOLであると
判断してよい。また、PL/Iの場合、「pitoc(
MAIN)Jのステートメントが出てくる。一方。
FORTRANの場合、上記ステートメントは現われず
、数式や代入文が先頭から現われることがある。
、数式や代入文が先頭から現われることがある。
例えば「DIMBNSIONJや「C0MM0NJ等の
予約語によって、FoIl(置ANと判断することがで
きる。また、アセンブラの特徴は、一般に計算機の機種
によって異なることもあるが9例えば、 [PsECT
J、 「C3ECTJ、 「Dc」等の予約語によっ−
〔認識が可能である。
予約語によって、FoIl(置ANと判断することがで
きる。また、アセンブラの特徴は、一般に計算機の機種
によって異なることもあるが9例えば、 [PsECT
J、 「C3ECTJ、 「Dc」等の予約語によっ−
〔認識が可能である。
なお2機械語に展開されない注釈のためのコメント文は
、一般には単に読み飛ばされるが、これを認識に利用す
ることもできる。例えば、第3図図示σの如く、1カラ
ム目がr−X−Jのコメントは。
、一般には単に読み飛ばされるが、これを認識に利用す
ることもできる。例えば、第3図図示σの如く、1カラ
ム目がr−X−Jのコメントは。
アセンブリ言語である。また、FO几′1゛几ANのコ
メントは、第3図図示すの如く、6カラム目がrCJと
なる。
メントは、第3図図示すの如く、6カラム目がrCJと
なる。
例えば、FORTRANとBASICとは、数式だけの
場合などには、非常に類似している。しかし。
場合などには、非常に類似している。しかし。
一般に数式だけのプログラムは意味がなく、何んらかの
出力を伴うのが通例であるから1例えばWRI T E
文、FORMAT文があればFORTRANと判断し、
、PRINT文があれば、BASICと判断できる。
出力を伴うのが通例であるから1例えばWRI T E
文、FORMAT文があればFORTRANと判断し、
、PRINT文があれば、BASICと判断できる。
次に、第4図を参照して、第1図図示実施例の処理につ
いて説明する。ジョブまたはTSSの会話コマンド等に
より、コンパイルの処理要求があったならば、まず第4
図図示処理20により、指定すれたソース・モジュール
1のデータセットを。
いて説明する。ジョブまたはTSSの会話コマンド等に
より、コンパイルの処理要求があったならば、まず第4
図図示処理20により、指定すれたソース・モジュール
1のデータセットを。
データ管理部2のいわゆる0PENマクロによりアクセ
ス可能とし、バッファを確保して、ソースプログラムを
読み込む。次に処理21により、第2図図示のような各
言語の特徴を抽出し、言語種別を決定する。処理22の
判定により、言語種別がC0BOLであれば、処理23
によって、C0DOLコンパイル処理を起動し、コンノ
シイルする。処理24の判定により、FOT几ANであ
ることがわかれば、処理25によってFORTRANコ
ンノくイル処理髪起動する。同様に処理26の判定によ
り、アセンブリ言語であることがわかれば、処理27に
よって、アセンブル処理を起動いアセンブルする。同様
にすべての言語種別について判定を繰り返し、認識でき
ないときには2例えばそのステートメントをスタックし
ておく。このスタックされたデータは、後に言語が判明
したときに、コンノくイルの対象とされる。
ス可能とし、バッファを確保して、ソースプログラムを
読み込む。次に処理21により、第2図図示のような各
言語の特徴を抽出し、言語種別を決定する。処理22の
判定により、言語種別がC0BOLであれば、処理23
によって、C0DOLコンパイル処理を起動し、コンノ
シイルする。処理24の判定により、FOT几ANであ
ることがわかれば、処理25によってFORTRANコ
ンノくイル処理髪起動する。同様に処理26の判定によ
り、アセンブリ言語であることがわかれば、処理27に
よって、アセンブル処理を起動いアセンブルする。同様
にすべての言語種別について判定を繰り返し、認識でき
ないときには2例えばそのステートメントをスタックし
ておく。このスタックされたデータは、後に言語が判明
したときに、コンノくイルの対象とされる。
次に、処理28の判定によって、ソースプログラムの処
理が、すべて終了したかどうかを判定し。
理が、すべて終了したかどうかを判定し。
まだの場合には、−処理20に制御を戻し、同様に処理
を繰り返す。上記処理がすべて終了した場合には、処理
29へ移って、すべて認識不能であったかどうかを判定
する。言語種別をソースプログラムのすべてについて決
定できなかった場合には。
を繰り返す。上記処理がすべて終了した場合には、処理
29へ移って、すべて認識不能であったかどうかを判定
する。言語種別をソースプログラムのすべてについて決
定できなかった場合には。
処理30によって、エラーメツセージを出力し。
ソースプログラムの修正を促す。なお、この後。
例、fi−ハシステム出力ファイルとして、スプールさ
れたコンパイル結果のリスト等が出力されるが。
れたコンパイル結果のリスト等が出力されるが。
この出力は従来と同様であるので詳細な説明は省略する
。
。
(J4 発明の詳細
な説明した如く本発明によれば、コンパイルを行うにあ
たって、言語種別を意識する必要がなくなり、操作性が
向上する。また、言語別にライブラリを作ることなく、
異種言語についてライブラリを一元管理できるので、プ
ログラム管理が容易になる。さらに言語が異なるソース
プログラムを統一的に連続してコンパイルすることが可
能となる。
たって、言語種別を意識する必要がなくなり、操作性が
向上する。また、言語別にライブラリを作ることなく、
異種言語についてライブラリを一元管理できるので、プ
ログラム管理が容易になる。さらに言語が異なるソース
プログラムを統一的に連続してコンパイルすることが可
能となる。
第1図は本発明の一実施例構成、第2図は言語種別に対
応した特徴の例についての説明図、第3図はコメントに
対する処理を説明するための図。 第4図は本発明の一実施例処理説明図を示す。 図中、1はソース・モジュール、2はデータ管理部、3
はジョブ空間、4はソース入力部、5は言語認識部、6
は特徴記憶部、7はエラー処理部。 8はコンパイラ起動部、9−1ないし9−3はコンパイ
ル処理部、10はオブジェクト・モジーールを表わす。 特許出願人 富士通株式会社
応した特徴の例についての説明図、第3図はコメントに
対する処理を説明するための図。 第4図は本発明の一実施例処理説明図を示す。 図中、1はソース・モジュール、2はデータ管理部、3
はジョブ空間、4はソース入力部、5は言語認識部、6
は特徴記憶部、7はエラー処理部。 8はコンパイラ起動部、9−1ないし9−3はコンパイ
ル処理部、10はオブジェクト・モジーールを表わす。 特許出願人 富士通株式会社
Claims (1)
- 各種計算機用言語により記述されたソースプログラムを
コンパイルしてオブジェクト・モジュールを生成するデ
ータ処理システムにおいて、上記計算機用言語の各種別
に対応してコンパイルを実行する複数のコンパイル処理
部と、上記ソースプログラムを読み込むソース入力部と
、該ソース入力部が読み込んだソースプログラムに関し
上記各計算機用言語の特徴を判別して言語種別を決定す
る言語認識部と、該言語認識部の認識結果に従って上記
コンパイル処理部の1つを選択し起動するコンパイラ起
動部とをそなえたことを特徴とするコンパイル言語認識
処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18223183A JPS6074039A (ja) | 1983-09-30 | 1983-09-30 | コンパイル言語認識処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18223183A JPS6074039A (ja) | 1983-09-30 | 1983-09-30 | コンパイル言語認識処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6074039A true JPS6074039A (ja) | 1985-04-26 |
Family
ID=16114633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18223183A Pending JPS6074039A (ja) | 1983-09-30 | 1983-09-30 | コンパイル言語認識処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6074039A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01136242A (ja) * | 1987-11-24 | 1989-05-29 | Nec Corp | ツール起動方式 |
EP0432802A2 (de) * | 1989-12-15 | 1991-06-19 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Verfahren für die automatische Syntaxanalyse (Parsen) des Textes von Computer-Programmen in Kompilierern |
-
1983
- 1983-09-30 JP JP18223183A patent/JPS6074039A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01136242A (ja) * | 1987-11-24 | 1989-05-29 | Nec Corp | ツール起動方式 |
EP0432802A2 (de) * | 1989-12-15 | 1991-06-19 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Verfahren für die automatische Syntaxanalyse (Parsen) des Textes von Computer-Programmen in Kompilierern |
US5276880A (en) * | 1989-12-15 | 1994-01-04 | Siemens Corporate Research, Inc. | Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5598561A (en) | Optimizing compiler which generates multiple instruction streams to be executed in parallel | |
JP3190773B2 (ja) | 言語処理プログラムのコンパイル処理方法 | |
JPS6375835A (ja) | 目的コ−ド、プログラム・リスト及び設計文書を生成する装置 | |
JP2017204201A (ja) | 情報処理装置、コンパイル方法、およびコンパイルプログラム | |
JPS6074039A (ja) | コンパイル言語認識処理方式 | |
JP5399601B2 (ja) | 実装コード開発システム、及び実装コード開発プログラム | |
JPH10187461A (ja) | 言語処理方式 | |
JP2718427B2 (ja) | 大規模知識ベースにおけるデータアクセス方式 | |
JP3018783B2 (ja) | コンパイル方式 | |
JPS63276127A (ja) | ダイナミック命令生成方式 | |
JPH01128136A (ja) | コンパイル処理装置 | |
JPH03144830A (ja) | 並列処理方式 | |
JP3323147B2 (ja) | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 | |
JPH11306150A (ja) | コンパイル処理方式、その方法およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2977642B2 (ja) | Fortranコンパイル処理装置 | |
JP3044953B2 (ja) | 言語処理システムのシンボル処理方式 | |
JPH0259823A (ja) | コンパイル処理方式 | |
CN112579088A (zh) | 面向异构混合编程的一站式程序编译方法 | |
JPH05120025A (ja) | ソースプログラムのインライン展開方法 | |
JPH07105014A (ja) | 言語処理システムのシンボル処理方式 | |
JPH0561687A (ja) | コンパイラの処理方式 | |
JPH02165339A (ja) | コンパイル装置 | |
JPH0749843A (ja) | 並列化コンパイラ | |
JPS5924348A (ja) | コンパイル処理方式 | |
JP2003208317A (ja) | プログラム開発方法 |