JPH07121379A - 複数言語混在コンパイラ - Google Patents

複数言語混在コンパイラ

Info

Publication number
JPH07121379A
JPH07121379A JP26932993A JP26932993A JPH07121379A JP H07121379 A JPH07121379 A JP H07121379A JP 26932993 A JP26932993 A JP 26932993A JP 26932993 A JP26932993 A JP 26932993A JP H07121379 A JPH07121379 A JP H07121379A
Authority
JP
Japan
Prior art keywords
language
intermediate text
translation
text
information
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
JP26932993A
Other languages
English (en)
Inventor
Keigo Matano
圭吾 俣野
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 JP26932993A priority Critical patent/JPH07121379A/ja
Publication of JPH07121379A publication Critical patent/JPH07121379A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 複数の言語により記述されている、複数言語
混在のソースプログラムを単一のコンパイラにより翻訳
できるようにし、翻訳速度の向上をはかる。 【構成】 読込部3が、言語A,言語Bにより記述され
た複数言語混在ソースプログラムを読み込む際に、言語
B記述部分認識手段4により、言語A記述部分と、言語
B記述部分を切りわけ、中間テキスト生成手段により、
各言語ごとに別々の中間テキストを生成する。それぞれ
の中間テキストは、構文解析部7において、各言語ごと
に独立した構文解析翻訳手段により、それぞれの言語仕
様に則った構文解析と翻訳が行われ、各言語ごとの翻訳
結果を生成する。これらの翻訳結果は、オブジェクト生
成部10において、翻訳結果結合手段11により結合さ
れ、オブジェクト生成手段12によってコンパイルユニ
ット13を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子計算機プログラム
言語の処理プロセッサに関し、特に、複数言語混在コン
パイラにする。
【0002】
【従来の技術】COBOLプログラム埋め込み型データ
ベース言語SQLのように、それぞれ異なった言語仕様
を持つ複数のプログラム言語を用いて一つのソースプロ
グラムを記述した場合、複数言語が混在したソースプロ
グラムが生成される。
【0003】このようなソースプログラムをコンパイル
する場合、従来はプリコンパイラによって、埋め込まれ
た言語によるソースプログラムの記述をもう一方の言語
による記述に置換した後、その言語のコンパイラを起動
することにより実現している。
【0004】この例を、図面により説明する。図5は、
従来のプリコンパイラ方式の1例である。複数言語が混
在したソースプログラム500 は、言語Bプリコンパイラ
501によって、言語Aのみで記述されたソースプログラ
ム507 へと変換され、その後、言語Aコンパイラ508 に
よリコンパイルユニット512 へと変換されている。
【0005】
【発明が解決しようとする課題】上述した従来の技術で
は、プリコンパイラの起動後に、もう一度コンパイラを
起動するため、コンパイルユニット生成までの時間が余
分にかかると言う問題点がある。
【0006】また、一方の言語による記述を、もう一方
の言語による記述に一旦置き換えるため、一方の言語仕
様が、もう一方の言語仕様により制限されることがあ
る。
【0007】また、ソースの記述言語の種類を増やすこ
とが困難である。
【0008】
【課題を解決するための手段】本発明の複数言語混在コ
ンパイラは、電子計算機のプログラム言語において、複
数の言語仕様の異なる言語により記述されているソース
プログラム中の、言語が切り換わる切れ目を認識する認
識手段と、ソースプログラムを、言語の切れ目によって
切りわけ、言語ごとに中間テキストを生成する中間テキ
スト生成手段と、それぞれの中間テキストを、言語ごと
に構文解析および翻訳する構文解析翻訳手段と、翻訳さ
れた複数の翻訳結果を結合する翻訳結果結合手段と、結
合された中間テキストをオブジェクトコードに変換する
オブジェクト生成手段とを含むことを特徴とする。
【0009】
【実施例】次に、本発明について図面を参照して説明す
る。
【0010】図1は、本発明の一実施例を示す構成図で
ある。本発明の一実施例である複数言語混在コンパイラ
2は、複数言語混在ソースプログラム1を入力し、コン
パイルユニット13を出力する。
【0011】言語混在プロセッサ2は、言語B記述部分
認識手段4、言語A中間テキスト生成手段5、言語B中
間テキスト生成手段6よりなる読込部3と、言語A構文
解析翻訳手段8、言語B構文解析翻訳手段9よりなる構
文解析部7と、翻訳結果結合手段11、オブジェクト生
成手段12よりなるオブジェクト生成部10とにより構
成される。
【0012】図2は、読込部3の動作を表した流れ図で
ある。
【0013】図3は、構文解析部7の動作を表した流れ
図である。
【0014】図4は、オブジェクト生成部10の動作を
表した流れ図である。
【0015】以下に、図1から図4までを用いて、図1
に示す実施例の動作を説明する。
【0016】言語A,言語Bによって書かれた複数言語
混在ソースプログラム1は、読込部3により読み込ま
れ、言語A中間テキスト14、言語B中間テキスト15
を生成する。
【0017】読込部3は、ソースプログラム1から1レ
コード入力(ステップ201)し、ソースの終了(ステ
ップ202)でなければ、そのレコード中に言語Bによ
る記述の開始キーワードの有無を判定(ステップ20
3)する。
【0018】開始キーワードが存在しない場合、そのレ
コードは言語Aにより記述されている為、言語Aの言語
仕様に基づいて言語A中間テキスト14を作成(ステッ
プ204)する。
【0019】開始キーワードが存在する場合、それ以降
のソースから言語B終了キーワードを捜し出し(ステッ
プ205)、開始キーワードから終了キーワードまでの
ソースは言語Bにより記述されているので、言語Bの言
語仕様に基づいて言語B中間テキスト15を作成(ステ
ップ206)する。
【0020】そして、言語A中間テキスト14上の、言
語Bテキストが存在した部位に、言語B中間テキスト結
合情報を埋め込む(ステップ207)。
【0021】読込部3で作成された、言語A中間テキス
ト14、言語B中間テキスト15は、構文解析部7で読
み込まれ構文解析および翻訳された後、言語A翻訳結果
16、言語B翻訳結果17に出力される。
【0022】構文解析部7は、言語A中間テキスト14
を入力(ステップ301)し、中間テキストの終了(ス
テップ302)でなければ、入力されたテキストが読込
部3で埋め込まれた言語B埋め込み情報であるかを調べ
(ステップ303)、言語B埋め込み情報でなければ、
言語A構文解析/翻訳手段8により、構文解析と翻訳を
行い(ステップ304)、言語A翻訳結果16を出力す
る。
【0023】中間テキストの内容が言語B埋め込み情報
の場合は、その埋め込み情報に対応する言語B中間テキ
スト15を入力(ステップ305)し、言語B構文解析
/翻訳手段9により、構文解析と翻訳を行い(ステップ
306)、言語B翻訳結果17を出力する。このとき、
言語Bの構文解析時のエラーについての情報は、言語A
翻訳結果16上の、対応する言語Bの記述があった位置
に埋め込まれる(ステップ307)。
【0024】構文解析部7で作成された、言語A翻訳結
果16、言語B翻訳結果17は、オブジェクト生成部1
0で読み込まれ、コンパイルユニット13を作成する。
【0025】オブジェクト生成部10は、言語A翻訳結
果16を入力し(ステップ401)、翻訳結果の終了
(ステップ402)でなければ、入力された情報が言語
B埋め込み情報かを調べ(ステップ403)、言語B埋
め込み情報ならば、それに対応する言語B翻訳結果17
を結合する(ステップ405)。そして、この結合され
た翻訳結果に対してオブジェクトを生成する(ステップ
404)。
【0026】
【発明の効果】本発明は、以上に説明したように、複数
の言語により記述されているソースプログラムを翻訳す
る場合、一方の言語による記述をもう一方の言語による
記述に置き換えるという処理を行わず、単一のコンパイ
ラによって処理を行うために、翻訳速度が向上するとい
う効果を奏する。
【0027】また、それぞれの言語の構文解析,翻訳が
独立して行われるので、一方の言語の記述が、他の言語
の言語仕様により制限を受けることがない。
【図面の簡単な説明】
【図1】本発明の一実施例の構成図である。
【図2】図1中の読込部の動作を表した流れ図である。
【図3】図1中の構文解析部の動作を表した流れ図であ
る。
【図4】図1中のオブジェクト生成部の動作を表した流
れ図である。
【図5】従来のプリコンパイラ方式を例示する構成図で
ある。
【符号の説明】
1 言語A,言語Bが混在しているソースプログラム 2 複数言語混在コンパイラ 3 読込部 4 言語B記述部分認識手段 5 言語A中間テキスト生成手段 6 言語B中間テキスト生成手段 7 構文解析部 8 言語A構文解析/翻訳手段 9 言語B構文解析/翻訳手段 10 オブジェクト生成部 11 翻訳結果結合手段 12 オブジェクト生成手段 13 コパイルユニット 14 言語A中間テキスト生成手段が生成した言語A中
間テキスト 15 言語B中間テキスト生成手段が生成した言語B中
間テキスト 16 言語A構文解析翻訳手段が生成した言語A構文解
析,翻訳結果 17 言語B構文解析翻訳手段が生成した言語B構文解
析,翻訳結果 200 読込部開始 201 ソース入力処理 202 ソースの終わり判定処理 203 言語Bの記述部分の先頭の判定処理 204 言語A記述による言語Aの中間テキストの生成
処理 205 言語Bの記述部分の終端を判定し、言語Bの記
述の取得処理 206 言語B記述による言語Bの中間テキストの生成
処理 207 言語B埋め込み情報の言語Aの中間テキスト上
への生成処理 208 読込部終了 300 構文解析部開始 301 言語A中間テキスト入力処理 302 言語A中間テキストの終わり判定処理 303 言語B埋め込み情報判定処理 304 言語A構文解析/翻訳処理 305 言語B埋め込み情報に対応する言語B中間テキ
スト入力処理 306 言語B構文解析,翻訳処理 307 言語B構文解析翻訳情報の言語A翻訳結果上へ
の生成処理 308 構文解析部終了 400 オブジェクト生成部開始 401 言語A翻訳結果入力処理 402 言語A翻訳結果の終わり判定処理 403 言語B埋め込み情報判定処理 404 オブジェクト生成処理 405 言語B埋め込み情報に対応する言語B翻訳結果
結合処理 406 オブジェクト生成部終了 500 言語A,言語Bが混在しているソースプログラ
ム 501 言語Bプリコンパイラ 502 言語B記述部分認識手段 503 言語B中間テキスト生成手段 504 言語B構文解析/翻訳手段 505 言語Bオブジェクト生成手段 506 オブジェクト結合手段 507 言語Aによるソースプログラム 508 言語Aコンパイラ 509 言語A中間テキスト生成手段 510 言語A構文解析翻訳手段 511 言語Aオブジェクト生成手段 512 コンパイルユニット 513 ソースプログラム中の言語A記述部分のテキス
ト 514 言語B中間テキスト 515 言語B翻訳結果 516 言語Aで記述された言語Bプリコンパイラのオ
ブジェクト 517 言語A中間テキスト 518 言語A翻訳結果

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 電子計算機のプログラム言語において、 複数の言語仕様の異なる言語により記述されているソー
    スプログラム中の、言語が切り換わる切れ目を認識する
    認識手段と、 ソースプログラムを、言語の切れ目によって切りわけ、
    言語ごとに中間テキストを生成する中間テキスト生成手
    段と、 それぞれの中間テキストを、言語ごとに構文解析および
    翻訳する構文解析翻訳手段と、 翻訳された複数の翻訳結果を結合する翻訳結果結合手段
    と、 結合された中間テキストをオブジェクトコードに変換す
    るオブジェクト生成手段とを含むことを特徴とする複数
    言語混在コンパイラ。
  2. 【請求項2】 読込部で、第1のソースプログラムから
    1レコード入力し、ソースの終了でなければ、そのレコ
    ード中に第1の言語による記述の開始キーワードの有無
    を判定し、開始キーワードが存在しない場合、第2の言
    語の言語仕様に基づいて第2の言語中間テキストを作成
    し、開始キーワードが存在する場合、それ以降のソース
    から前記第1の言語の終了キーワードを捜し出し、前記
    第1の言語の言語仕様に基づいて第1の言語中間テキス
    トを作成し、前記第2の言語中間テキスト上の、前記第
    1の言語テキストが存在した部位に、前記第1の言語中
    間テキスト結合情報を埋め込み、前記読込部で作成され
    た前記第1の言語中間テキスト,前記第2の言語中間テ
    キストを、構文解析部で読み込み構文解析および翻訳し
    た後、第1,第2の言語翻訳結果として出力し、前記構
    文解析部で、前記第2の言語中間テキストを入力し、中
    間テキストの終了でなければ、入力されたテキストが前
    記読込部で埋め込まれた前記第1の言語の埋め込み情報
    であるかを調べ、前記第1の言語の埋め込み情報でなけ
    れば、第2の言語構文解析翻訳手段により、構文解析と
    翻訳を行い、第2の言語翻訳結果として出力し、中間テ
    キストの内容が前記第1の言語の埋め込み情報の場合
    は、その埋め込み情報に対応する前記第1の言語中間テ
    キストを入力し、第1の言語構文解析翻訳手段により、
    構文解析と翻訳を行い、前記第1の言語翻訳結果として
    出力し、このとき、前記第1の言語の構文解析時のエラ
    ーについての情報を、前記第2の言語翻訳結果上の、対
    応する言語の記述があった位置に埋め込み、前記構文解
    析部で作成された第1,第2の言語翻訳結果を、オブジ
    ェクト生成部で読み込み、コンパイルユニットを作成
    し、オブジェクト生成部で、前記第2の言語翻訳結果を
    入力し、翻訳結果の終了でなければ、入力された情報が
    前記第1の言語の埋め込み情報かを調べ、前記第1の言
    語の埋め込み情報ならば、それに対応する第1の言語の
    翻訳結果を結合し、この結合された翻訳結果に対してオ
    ブジェクトを生成することを特徴とする複数言語混在コ
    ンパイル方法。
