JPH02264333A - 中間言語展開処理方式 - Google Patents

中間言語展開処理方式

Info

Publication number
JPH02264333A
JPH02264333A JP8634789A JP8634789A JPH02264333A JP H02264333 A JPH02264333 A JP H02264333A JP 8634789 A JP8634789 A JP 8634789A JP 8634789 A JP8634789 A JP 8634789A JP H02264333 A JPH02264333 A JP H02264333A
Authority
JP
Japan
Prior art keywords
processing
intermediate language
operand
program
instruction
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
JP8634789A
Other languages
English (en)
Inventor
Hiroko Matsui
松井 弘子
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP8634789A priority Critical patent/JPH02264333A/ja
Publication of JPH02264333A publication Critical patent/JPH02264333A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機のプログラムの翻訳過程において、プログラムを
中間言語の命令のプログラムへ変換するための処理に関
し、 中間言語への変換処理を行うプログラムをコンパクトに
構成し、処理誤り等の発生を減少できる中間言語展開処
理方式を目的とし、 所定の記述言語で記述されたプログラムから、該プログ
ラムに対応する中間言語のテキストを生成する計算機に
おいて、該プログラムの解析結果に従って、該プログラ
ムの各文を、該文のオペレーション指定に対応して定ま
る中間言語の命令に変換した一次変換出力を生成する手
段を設け、該一次変換出力について、所定の各該命令の
各オペランドが配列データであることを、該オペランド
の所定の形式によって識別した場合には、該命令のオペ
ランドを単純データに変換すると共に、該配列データと
該単純データとを等値にする所要の中間言語の命令を挿
入するように構成する。
〔産業上の利用分野〕
本発明は、計算機のプログラムの翻訳過程において、プ
ログラムを中間言語の命令のプログラムへ変換するため
の、中間言語展開処理方式に関する。
〔従来の技術と発明が解決しようとする課題〕第3図は
計算機において、所定の記述言語で記述された原始プロ
グラムlから所定の計算機で実行される目的プログラム
2に翻訳する場合の構成例を示すブロック図であり、解
析処理部3は原始プログラムlを入力して、原始プログ
ラムを構成する各文について構文解析及び意味解析を行
うことにより、解析結果4を生成する。
解析結果4は原始プログラムの各文について、その文を
構成するオペレーションを示す記号や、オペランドの変
数、定数等をそれぞれノードとして、それらの関係を示
す枝でつないだ木構造であり、展開処理部5はこの解析
結果4を処理して、中間言語の命令に変換した中間言語
テキスト6を生成し、この中間言語テキスト6を変換処
理部7が変換して所定の計算機の目的プログラム2を生
成する。
展開処理部5は、算術演算の結果を代入する、A(1)
、B(J)−C のような原始プログラム文の場合に、その解析結果4の
「代入」オペレーションに対応して、「代入」処理モジ
エールを起動するが、解析結果4によって「代入」のオ
ペランドがA(1)と「減算」オペレーションの結果と
であることが分かるので、「代入」処理モジュールから
「減算」処理モジュールが呼ばれて、「減算」処理モジ
ュールは解析結果4に従ってB (J)−Cに対応する
中間言語命令を生成する。
その場合、中間言語の命令のうち、「代入」に相当する
LOAD、、5TORE等以外の、「減算」等の算術演
算命令その他では、単純データのみをオペランドにする
ようになっているので、展開処理部5は先ずオペランド
となるデータ(この、場合B (J)とC)のデータ型
をチエツクし、単純データで無い場合には、必要な単純
データの一時変数を作業用に設けて、それに変換した後
に指定の演算を行うように所要のプログラムを挿入する
展開処理部5の主要部は各オペレージリン別にの対応す
る中間言語命令を生成する各処理モジュールからなるが
、前記の処理のためにそれらの各処理モジュールは第4
図に示すように、処理ステップ10で先ずオペランドの
データ型をチエツクし、単純型のデータで無い場合に、
処理ステップ11で識別してオペランドが他の演算結果
でない場合には、配列データであるので処理ステップ1
2で一次変数Tiを導入して単純型データに変換するた
めの中間言語テキストを生成して出力する。
処理ステップ13で識別して以上の処理をその演算で必
要なすべてのオペランドについて実行した後、処理ステ
ップ14で単純データに変換したオペランドを設定した
演算命令を生成する。こ−でオペランドのデータ型等は
解析処理部3で解析され、その結果が解析結果4の各オ
ペランドに対するノードの情報として示されているもの
とする。
処理ステップ11で他の演算結果をオペランドとすると
識別した場合には、処理ステップ15で該当の処理モジ
ュールを呼び出し、処理ステップ16でその処理結果を
持つ一時変数を受は取る。
以上の処理により、前記例の原始プログラム文^(1)
、B(J)−C に対して、「減算」処理モジュールによって、LOAD
 Tl−B(J) のような、配列データBCJ)の値を一時変数T1にロ
