JPH0756745A - 言語処理プログラムのコンパイラ処理方式 - Google Patents

言語処理プログラムのコンパイラ処理方式

Info

Publication number
JPH0756745A
JPH0756745A JP5201339A JP20133993A JPH0756745A JP H0756745 A JPH0756745 A JP H0756745A JP 5201339 A JP5201339 A JP 5201339A JP 20133993 A JP20133993 A JP 20133993A JP H0756745 A JPH0756745 A JP H0756745A
Authority
JP
Japan
Prior art keywords
optimization
processing
program
code
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.)
Pending
Application number
JP5201339A
Other languages
English (en)
Inventor
Masaharu Inoue
雅春 井上
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 JP5201339A priority Critical patent/JPH0756745A/ja
Priority to EP94112667A priority patent/EP0638862B1/en
Priority to DE69428951T priority patent/DE69428951T2/de
Publication of JPH0756745A publication Critical patent/JPH0756745A/ja
Priority to US08/871,627 priority patent/US5758164A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

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)【要約】 【目的】ソースプログラムを機械語プログラムに翻訳す
るコンパイラにおいて、構文解析時に最適化可能な部分
を判断し、最適化可能な部分のみを最適化処理すること
によって最適化処理にかかる時間を最小にする。 【構成】ソースプログラム7をコンパイラ1に入力する
と、構文解析部2で構文解析を行ない、最適化可否情報
生成部3で最適化可否の判断を行ない、最適化可否情報
を持つ中間コード8を生成し、最適化可否判断部4にて
最適化可能な部分のみ最適化処理部5で最適化処理を行
ない最適化処理済みの中間コード9を生成し、コード生
成部6で機械語プログラム10を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は言語処理プログラムのプ
ログラム処理方式に関し、とくにプログラムの最適化処
理に関する。
【0002】
【従来の技術】一般に、コンピュータに動作を指示する
機械語のプログラムはコンピュータが実行できるよう
に、2進数や16進数などの数字の列で表現される。こ
の数字の列は理解するには複雑過ぎるため、プログラム
開発者は理解しやすい表現を用いた高級言語のプログラ
ム(以下ソースプログラムという)を作成し、この言語
処理プログラムがソースプログラムを機械語に翻訳し、
コンピュータに渡して実行させる。コンパイラはこの翻
訳を行なう言語処理プログラムの1つである。
【0003】以下に従来技術の一例を、図13の構成図
により説明する。プログラム開発者は、ソースプログラ
ム7を作成し、コンパイラ1aに入力する。ソースプロ
グラム7を入力されたコンパイラ1aは構文解析部2a
にてそのプログラムの解析をし、中間コード8aを出力
する。中間コードとはプログラマによってソースプログ
ラム上に記述された情報が、言語処理プログラムで処理
し易い形態に変換された情報の集まりである。
【0004】次に、一例として挙げる中間コードは三番
地文と呼ばれ、次の表1のような形を持つ文の列であ
る。
【0005】
【表1】
【0006】上の表1でA,B,Cは定数かプログラマ
が定義した名前かコンパイラが生成した名前である。
3),4)でgotoLはラベルLが示す位置へプログ
ラムの流れが移ることを示す。ラベルとは、プログラム
の制御を移す場合にプログラムの位置を示したり、記憶
領域の場所を示すためにプログラム中に記述される名札
である。また、4)のrelopは<,>,<>,=,
などで大小関係,当否関係を表す。また、2)の特別な
形としてA:=Bがあり、Bの値をAに代入することを
意味する。
【0007】例えば、次の表2に示されるC言語で書か
れたソースプログラムは、構文解析部2aでプログラム
は三番地文1、プログラム2は三番地文2に変換され
る。
【0008】
【表2】
【0009】図13において、構文解析部2aが中間コ
ード8aを出力した後、最適化処理部5aで無駄な三番
地文を削除したり、実行時間が早くなるように三番地文
を置換したりする。
【0010】図14は従来の最適化処理の一例の動作手
順を示す流れ図である。まず、ステップ101で処理を
初め、ステップ102で三番地文を最初から読み初め、
最適化処理(ステップ104a)を行い、中間コード8
aを最後まで処理したと判断されるまで中間コード8a
の読込みを行い(106)、最適化処理104aを繰り
返す。ステップ107で中間コードに変更があったと判
断した場合にはステップ102に戻り、再び最適化処理
を行なう。再び最適化処理を行なう理由は、最適化処理
により三番地文が変わった場合、新たに最適化が行なわ
れる可能性があるためである。最適化処理を行なっても
中間コードに変更がなかったなら、それ以上最適化は起
こらないので処理を終る。
【0011】次に、一例として次の場合の最適化を考え
る。 1)ジャンプ文の飛び先が無条件ジャンプならば、ジャ
ンプ先を無条件ジャンプの飛び先に変えた方が実行効率
がよい。 2)どこからも飛んでこないラベルは削除できる。 3)無条件ジャンプの後の次のラベルまでの文は削除で
きる。
【0012】1)〜3)の最適化は図15の流れ図で示
される処理で実現される。この図15でCHGFLGは
三番地文が変えられた時に立てられるフラグで、最適化
処理が初められる時にリセットされ、三番地文に何らか
の変更が加えられた時にセットされる。最適化処理部
は、CHGFLGが立っている間は最適化を繰り返し最
大の最適化効果を得られるようにする。
【0013】図15の流れ図で実現される最適化を、次
の表3のソースプログラムに適応する例を考える。
【0014】
【表3】
【0015】このソースプログラムを構文解析部2aに
入力し、中間コード(この従来例では三番地コード)8
aに変換すると、次の表4のようになる。
【0016】
【表4】
【0017】図15において、ステップ201から処理
を初め、ステップ202でフラグCHGFLGをリセッ
トし、ステップ203で三番地コードを最初から読込
む。
【0018】読込まれた三番地コードがgotoL4な
ので、ステップ206でyesへ進む。次に、ステップ
207でジャンプ先が無条件ジャンプかどうかを調べ
る。L4の次の三番地文は条件ジャンプなのでnoを選
択し、ステップ213へ進む。もし、処理している三番
地文が無条件ジャンプの後でラベルの前ならば、ステッ
プ213〜218の処理で削除されるが、無条件ジャン
プのあとにすぐラベルが来ているので、ステップ216
でyesに進む。
【0019】三番地文は最終ではないので、ステップ2
21でnoを選択し、ステップ222で次の三番地コー
ドを読み込んだ後、ステップ206に処理を戻す。
【0020】次に、読込んだ三番地文はgotoL2な
ので、ステップ206でyesを選択し、ステップ20
7に進む。ジャンプ先の次の命令は無条件ジャンプなの
で、ステップ207ではyesを選択し2)の最適化を
行なうために、ステップ208でジャンプ先を無条件ジ
ャンプの飛び先にし、ステップ209でラベルの参照数
を補正した後、ステップ209で三番地文に変更があっ
たことを示すCHGFLGをセットする。
【0021】
【表5】
【0022】この段階での3番地コードとラベルの参照
数は、次の表6に示す通りである。
【0023】
【表6】
【0024】参照数が0になったとき、ラベルL2は最
適化3)で削除できるので、次の表7のようにステップ
212の処理で削除する。
【0025】
【表7】
【0026】次に、ステップ213に進み、さらにステ
ップ214に進む。ステップ214で読込んだ次の三番
地文はj:=2であるが3)の最適化により、ステップ
217の処理で削除され、ステップ218で三番地文に
変更があったことを示すCHGFLGをセットする。次
のgotoL5も同じ理由で、ステップ214〜218
の処理で、次の表8のように削除される。
【0027】
【表8】
【0028】以下同様に処理を進め最後の三番地コード
まで処理をしたものが、次の表9の三番地コードであ
る。
【0029】
【表9】
【0030】この時点でCHGFLGはセットされてい
るので、再び最初から最適化処理を行うが、もうこれ以
上の最適化は行われないのでつぎの最適化処理で三番地
文が変更されることはなく最適化は終了する。
【0031】以上の最適化処理により、最初の三番地コ
ードから3行の削除と2つのラベルの消去と2つの連続
ジャンプの解消ができた。最適化フェーズが最適化処理
を行なったら、次に機械語プログラムの生成を行なう。
【0032】コード生成部6は、三番地文を入力して、
機械語命令列に置き換える。三番地コードをどのような
機械語命令列に置き換えるかは、対象となる計算機がど
のような機械語命令を持つかに依存しているが、例えば
C:=A ADD Bに対しては、次の表10(A)の
機械語命令列に置き換え、ifA>BgotoLに対し
ては次の表10(B)の機械語命令列に置き換える。コ
ード生成部6がすべての三番地コードを機械語命令列
(10)に変換して、コンパイラは処理を終る。
【0033】
【0034】
【表10】
【0035】
【発明が解決しようとする課題】上述したように従来の
最適化処理は、無駄なコードを省くため、記憶領域を小
さくしプログラムを実行したときの速度を上げるのに有
効であるが、どの中間コードを削除してよいのかとかコ
ードを置き換えていいのかを判断するためには多くの情
報を集めたり、プログラムの流れを解析しなくてはなら
ないため、処理時間が長くなる。いかにして無駄な処理
に時間を浪費しないで処理を行なうかが問題となる。
【0036】本発明の目的は、最適化処理時間を短縮し
た言語処理プログラムのコンパイラ処理方式を提供する
ことにある。
【0037】
【課題を解決するための手段】本発明の構成は、構文解
析部にてプログラマが作成したプログラムを解析して中
間情報を出力し、最適化処理部にてコード生成時に効率
の良いコードを出力できるよう中間情報を処理し、コー
ド生成部にてコード生成を行なう言語処理プログラうの
コンパイラ処理方式において、前記構文解析部の構文解
析時に前記中間情報へ最適化の可否の範囲の情報を付加
して出力する情報生成手段と、前記最適化処理部の最適
化処理時に最適化の可否の前記範囲情報によりその最適
化を判断する最適化判断手段とを有することを特徴とす
る。
【0038】本発明によれば、構文解析時に最適化の不
必要な部分を判断し、中間情報に最適化可否情報を持た
せ、最適化処理時に最適化の可能性のない部分について
は最適化処理を行なわない様にし、最適化処理時間を短
くしている。
【0039】
【実施例】図1は本発明の一実施例を説明する構成図で
ある。プログラム作成者が作成したソースプログラム7
を入力されたコンパイラ1は、構文解析部2にてそのソ
ースプログラム7を解析し、中間コード8を作成するま
では、従来例と同じであるが、本実施例では構文解析部
内2の最適化可否情報生成部3で中間コード中に最適化
可能な範囲を示す情報を生成する。例えば、OPTBE
GとOPTENDという三番地文を三番地コードに追加
して、OPTBEGとOPTENDで挟まれた部分のみ
最適化の可能性があるとする。
【0040】最適化処理部5は、最適化処理判定部4で
最適化処理の可能な部分だけを判断し、その部分にのみ
最適化処理を施す。図2はこの最適化処理の概要の一例
を示す流れ図である。
【0041】まず、ステップ101から処理を始め、ス
テップ102で三番地文を最初から読始め、ステップ1
05で中間コードを最後まで処理したと判断されるまで
中間コードの読込み(ステップ106)、最適化処理
(ステップ104)を繰り返すが、ステップ103で最
適化処理を必要としているかどうかを判断し、不必要な
場合にはステップ104の処理をとばし、中間コードに
変更があった場合には、ステップ102に戻り、再び最
適化処理を行なう。
【0042】図3は従来例で示した表1の1)〜3)の
最適化を実現する図2の最適化処理(104)の流れ図
である。本実施例の最適化処理も、従来例の表3と同様
に、次の表11のプログラムをコンパイルするとする。
【0043】
【表11】
【0044】このソースプログラムを構文解析部2に入
力し、中間コード8に変換すると次の表12のようにな
る。
【0045】
【表12】
【0046】このプログラムの流れを制御する制御文は
単体では最善のコードが作られるように作られているの
で最適化の可能性はないが、制御文が組み合わせられて
いるプログラムでは最適化の可能性が出てくる。
【0047】ソースプログラムの1〜7行目までは、プ
ログラムの流れを制御する制御文が組合わせられている
ため、最適化出来る可能性があるが8行目以降はその可
能性はないので1〜7行目に対応する三番地コードの前
後にOPTBEGとOPTENDを出力し最適化の可能
性があることを示す。
【0048】最適化処理部5は、ステップ201から処
理を始め、ステップ204でOPTBEGを見つけたら
ステップ106〜118の最適化処理を行ない、ステッ
プ215でOPTENDを見つけるまで最適化処理を行
なう。この最適化処理(206〜218)で行なってい
ることは従来例の処理と同様である。以上のようにOP
TBEGからOPTENDまでの三番地コードを最適化
処理を行ない、16行目以降の三番地文はステップ20
4,205のループで読飛ばし最後の三番地文まで処理
を行う。三番地コードに変更があった場合にはCHGF
LGをセットし、CHGFLGが立っている間最適化処
理を繰り返す点も従来例と同様である。
【0049】この最適化処理部5の処理が終ったら、三
番地文の中間コード9を機械語プログラム10に変換す
るが、その処理は従来例で示した処理と同様である。
【0050】次に、ループ内不変式のループ外への移動
に本発明を適応する例を説明する。ループ内で不変な結
果を持つ式はループ内で毎回計算する必要がなく、始め
にループ外で計算しループ内部では計算結果のみを使用
する方が実行時間の点で効率がよい。
【0051】ループ外への不変式の移動を行なうために
は、1)ループの検出、および2)不変式の検出の2つ
が必要である。
【0052】この1)を実現する為には中間情報の基本
ブロックへの分割とフローグラフの作成と支配関係木の
作成が必要である。基本ブロックとは、先頭が唯一の入
口で最後が唯一の出口であるように分けた中間コードの
ブロックで、プログラムの流れを実現する際の基本単位
となるものである。以下に説明するフローグラフと支配
関係木も基本ブロックを基本単位として表現されてい
る。フローグラフとはプログラムの流れを基本ブロック
のつながりで表したもので、次の表13の中間コードの
フローグラフは図4のように表わされる。
【0053】
【表13】
【0054】フローグラフ内で基本ブロックAから基本
ブロックBへ矢印が出ている時、これを辺と記述し“A
→B”と記述する。プログラムがスタートしてから基本
ブロックAに到達する時には必ず、基本ブロックBを通
らなければならない時、辺Aは辺Bを支配するという。
この支配関係を表したのが支配関係木である。支配関係
木において辺Aから下のすべての辺は、辺Aに支配され
る。上のCプログラムから支配関係木を作成すると、図
5のようになる。
【0055】フローグラフと支配関係からループを検出
するのであるが、フローグラフ内の辺A→BにおいてB
がAを支配するとき、ループが存在する。つまり、基本
ブロックAから基本ブロックBへの流れがあり、また基
本ブロックBに到達するには必ず基本ブロックAを通る
必要がある時、ループが存在する。図4のフローグラフ
では辺A→Bにおいて基本ブロックBは基本ブロックA
を支配しており、ループを構成している。
【0056】また、2)を実現する為には、ループ内に
変数の値の変更が無いことが必要である。従って、基本
ブロックでどの変数の値の変更があったかの情報を蓄え
ておっき、ループが検出された時にはループが通る基本
ブロックで値が変えられたかどうかの判断をする必要が
ある。
【0057】フローグラフと変数の値変更情報をコンパ
イラの内部で表現する為に、図6のような情報を各基本
ブロックについてつくる(以降基本ブロック情報と記述
する)。図7は図6のフローグラフ内の基本ブロック2
の基本ブロック情報を作成した例である。
【0058】基本ブロック情報は直前の基本ブロックの
基本ブロック情報と直後の基本ブロックの基本ブロック
情報と値の変更があった変数をもつが、各要素は複数存
在する可能性があるので、図のように複数の情報をもて
るような構造としておく。また基本ブロック情報は基本
ブロックの中間コードでの開始行と終了行を情報として
持つ。
【0059】次に、次の表14のCソースプログラムを
コンパイルする場合を考える。
【0060】
【表14】
【0061】最適化可否情報をもつ中間コード8が出力
された場合、最適化可否判定処理を持つ最適化処理部5
で最適化処理が行われる。
【0062】図8は本発明の第2の実施例の最適化処理
の詳細を示す流れ図である。最適化処理部8は、ステッ
プ401から処理を始め、ステップ402でCHGFL
Gをオフとしてリセットし、ステップ403で三番地コ
ードを最初から読み込む。
【0063】OPTBEGが現れるまでの中間コードは
最適化の可能性は無いので、ステップ404〜406の
ループで読飛ばす。中間コードの4行目を読んで、ステ
ップ404でyesを選択し、ステップ407〜413
のループで不変式の移動の為の情報を収集する。まず、
ステップ407の処理でいま処理している中間コードが
ジャンプ命令かもしくはラベルかを判断する。
【0064】もし、ジャンプ命令かラベルならば基本ブ
ロックの切れ目なので、ステップ408,409の処理
で基本ブロック情報に必要な情報を設定する。ステップ
408の処理では新しい基本ブロック情報を作成し、ス
テップ409では直前ブロックと次ブロックのブロック
情報に情報を設定する。ジャンプ命令かラベルでなけれ
ば、ステップ410の処理で値変更があるかどうか調べ
値変更があったら、ステップ411の処理で基本ブロッ
ク情報の値変更情報を設定する。
【0065】ステップ407〜413の処理をOPTE
NDが現れるまで処理を繰り返す。上の中間コードで4
行目から12行目までを、ステップ407〜413のル
ープで処理した後の基本ブロック情報は、図9の通りで
ある。この基本ブロック情報で表現されるフローグラフ
は、図10の通りである。
【0066】ステップ407〜413のループで基本ブ
ロック情報が生成出来、ステップ412でループを抜け
たら、ステップ414の処理で基本ブロック情報を元に
支配関係木を作る。この時、生成される支配関係木は、
図11の通りである。
【0067】ステップ415の処理でフローグラフと支
配関係木からループを検出するのであるが、図10で辺
2→1に着目すると基本ブロック1は基本ブロック2を
支配しているためループが存在することがわかる。この
場合基本ブロック1と基本ブロック2がループを構成し
ている。
【0068】ループが検出されたら、ステップ4でルー
プ内不変式を検出するのであるが、ループを構成してい
る基本ブロック1と基本ブロック2で値が変更されてい
るのはi,j,qで、それぞれ中間コードの7,8,9
行目で変更している。iの値はiの値と定数から決まる
が、iの値は不定なのでループ内不変式ではない。jの
値はkの値と定数から決まるがkの値はループ内で変え
られないのでループ内不変式である。qの値はqの値と
iの値から決定されるが、iの値がループ内で不定なの
でループ内不定式ではない。ステップ415でjがルー
プ内不定式と分かったので、ステップ416の処理で8
行目をループ外に移動する。
【0069】このプログラムを構文解析部で解析し、中
間コードに変換すると、次の表15のようになる。
【0070】
【表15】
【0071】OPTBEGとOPTENDで挟まれた部
分の最適化処理が終ったら、またステップ404に処理
を戻し、ステップ404〜406のループでOPTBE
Gを探すが13行目以降にはOPTBEGは存在しない
為、最後まで三番地コードを読み飛ばし、次の表16の
ように最適化処理を終了する。
【0072】
【表16】
【0073】最適化処理が終ったら、コード生成部6で
中間コード9を機械語プログラム10に変換するのであ
るが、その処理は従来例で示した処理と同様である。
【0074】本実施例の効果を図12のタイムチャート
を用いて示す。図12において、TAは最適化可能なソ
ースプログラムの範囲、TBは最適化不可能な範囲を線
表で示す。TC,TD′,TEは従来の方式のコンパイ
ラがそれぞれ構文解析・最適化処理・コード生成にかか
る時間を示し、TC,TD,TEは本実施例のコンパイ
ラがそれぞれ構文解析,最適化処理,コード生成にかか
る時間を表す。従来の方式ではソースプログラム全体に
対して最適化処理時間TD分がかかっていたのに対し、
本発明ではソースプログラムの処理時間TBに対応する
処理時間を削除することによって処理時間を差分ΔTだ
け短縮することができる。
【0075】
【発明の効果】以上説明したように本発明は、処理時間
に大きな時間を要する複雑な最適化処理であればあるほ
どその最適化処理時間短縮の効果が大きい。
【図面の簡単な説明】
【図1】本発明の一実施例を説明するブロック図。
【図2】図1の最適化処理部5の動作を説明する流れ
図。
【図3】図2の最適化処理を説明する流れ図。
【図4】図2の中間コードから作られるフローグラフの
図。
【図5】図4のフローグラフから作られる支配関係木の
図。
【図6】図5の支配関係を説明するフローグラフの図。
【図7】図6の基本ブロック情報を説明する図。
【図8】本発明の第2の実施例の最適化処理部を説明す
る流れ図。
【図9】図8で作成した基本ブロック情報の図。
【図10】図9の基本情報が表すフローグラフの図。
【図11】図10から作られる支配関係木の図。
【図12】本発明の効果を説明するタイムチャート。
【図13】従来例の言語処理システムのブロック図。
【図14】図13の最適化処理部の動作を説明する流れ
図。
【図15】図14の最適化処理を説明する流れ図。
【符号の説明】
1,1a コンパイラ 2,2a 構文解析部 3 最適化可否情報生成部 4 最適化可否判定部 5 最適化処理部 6 コード生成部 7 ソースプログラム 8,8a 最適化可否情報を持つ中間コード 9 最適化処理済み中間コード 10 オブジェクトプログラム 101〜107,201〜224,401〜417
処理ステップ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 構文解析部にてプログラマが作成したプ
    ログラムを解析して中間情報を出力し、最適化処理部に
    てコード生成時に効率の良いコードを出力できるよう中
    間情報を処理し、コード生成部にてコード生成を行なう
    言語処理プログラうのコンパイラ処理方式において、前
    記構文解析部の構文解析時に前記中間情報へ最適化の可
    否の範囲の情報を付加して出力する情報生成手段と、前
    記最適化処理部の最適化処理時に最適化の可否の前記範
    囲情報によりその最適化を判断する最適化判断手段とを
    有することを特徴とする言語処理プログラムのコンパイ
    ラ処理方式。
  2. 【請求項2】 所定開始・終了の文をコードに追加し、
    これら開始文・終了文で挟まれた部分のみを最適化する
    請求項1記載の言語処理プログラムのコンパイラ処理方
    式。