JP26932993A 1993-10-28 1993-10-28 複数言語混在コンパイラ Withdrawn JPH07121379A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26932993A JPH07121379A (ja) 1993-10-28 1993-10-28 複数言語混在コンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26932993A JPH07121379A (ja) 1993-10-28 1993-10-28 複数言語混在コンパイラ

Publications (1)

Publication Number Publication Date
JPH07121379A true JPH07121379A (ja) 1995-05-12

Family

ID=17470849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26932993A Withdrawn JPH07121379A (ja) 1993-10-28 1993-10-28 複数言語混在コンパイラ

Country Status (1)

Country Link
JP (1) JPH07121379A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524875A (ja) * 2003-01-10 2007-08-30 ネクサウェブ テクノロジーズ インコーポレイテッド ネットワーク・ベースの処理のためのシステムおよび方法
JP2007304840A (ja) * 2006-05-11 2007-11-22 Matsushita Electric Ind Co Ltd コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム
JP2014048706A (ja) * 2012-08-29 2014-03-17 Kyocera Document Solutions Inc アプリケーション開発装置及びアプリケーション開発ツール
CN110489754A (zh) * 2019-08-20 2019-11-22 杭州数澜科技有限公司 快速生成标准语料的方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524875A (ja) * 2003-01-10 2007-08-30 ネクサウェブ テクノロジーズ インコーポレイテッド ネットワーク・ベースの処理のためのシステムおよび方法
JP2007304840A (ja) * 2006-05-11 2007-11-22 Matsushita Electric Ind Co Ltd コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム
JP2014048706A (ja) * 2012-08-29 2014-03-17 Kyocera Document Solutions Inc アプリケーション開発装置及びアプリケーション開発ツール
CN110489754A (zh) * 2019-08-20 2019-11-22 杭州数澜科技有限公司 快速生成标准语料的方法和系统
CN110489754B (zh) * 2019-08-20 2023-01-03 杭州数澜科技有限公司 快速生成标准语料的方法和系统