ードする中間言語の命令が追加された後に、「減算・」
の命令である、 5LIB Tg、T1.C の様な中間言語命令が生成される。こ−でTgは減算結
果を持つ一時変数であって、「代入」処理モジエールは
それを受けて、 5TORI! A(I)、↑茸 のような、「代入」に相当する中間言語命令を生成する
以上のような処理が各種演算命令のモジエールについて
必要になるので、配列データと単純デ−夕とで値を交換
するための処理ルーチンを各演算命令処理モジュールに
設ける必要があり、そのために類似の処理ルーチンが多
数設けられて、展開処理部5の規模が大きくなり、それ
に伴って処理の指定を誤ることも多くなる。
本発明は中間言語への変換処理を行うプログラムをコン
パクトに構成し、処理誤り等の発生を減少できる中間言
語展開処理方式を目的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
図は中間言語展開処理方式の構成を示し、所定の記述言
語で記述されたプログラム1から、該プログラムに対応
する中間言語テキスト6を生成する解析処理部3、展開
処理部20を有する計算機において、展開処理部20に
はプログラム1の解析結果4に従って、プログラム1の
各文を、構文のオペレーション指定に対応して定まる中
間言語の命令に変換した一次変換出力21を生成する手
段である変換部21を設け、出力部23が一次変換出力
22について、所定の各該命令の各オペランドが配列デ
ータであることを、該オペランドの所定の形式によって
識別した場合には、該命令のオペランドを単純データに
変換すると共に、該配列データと該単純データとを等値
にする所要の中間言語の命令を挿入して中間言語テキス
ト6を出力する。
〔作 用〕
以上の処理方式により展開処理部20が、データ型に関
わらず形式的に中間言語命令にオペランドを割り当てて
一次変換出力を生成する変換部と、その結果について中
間言語命令を走査してデータ型に従って行う処理を一括
した出力部とに明確に分離されるので、展開処理部がコ
ンパクトになり、誤りの発生も少なくすることができる
〔実施例〕
第1図の計算機において、解析処理部3は従来のように
原始プログラム1の構文解析及び意味解析を行うことに
より、解析結果4を生成する。
展開処理部20の変換部21はこの解析結果4を従来の
ように処理し、但しオペレーションに対応する各処理モ
ジュールはオペランドのデータ型を考慮しないで、対応
する中間言語命令に形式的にオペランドを割り付けて、
一次変換出力22を出力し、出力部23がこの一次変換
出力22についてデータ型に関わる処理を行って、所要
の中間言語命令を挿入し、オペランドを修正した中間言
語テキスト6を生成する。この中間言語テキスト6は従
来と同様に第3図に示した変換処理部7が変換して所定
の計算機の目的プログラム2を生成する。
前記と同様の原始プログラム文A(1)・B(J)−C
を例として、変換部21はその解析結果4の「代入」オ
ペレーションに対応して、「代入」処理モジュールを起
動すると、従来の場合と同様にして「代入」処理モジュ
ールから「減算J処理モジュールが呼ばれて、「減算」
処理モジュールは解析結果4に従ってB(J)−Cに対
応する中間言語命令を生成するが、変換処理部21はオ
ペランドのデータ型をチエツクすることなく、それらを
オペランドに割り付けて命令を生成し一次変換出力とす
る。
即ち、変換部21の各オペレーション別の処理モジュー
ルは、例えば第2図(a)に示すように、処理ステップ
30で識別してオペランドが他の演算結果でない場合に
は、処理ステップ31でそれを演算命令の所定のオペラ
ンドとして割り付け、処理ステップ32で識別して以上
の処理をその演算で必要なすべてのオペランドについて
実行した後、処理ステップ33で割り付けたオペランド
を設定した演算命令を生成して一次変換出力とする。
処理ステップ30で他の演算結果をオペランドとすると
識別した場合には、処理ステップ34で該当の処理モジ
ュールを呼び出し、処理ステップ35でその処理結果を
持つ一時変数を受は取る。
以上の処理により、減算部分に対して、5IJB T1
.B(J)、C が出力され、「代入」処理モジュールからは、5TOR
E^(1)、T。
が出力される。
出力部23は、このような一次変換出力22の各命令に
ついて、例え・ば第2図(b)の処理の流れにより、先
ず処理ステップ40で中間言語命令のオペレージリンコ
ードを識別して、オペランドに配列データを許さない命
令であれば、処理ステップ41でそのオペランドの1つ
について配列データか識別し、配列データであれば処理
ステップ42で前記従来の場合のように、−次変数を導
入して単純型データに変換するための中間言語テキスト
を生成して出力し、処理ステップ43で演算命令の元の
オペランドをその一次変数に変更する。
処理ステップ44で識別して以上の処理をその演算で必
要なすべてのオペランドについて実行して1命令につい
ての処理を終わる。
以上の処理により、前記例の一次変換出力から、中間言
語テキスト6として従来と同様の、LOAD Tz、B
(J) SOB T+、Tt、C 3TORE!^(1)、T。
が生成される。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算機
のプログラムの翻訳過程の中間言語命令に変換する処理
において、変換処理を行うプログラムをコンパクトに構
成し、処理誤り等の発生を減少できるので、計算機の経
済性及び信頼性を改善するという著しい工業的効果があ
る。
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、第2図は本発
明の処理の流れ図、 第3図は従来の構成例を示すブロック図、第4図は従来
の処理の流れ図である。 図において、 lは原始プログラム、 2は目的プログラム、3は解析
処理部、   4は解析結果、5.20は展開処理部、
 6は中間言語テキスト、10〜16.30〜35.4