JP5201339A 1993-08-13 1993-08-13 言語処理プログラムのコンパイラ処理方式 Pending JPH0756745A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5201339A JPH0756745A (ja) 1993-08-13 1993-08-13 言語処理プログラムのコンパイラ処理方式
EP94112667A EP0638862B1 (en) 1993-08-13 1994-08-12 Method and system for processing language
DE69428951T DE69428951T2 (de) 1993-08-13 1994-08-12 Sprachverarbeitungssystem und -verfahren
US08/871,627 US5758164A (en) 1993-08-13 1997-06-09 Method and system for processing language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5201339A JPH0756745A (ja) 1993-08-13 1993-08-13 言語処理プログラムのコンパイラ処理方式

Publications (1)

Publication Number Publication Date
JPH0756745A true JPH0756745A (ja) 1995-03-03

Family

ID=16439390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5201339A Pending JPH0756745A (ja) 1993-08-13 1993-08-13 言語処理プログラムのコンパイラ処理方式

Country Status (4)

Country Link
US (1) US5758164A (ja)
EP (1) EP0638862B1 (ja)
JP (1) JPH0756745A (ja)
DE (1) DE69428951T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003518291A (ja) * 1999-12-21 2003-06-03 データパワー テクノロジー インコーポレイテッド 実行時コード発生機とトランスレータを用いるデータ交換の方法と装置
JP2024061058A (ja) * 2022-10-21 2024-05-07 株式会社デンソー コンパイラ

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3196675B2 (ja) * 1996-12-27 2001-08-06 日本電気株式会社 言語処理方式
US6260191B1 (en) * 1997-04-07 2001-07-10 Hewlett-Packard Company User controlled relaxation of optimization constraints related to volatile memory references
JP4462676B2 (ja) * 1999-10-27 2010-05-12 富士通株式会社 プログラム変換装置、コンパイラ装置およびプログラム変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3801545B2 (ja) * 2002-08-02 2006-07-26 松下電器産業株式会社 コンパイラ用プログラム、コンパイラ装置及びコンパイル方法
US7257807B2 (en) * 2003-09-22 2007-08-14 Lsi Corporation Method for optimizing execution time of parallel processor programs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60258648A (ja) * 1984-06-04 1985-12-20 Fujitsu Ltd プログラム最適化処理方式

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US4989132A (en) * 1988-10-24 1991-01-29 Eastman Kodak Company Object-oriented, logic, and database programming tool with garbage collection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60258648A (ja) * 1984-06-04 1985-12-20 Fujitsu Ltd プログラム最適化処理方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003518291A (ja) * 1999-12-21 2003-06-03 データパワー テクノロジー インコーポレイテッド 実行時コード発生機とトランスレータを用いるデータ交換の方法と装置
JP2024061058A (ja) * 2022-10-21 2024-05-07 株式会社デンソー コンパイラ