Similar Documents

Publication Publication Date Title
US9141603B2 (en) Computer program product and computer system for language-enhanced programming tools
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
US7707561B2 (en) Apparatus, system, and method for converting data
JPH11272672A (ja) 機械翻訳装置及び記録媒体
JPH07121379A (ja) 複数言語混在コンパイラ
MacLennan The Synmac syntax macroprocessor: Introduction and manual, version 5
Harsu Re-engineering legacy software through language conversion
Amal et al. Software tool for translating pseudocode to a programming language
Bianchi et al. Generating the analytic component parts of syntax-directed editors with efficient-error recovery
JPH08286927A (ja) アセンブラ処理方式
CN117008919A (zh) 仿真模型文件的解析方法、装置、电子设备及存储介质
JPH0752391B2 (ja) 複数データベース記述を含む原始プログラムの翻訳方式
JPH06242958A (ja) コンパイル方式
JPH02100732A (ja) プログラム文法チェック方式
JP2000242504A (ja) コンパイラ装置
JP2001034482A (ja) コンパイル装置、プログラム最適化装置、コンパイル処理方法及び記録媒体
JPH0561687A (ja) コンパイラの処理方式
Babich et al. An approach to compiler construction for a general-purpose simulation language
JPH056278A (ja) Fortranコンパイル処理装置
Vander Mey et al. SYMPLE: a general syntax directed macro preprocessor
JPH05313909A (ja) 中間コードインライン展開機能を有するコンパイラシステム
JPH06348465A (ja) プログラム作成支援装置
JPH04273534A (ja) プリコンパイル方式
JPH0659904A (ja) プログラムの字句解析方法
JPH04323730A (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: 20010130