JPH04243429A - コンパイラ - Google Patents

コンパイラ

Info

Publication number
JPH04243429A
JPH04243429A JP1705091A JP1705091A JPH04243429A JP H04243429 A JPH04243429 A JP H04243429A JP 1705091 A JP1705091 A JP 1705091A JP 1705091 A JP1705091 A JP 1705091A JP H04243429 A JPH04243429 A JP H04243429A
Authority
JP
Japan
Prior art keywords
program
level language
language program
low
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
Application number
JP1705091A
Other languages
English (en)
Inventor
Masazumi Yoshikawa
吉川 昌澄
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 Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP1705091A priority Critical patent/JPH04243429A/ja
Publication of JPH04243429A publication Critical patent/JPH04243429A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高級言語プログラムを
低級言語プログラムに変換するコンパイラに関する。
【0002】
【従来の技術】従来、この種のコンパイラは、ソースプ
ログラムである高級言語プログラムの構文解析や名標の
解析等を行う意味解析部(または前半部と呼ばれる)と
、アセンブラ等の低級言語による低級言語プログラムの
生成等を行うコード生成部(または後半部と呼ばれる)
と、意味解析部およびコード生成部が共通に利用する大
域的なデータ領域(解析表等)とを含んで構成されてい
た。また、意味解析部からコード生成部に中間言語プロ
グラムが渡されていた。
【0003】図4は、従来のコンパイラの構成の一例を
示すブロック図である。このコンパイラは、意味解析部
41と、コード生成部42と、解析表43とを含んで構
成されている。
【0004】意味解析部41は、入力である高級言語プ
ログラム44を解析し、大域的なデータ領域である解析
表43に解析結果を登録し、中間言語プログラム45を
生成してコード生成部42に渡す。なお、この中間言語
プログラム45は、コンパイラの処理に適したデータ構
造表現として設計されている。
【0005】コード生成部42は、解析表43のデータ
を参照し、意味解析部41から渡された中間言語プログ
ラム45を低級言語プログラム46に変換する。
【0006】
【発明が解決しようとする課題】上述した従来のコンパ
イラでは、以下のような問題点があった。
【0007】■  コード生成部が解析表等の大域的な
データ領域内のデータを必要とするので、中間言語プロ
グラムのみによって低級言語プログラムを生成すること
ができない。
【0008】■  中間言語プログラムはコンパイラの
処理に適したデータ構造表現として設計されているので
、中間言語プログラムを人間によって記述することがで
きない。
【0009】■  ■より、高級言語によって記述不可
能なプログラムまたは高級言語プログラムとコンパイラ
とが用いられて作成された低級言語プログラム以上の性
能が要求されるプログラムを記述するためには、直接、
低級言語によってプログラムを記述するしかない(以下
、人間によって記述された低級言語プログラムを低級言
語記述プログラムという。この意味では、高級言語プロ
グラムは全て「高級言語記述プログラム」である)。こ
のような低級言語記述プログラムは、記述が困難であり
、異機種への流用性がない。
【0010】本発明の目的は、上述の点に鑑み、中間言
語プログラムのみを用いて(大域的なデータを用いない
で)低級言語プログラムを生成でき、中間言語記述プロ
グラム(人間によって記述された中間言語プログラム)
の利用を可能とするコンパイラを提供することにある。
【0011】
【課題を解決するための手段】本発明のコンパイラは、
高級言語プログラムを低級言語プログラムに変換するコ
ンパイラにおいて、高級言語プログラムを解析しプログ
ラムの記述に適した記号表現として設計された中間言語
プログラムを生成する意味解析部群と、この意味解析部
群により生成された中間言語プログラムに基づいて低級
言語プログラムを生成するコード生成部群とを有する。
【0012】
【作用】本発明のコンパイラでは、意味解析部群が高級
言語プログラムを解析しプログラムの記述に適した記号
表現として設計された中間言語プログラムを生成し、コ
ード生成部群が意味解析部群により生成された中間言語
プログラムに基づいて低級言語プログラムを生成する。
【0013】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0014】図1は、本発明のコンパイラの一実施例の
構成を示すブロック図である。本実施例のコンパイラは
、高級言語プログラム3を入力し中間言語プログラム4
を出力する意味解析部群1(単数または複数種類の高級
言語向けの意味解析部11の集合)と、中間言語プログ
ラム4を入力し低級言語プログラム5を出力するコード
生成部群2(単数または複数種類の低級言語向けのコー
ド生成部12の集合)とを含んで構成されている。
【0015】図2および図3は、本実施例のコンパイラ
の具体的な構成の例を示すブロック図である。
【0016】次に、このように構成された本実施例のコ
ンパイラの動作について説明する。
【0017】意味解析部群1は、高級言語記述プログラ
ムである高級言語プログラム3を入力し、ソースプログ
ラムである高級言語プログラム3の構文解析や名標の解
析を行い、それらの解析に基づいて中間言語プログラム
4を出力する。
【0018】なお、従来技術と異なり、意味解析部群1
とコード生成部群2とに共有の大域的なデータ領域(解
析表等)は設けられず、中間言語プログラム4のみによ
って意味解析部群1からコード生成部群2への情報の受
け渡しが行われる。
【0019】また、中間言語プログラム4は、プログラ
ムの記述に適した記号表現として設計されている。
【0020】コード生成部群2は、中間言語プログラム
4を入力し、その中間言語プログラム4のみに基づいて
低級言語プログラム5を生成する。
【0021】次に、図2を参照して説明する。図2は、
1つの高級言語プログラム3を1つの中間言語プログラ
ム4を経由して複数の機種に対応する複数種類の低級言
語プログラム5−1,5−2および5−3に変換する際
の、本実施例のコンパイラの構成を示す図である。
【0022】従来技術では、高級言語によって記述不可
能なプログラムまたは高級言語プログラムとコンパイラ
とが用いられて作成された低級言語プログラム以上の性
能が要求されるプログラムは、直接的に低級言語で記述
されていた。すなわち、低級言語記述プログラムが利用
されていた。したがって、その低級言語記述プログラム
を異機種に対応する異種の低級言語プログラムとして流
用することは不可能であった。
【0023】本実施例のコンパイラによると、図2に示
すように、同じ中間言語プログラム4をコード生成部1
2−1,12−2および12−3によって複数の機種に
対応する複数種類の低級言語プログラム5−1,5−2
および5−3に変換することができる。したがって、あ
る低級言語プログラム5を生成するために人間によって
記述された高性能な中間言語プログラム4(高級言語に
よって記述不可能なプログラム等な程に高い性能を持つ
中間言語記述プログラム)を異種の低級言語プログラム
5を生成するために流用することが可能となる。
【0024】次に、図3を参照して説明する。図3は、
複数種類の高級言語プログラム3−1,3−2および3
−3を共通の中間言語プログラム4に変換しコード生成
部12によって共有する際の、本実施例のコンパイラの
構成を示す図である。
【0025】本発明では、意味解析部群1とコード生成
部群2とが共通に利用する大域的なデータ領域は存在し
ない。したがって、複数種類の高級言語プログラム3−
1,3−2および3−3を同じ中間言語プログラム4に
変換することができ、その中間言語プログラム4を同一
のコード生成部12を用いて1つの低級言語プログラム
5に変換することが可能となる。
【0026】これにより、複数種類の高級言語プログラ
ム3に対して、同一のコード生成部12やコード生成部
12中で用いられる最適化プログラム等を共通に利用す
ることができる。また、複数種類の高級言語プログラム
3を同一種類の低級言語による低級言語プログラム5に
変換できるので、異種の高級言語プログラム3の間のイ
ンタフェースが容易になり、複数種類の高級言語プログ
ラム3に基づく複数の低級言語プログラム5をリンクす
ることが可能になる。
【0027】
【発明の効果】以上説明したように本発明は、意味解析
部(意味解析部群)とコード生成部(コード生成部群)
とが共通に利用する大域的なデータ領域を廃止し、中間
言語プログラムのみで意味解析部とコード生成部との間
の情報の受け渡しを行う。また、中間言語プログラムを
プログラムの記述に適した記号表現として設計する。こ
れらのことにより、以下に示すような効果がある。
【0028】■  高級言語によって記述不可能なプロ
グラムまたは高級言語プログラムとコンパイラとが用い
られて作成された低級言語プログラム以上の性能が要求
されるプログラムを、中間言語を用いて容易に記述する
ことができる(中間言語記述プログラムの利用が可能に
なる)。
【0029】■  ある低級言語プログラムを生成する
ために作成された高性能な中間言語記述プログラムを、
異種の低級言語プログラムの生成のために流用すること
ができる。
【0030】■  同一のコード生成部やコード生成部
中で用いられる最適化プログラム等を、複数種類の高級
言語プログラムをコンパイルする際に共用することがで
きる。
【0031】■  異種の高級言語プログラムの間のイ
ンタフェースが容易になり、それらの高級言語プログラ
ムに基づく複数(種類は1つ)の低級言語プログラムを
リンクすることができる。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】図1に示すコンパイラの具体的な構成の一例を
示すブロック図である。
【図3】図1に示すコンパイラの具体的な構成の他の例
を示すブロック図である。
【図4】従来のコンパイラの構成の一例を示すブロック
図である。
【符号の説明】
1  意味解析部群 2  コード生成部群 3,3−1,3−2,3−3  高級言語プログラム4
  中間言語プログラム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  高級言語プログラムを低級言語プログ
    ラムに変換するコンパイラにおいて、高級言語プログラ
    ムを解析しプログラムの記述に適した記号表現として設
    計された中間言語プログラムを生成する意味解析部群と
    、この意味解析部群により生成された中間言語プログラ
    ムに基づいて低級言語プログラムを生成するコード生成
    部群とを有することを特徴とするコンパイラ。