Also Published As

Publication number Publication date
EP0638862A3 (en) 1995-06-14
US5758164A (en) 1998-05-26
EP0638862A2 (en) 1995-02-15
DE69428951T2 (de) 2002-08-29
EP0638862B1 (en) 2001-11-07
DE69428951D1 (de) 2001-12-13

Similar Documents

Publication Publication Date Title
US10269087B2 (en) Language translation using preprocessor macros
JP5147240B2 (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
JPH0769834B2 (ja) ソース・プログラムをコンパイルする方法及び装置
US8458679B2 (en) May-constant propagation
JP2003196106A (ja) プログラム変換方法、コンピュータ装置及びプログラム
KR20090011974A (ko) 컴파일 대상 파일 추출 방법
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
JPH0756745A (ja) 言語処理プログラムのコンパイラ処理方式
US11055069B2 (en) Tree structure data editing device, tree structure data editing method, and program
JP4719415B2 (ja) 情報処理システム及びコード生成方法
JP2009163662A (ja) 情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラム
CN119938048A (zh) 数据流图的生成方法、装置、设备、存储介质及程序产品
JPH0667871A (ja) プログラム自動更新方式
JP5425417B2 (ja) 名前データベース作成装置、方法及びプログラム
JP2014211729A (ja) 計算機、プログラム及びデータ生成方法
CN114217850B (zh) 一种多层级的汇编代码片段解析方法、系统及装置
JP2002082811A (ja) コンパイル方法および記録媒体
US20240202522A1 (en) Device and method for generating deep learning model graph and abstract syntax tree for integrated compiler
JP2004246924A (ja) アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法
JPH06208470A (ja) 目的コード最適化装置
JP2003067195A (ja) 最適化コンパイル方法及び最適化コンパイル装置
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JP2001005655A (ja) アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法
JP6447358B2 (ja) ソースコード生成プログラム、ソースコード生成方法およびコンピュータ
JPH0795275B2 (ja) コンパイル処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990105