0〜44は処理ステップ、21は変換部、     2
2は一次変換出力、本発明の構成を示すブロック図 第1図 従来の構成例を示すブロック図 第3図 本発明の処理の流れ図 第2図 (el 従来の処理の流れ図 第4図

Claims (1)

  1. 【特許請求の範囲】 所定の記述言語で記述されたプログラム(1)から、該
    プログラムに対応する中間言語のテキスト(6)を生成
    する計算機(3、20)において、 該プログラム(1)の解析結果(4)に従って、該プロ
    グラムの各文を、該文のオペレーション指定に対応して
    定まる中間言語の命令に変換した一次変換出力(22)
    を生成する手段(21)を設け、該一次変換出力(22
    )について、所定の各該命令の各オペランドが配列デー
    タであることを、該オペランドの所定の形式によって識
    別した場合には、該命令のオペランドを単純データに変
    換すると共に、該配列データと該単純データとを等値に
    する所要の中間言語の命令を挿入する(23)ように構
    成されていることを特徴とする中間言語展開処理方式。
JP8634789A 1989-04-05 1989-04-05 中間言語展開処理方式 Pending JPH02264333A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8634789A JPH02264333A (ja) 1989-04-05 1989-04-05 中間言語展開処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8634789A JPH02264333A (ja) 1989-04-05 1989-04-05 中間言語展開処理方式

Publications (1)

Publication Number Publication Date
JPH02264333A true JPH02264333A (ja) 1990-10-29

Family

ID=13884334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8634789A Pending JPH02264333A (ja) 1989-04-05 1989-04-05 中間言語展開処理方式

Country Status (1)

Country Link
JP (1) JPH02264333A (ja)

Similar Documents

Publication Publication Date Title
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JPH05346332A (ja) 試験プログラム実行方法
US6233732B1 (en) Compiling system using intermediate codes to store a plurality of values
JPH02264333A (ja) 中間言語展開処理方式
JPH10187461A (ja) 言語処理方式
JPH04286029A (ja) ソースプログラム・コンバータ
JPS6022373B2 (ja) プログラマブル制御装置のプログラム変換機構
JP2002312167A (ja) 変数の値をコンピュータに算出させるためのプログラム、コンパイルプログラム、変数値確定方法およびプログラム生成方法
JPH02253443A (ja) プログラム生成方法
JPS6365530A (ja) コ−ド最適化方式
JPH07105014A (ja) 言語処理システムのシンボル処理方式
CN120610714A (zh) 同步建模语言代码生成器的高可信构造及其形式化验证方法
JPH0236419A (ja) ソースコードの自動翻訳実行方式
JP2728504B2 (ja) 入力命令文検査装置
JPH01230132A (ja) ジェネレータ
JPS61216085A (ja) ベクトル処理プログラム生成方式
JPH04248624A (ja) プログラム変換処理装置
JPH0561687A (ja) コンパイラの処理方式
JPH02222032A (ja) 加減算命令の最適化方式
JPH03121531A (ja) ジョブ制御文処理方式
JPS6297031A (ja) 仮数部のビツト数整合方式
JPH05143357A (ja) プログラム自動並列化方法
JPH0580998A (ja) 翻訳処理方式
JPH03152626A (ja) パターンマッチング処理方式
JPH0385639A (ja) プログラム言語翻訳機