JP1705091A 1991-01-17 1991-01-17 コンパイラ Pending JPH04243429A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1705091A JPH04243429A (ja) 1991-01-17 1991-01-17 コンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1705091A JPH04243429A (ja) 1991-01-17 1991-01-17 コンパイラ

Publications (1)

Publication Number Publication Date
JPH04243429A true JPH04243429A (ja) 1992-08-31

Family

ID=11933168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1705091A Pending JPH04243429A (ja) 1991-01-17 1991-01-17 コンパイラ

Country Status (1)

Country Link
JP (1) JPH04243429A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524875A (ja) * 2003-01-10 2007-08-30 ネクサウェブ テクノロジーズ インコーポレイテッド ネットワーク・ベースの処理のためのシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524875A (ja) * 2003-01-10 2007-08-30 ネクサウェブ テクノロジーズ インコーポレイテッド ネットワーク・ベースの処理のためのシステムおよび方法

Similar Documents

Publication Publication Date Title
Berwick et al. The role of grammars in models of language use
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JPH11288375A (ja) 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体
Pearse et al. Experiences developing and maintaining software in a multi-platform environment
JPH04243429A (ja) コンパイラ
Ben-Ari Objects never? Well, hardly ever!
EP0803806A2 (en) Data conversion mechanism for computer system
JPH04137073A (ja) 設計図面作成装置
JPH01175035A (ja) 多言語処理コンバータ
JPH0430239A (ja) コマンドオプション指定処理装置
Bulyonkov Mixed computation in novosibirsk
JPH03144832A (ja) プリコンパイラ言語プログラムのシンボリックデバッグ装置
Kwiatkowski et al. Pre-processing cobol programs for reverse engineering in a software maintenance tool
JPH04177427A (ja) プログラム木構造図作成装置
Organick et al. Transformation of Ada programs into silicon
JPH08286927A (ja) アセンブラ処理方式
JPS59231649A (ja) コンパイルリスト出力処理方式
JPH0293731A (ja) 言語変換器生成装置
Bagert Jr Imegs: an incremental multi-language editor generator and system (programming languages)
JPH01292526A (ja) プログラムの連繋編集方式
JPS60217437A (ja) プログラムコンパイル方式
Pavlů EVALUATION OF ATTRIBUTES FOR L-ATTRIBUTED GRAMMARS
Sha et al. Real-Time Computing with IEEE Futurebus
Rodrigues et al. On the specification of a component repository
Dinmore et al. Literacy for the Masses: Integrating Software and Knowledge Reuse for End-User Developers Through Literate Programming