JPS5960640A - コンパイラ処理方法 - Google Patents
コンパイラ処理方法Info
- Publication number
- JPS5960640A JPS5960640A JP17157382A JP17157382A JPS5960640A JP S5960640 A JPS5960640 A JP S5960640A JP 17157382 A JP17157382 A JP 17157382A JP 17157382 A JP17157382 A JP 17157382A JP S5960640 A JPS5960640 A JP S5960640A
- Authority
- JP
- Japan
- Prior art keywords
- statement
- processing
- compiler
- expression
- module
- 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
【発明の詳細な説明】
(Al 発明の技術分野
本発明は、コンパイラ処理方法、%f例えばPL/lや
C0BOL 、 FOR’l’RANなどにおけるII
’文の式全評価してオブジェクト・プログラムを生成す
るに当って、IF文内の各スカラ式についての出現頻度
に対応した表現を与えて記述された重みづけIF文を処
理できる重みづけIF文処理部をもうけ、最適なロード
・モジュールを得るようにしたコンパイラ処理方法に関
するものである。
C0BOL 、 FOR’l’RANなどにおけるII
’文の式全評価してオブジェクト・プログラムを生成す
るに当って、IF文内の各スカラ式についての出現頻度
に対応した表現を与えて記述された重みづけIF文を処
理できる重みづけIF文処理部をもうけ、最適なロード
・モジュールを得るようにしたコンパイラ処理方法に関
するものである。
(Bl 技術の背負と問題点
例えばPL/lなどで記述されたソース・プログラムに
おいては、第1図(AJK示される如@IF文が記述さ
れることが多い。該IF文はr A、 = Bであるか
A=Cである場合Kx x x K進む」ことを意味し
ているが、このようなIF文は例えはアセンブラ形式で
記述すれば第1図(B1図示の如き形にコンパイルされ
る。即ち。
おいては、第1図(AJK示される如@IF文が記述さ
れることが多い。該IF文はr A、 = Bであるか
A=Cである場合Kx x x K進む」ことを意味し
ているが、このようなIF文は例えはアセンブラ形式で
記述すれば第1図(B1図示の如き形にコンパイルされ
る。即ち。
(1)Aをレジスタ@o2にロードし、(2)Bをり0
2の内容と比較し、 (3) 等しけ力、ばXXXにブランチし、f4)
(31でなければ、Cを@02の内容と比較し。
2の内容と比較し、 (3) 等しけ力、ばXXXにブランチし、f4)
(31でなければ、Cを@02の内容と比較し。
(5)等しければ×××にブランチする。
の如くコンパイルされる。しかし、この場合、テークA
、 B 、 C−・の態様に応じて、成る処理に関連
しては、先[A=Cをチェックし、A〜Cの場合に限ぎ
ってA=Bをチェックすることが望寸しいことが生じる
。このようなことは、A〜CであってA=Bである頻度
がAk8であってA=Cである頻度にくらべて小さい場
合などに現われると考えてよい。或いは、第4図に於て
、例えばY力司5なるイはをもつ場合があり、その時り
の次元は10なので、プログラムは異常終了することに
なる。
、 B 、 C−・の態様に応じて、成る処理に関連
しては、先[A=Cをチェックし、A〜Cの場合に限ぎ
ってA=Bをチェックすることが望寸しいことが生じる
。このようなことは、A〜CであってA=Bである頻度
がAk8であってA=Cである頻度にくらべて小さい場
合などに現われると考えてよい。或いは、第4図に於て
、例えばY力司5なるイはをもつ場合があり、その時り
の次元は10なので、プログラムは異常終了することに
なる。
これを避ける為、スカラ式A=D(Ylの評価は、スカ
ラ弐B=Cが真である場合のみ行なうように指示したい
場合に現われることもある。
ラ弐B=Cが真である場合のみ行なうように指示したい
場合に現われることもある。
(C1発明の目的と構成
本発明は上記の寓をコンパイラ内で正しく処理できるよ
うにすることを目的としており、本発明のコンパイラ処
理方法は、与えられたソース・プログラムを読込んで文
解析処理部にて文解析を行い、次いで式の評価処理部に
゛て上記解析された文に含まれる式についての評価を行
って、オブジェクト・プログラムを生成するコンパイラ
・システムにおいて、上記式の評価処理部内に、IF文
内の各スカラ式についての出現頻度に対応した表現を与
えて記述された重みづけI F文に対応して当V重みづ
けI F文を処理する重みづけIF’文処理モジュール
をもうけ、該重みづけIIi’文処理子処理モジュール
えられた重みづけIF文r対して、各スカラ式について
の出現類W t+Vにソートする処よう構成され、肖該
通常のIF文の形に処理されたIF′5cを上記式の評
価処理部内の既存の11文処理モジュールに引渡すよう
にし、目的とするオブジェクト・プログラムを生成する
ことを特徴としている。以下図面を径間しつつ曲明する
。
うにすることを目的としており、本発明のコンパイラ処
理方法は、与えられたソース・プログラムを読込んで文
解析処理部にて文解析を行い、次いで式の評価処理部に
゛て上記解析された文に含まれる式についての評価を行
って、オブジェクト・プログラムを生成するコンパイラ
・システムにおいて、上記式の評価処理部内に、IF文
内の各スカラ式についての出現頻度に対応した表現を与
えて記述された重みづけI F文に対応して当V重みづ
けI F文を処理する重みづけIF’文処理モジュール
をもうけ、該重みづけIIi’文処理子処理モジュール
えられた重みづけIF文r対して、各スカラ式について
の出現類W t+Vにソートする処よう構成され、肖該
通常のIF文の形に処理されたIF′5cを上記式の評
価処理部内の既存の11文処理モジュールに引渡すよう
にし、目的とするオブジェクト・プログラムを生成する
ことを特徴としている。以下図面を径間しつつ曲明する
。
(1))発明の実施例
第2図は本発明による処理の一実施例態様を説明する勝
明図、第3図は本発明の一実施例構成を示す。
明図、第3図は本発明の一実施例構成を示す。
第2図(A)図示の場合、第1図(A1図示と同じ概念
を衣わすIF’文であるが、スカラ式A=Bとスカラ式
C=Dとの夫々の出現頻度が夫々10%と50饅とであ
ることを PROB f t (スカラ式)) の形で11 <を記述することによって指示している。
を衣わすIF’文であるが、スカラ式A=Bとスカラ式
C=Dとの夫々の出現頻度が夫々10%と50饅とであ
ることを PROB f t (スカラ式)) の形で11 <を記述することによって指示している。
この出胡、頻度iは、ソース・プログラム全記述する段
14で一般には判明している。このために、当該出現頻
瓦全例えば上述の如く記述することによって、コンパイ
ラに通知できるようにする。このようなI F文を本発
明においては、皿みづけIF’文と呼ぶ。
14で一般には判明している。このために、当該出現頻
瓦全例えば上述の如く記述することによって、コンパイ
ラに通知できるようにする。このようなI F文を本発
明においては、皿みづけIF’文と呼ぶ。
これに対応して、コンパイラは、納2図(B1図示の如
く、あたかもIF’文として I F A = Cl A = B
THEN GO’l’Ox x x
;、として与えられていたかのようにオブジェクト
。
く、あたかもIF’文として I F A = Cl A = B
THEN GO’l’Ox x x
;、として与えられていたかのようにオブジェクト
。
プログラムを生成する。部ち
(6)Aをレジスタ(ロ)02にロードし、(7)Cを
(ψ02の内容と比較し、 (8)等しければxxxにブランチし、(91(81で
なければ、Bを@02の内容と比較し、(D 等しけれ
ばxxxにブランチする。
(ψ02の内容と比較し、 (8)等しければxxxにブランチし、(91(81で
なければ、Bを@02の内容と比較し、(D 等しけれ
ばxxxにブランチする。
の如くコンパイルするようにされる。
第3図は本発明の一実施例構成を示している。
図中の符号lはソース・プログラム、21″i、コンパ
イラ、3はオブジェクト・プログラム、4はテキスト読
込み処理部であってソース−プログラム3の各テキスト
を読み込んでチェーンづけを行うもの、5は文解析処理
部であってDo文やIP文や()OTO文などの解析を
行うもの、6は式の評価処理部であって式の計算方法の
帷立を行うもの、7はオブジェク)%成処理部であって
オブジェクト・コードを生成するもの、8は本発明にお
いて用怠きれる重みづけIF文処理モジュール、8は既
存のI P文処理モジュールを衣わしている。また10
は、上記重みづけIF文処理モジュル8における一実施
例処理態様を表わしている。
イラ、3はオブジェクト・プログラム、4はテキスト読
込み処理部であってソース−プログラム3の各テキスト
を読み込んでチェーンづけを行うもの、5は文解析処理
部であってDo文やIP文や()OTO文などの解析を
行うもの、6は式の評価処理部であって式の計算方法の
帷立を行うもの、7はオブジェク)%成処理部であって
オブジェクト・コードを生成するもの、8は本発明にお
いて用怠きれる重みづけIF文処理モジュール、8は既
存のI P文処理モジュールを衣わしている。また10
は、上記重みづけIF文処理モジュル8における一実施
例処理態様を表わしている。
コンパイラ2は、与えられたソース・プログラム1を読
込んで目的とするオブジェクト・プログラム3を生成す
るものであるが、一般に、第3図図示の如<、(+)テ
キスト読込み処理部4、(lt文解析処理部5 、(+
:+i式の評価処理部6 、(lv)オブジェクト生成
処理部7をもっている。そして、既存のコンパイラ2に
おいては、式の評価処理部6内にIF文処理モジュール
9が用意され、第1図自A)図示の如く、IF文が TF A=BIA=C の如く与えらh、ると、第1図(Blの如き形にオプジ
−エクトを生、成せしめる機能をもっている。勿論、
IF文が IF A=CIA=B の如く与えられると、第2図(Blの如き形にオブジェ
クト全生成せしめる機能をもっている。
込んで目的とするオブジェクト・プログラム3を生成す
るものであるが、一般に、第3図図示の如<、(+)テ
キスト読込み処理部4、(lt文解析処理部5 、(+
:+i式の評価処理部6 、(lv)オブジェクト生成
処理部7をもっている。そして、既存のコンパイラ2に
おいては、式の評価処理部6内にIF文処理モジュール
9が用意され、第1図自A)図示の如く、IF文が TF A=BIA=C の如く与えらh、ると、第1図(Blの如き形にオプジ
−エクトを生、成せしめる機能をもっている。勿論、
IF文が IF A=CIA=B の如く与えられると、第2図(Blの如き形にオブジェ
クト全生成せしめる機能をもっている。
本発明の場合、式の評価処理部6内に、厘みづけIF文
処理モジュール8を用意している。該徂みづけIF文処
理モジュール8においては、一実施例処理態様10に示
す如く、与えられた京みづけIF文内の各スカラ式に対
応している出現頻度iに着目し、 PROB (10(A=B) ) PROB (FIO(A= C) ) を1つ1つの°エレメントとして、出現頻度iの大きい
順にソートし、その結果として例えは図示の如く、 I P PROB (50(A= C)) IPRO
B(10(A=B) )を得る。そして、湧該記述中の
余分の記述、月IJち図示の場合にはl”’ PROB
Jや「(」やr)Jヤr5oJや「10」を削除し、 IP’ A=CIA=B を得る。この記述は、第3図図示のI F文処理モジュ
ール9が処理可能な記述であり、当該n1シ述のI P
文はIP文処理モジュール9に引渡さfする。
処理モジュール8を用意している。該徂みづけIF文処
理モジュール8においては、一実施例処理態様10に示
す如く、与えられた京みづけIF文内の各スカラ式に対
応している出現頻度iに着目し、 PROB (10(A=B) ) PROB (FIO(A= C) ) を1つ1つの°エレメントとして、出現頻度iの大きい
順にソートし、その結果として例えは図示の如く、 I P PROB (50(A= C)) IPRO
B(10(A=B) )を得る。そして、湧該記述中の
余分の記述、月IJち図示の場合にはl”’ PROB
Jや「(」やr)Jヤr5oJや「10」を削除し、 IP’ A=CIA=B を得る。この記述は、第3図図示のI F文処理モジュ
ール9が処理可能な記述であり、当該n1シ述のI P
文はIP文処理モジュール9に引渡さfする。
即ち、第2図(B)図示の如き形のオブジェクト、プロ
グラムを生成するように働らく。
グラムを生成するように働らく。
なお、上記説明において、ソース・プログラムにおける
I P文を重みづけIF’文の形で最初から記述するも
のとしてぴ明したが、例えばソース・プログラムにおい
ては最初通常のIF文の形で記述しておいて後から上記
出現頻肝を評価し、必要なら重みづけIF文の形にする
ことが許される。
I P文を重みづけIF’文の形で最初から記述するも
のとしてぴ明したが、例えばソース・プログラムにおい
ては最初通常のIF文の形で記述しておいて後から上記
出現頻肝を評価し、必要なら重みづけIF文の形にする
ことが許される。
また、厘みづけIF文の記述形態は、上記に限らhるも
のではない。
のではない。
(El 発明の詳細
な説明した如く、本発明によれば、コンパイラにおいて
自動的に最適なロードモジュールをつくることができ、
ソース・プログラム作成者の共相を軽減することができ
る。
自動的に最適なロードモジュールをつくることができ、
ソース・プログラム作成者の共相を軽減することができ
る。
第1図および第4図は従来の問題点を説明するd−明図
、第2図は不発明による処理の一実施例態様を説明する
説明図、第3図は本発明の一実施例構成を示す。 図中、1はソース・プログラム、2はコンパイラ、3は
オブジェクト・プログラム、4はテキスト読込み処理部
、5は文解析処退部、6は式の評価処理部、7はオブジ
ェクト生成処理部、8は重みづけ12文処理モジュール
、9は既存の12文処理モジュールを表わす。 特許出願人 富士JIIJ株式会社 代理人弁理士 珠 1) 寛 (外1名)業)図 才2m
、第2図は不発明による処理の一実施例態様を説明する
説明図、第3図は本発明の一実施例構成を示す。 図中、1はソース・プログラム、2はコンパイラ、3は
オブジェクト・プログラム、4はテキスト読込み処理部
、5は文解析処退部、6は式の評価処理部、7はオブジ
ェクト生成処理部、8は重みづけ12文処理モジュール
、9は既存の12文処理モジュールを表わす。 特許出願人 富士JIIJ株式会社 代理人弁理士 珠 1) 寛 (外1名)業)図 才2m
Claims (1)
- 与えられたソース・プログラムを読込んで文解析処理部
にて文解析を行い2次いで式の計画処理部にて上記解析
された文に含まれる式についての評価を行って、オブジ
ェクト・プログラムを生成するコンパイラ・システムに
おいて、上記式の評価処理部内に、IF文内の各スカラ
式についての出現頻度に対応[7た表現を考えて記述さ
れた重みづけIF文に対応して当該重みづけIF文を処
理する重みづけIF文処理モジュールをもうけ、該和み
づけIF文処理モジュールは、与えらねた重みづけIF
文に対して、各スカラ式についての用油する処理と全実
行するよう構成され、当該通常のIF文の形に処理され
たIF’文を上記式の評価処理部内の既存のIF’文処
理モジュールに引渡すようにし、目的とするオブジェク
ト・プログラムを生成することを特徴とするコンパイラ
処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17157382A JPS5960640A (ja) | 1982-09-30 | 1982-09-30 | コンパイラ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17157382A JPS5960640A (ja) | 1982-09-30 | 1982-09-30 | コンパイラ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS5960640A true JPS5960640A (ja) | 1984-04-06 |
Family
ID=15925648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17157382A Pending JPS5960640A (ja) | 1982-09-30 | 1982-09-30 | コンパイラ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5960640A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06180651A (ja) * | 1992-12-11 | 1994-06-28 | Nec Corp | 範囲指定が可能なcase構造の処理方式 |
US5511198A (en) * | 1993-04-28 | 1996-04-23 | Fujitsu Limited | Optimizing compiler for shortening execution time of object program |
JP2006309430A (ja) * | 2005-04-27 | 2006-11-09 | Matsushita Electric Ind Co Ltd | コンパイラによる最適化方法 |
-
1982
- 1982-09-30 JP JP17157382A patent/JPS5960640A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06180651A (ja) * | 1992-12-11 | 1994-06-28 | Nec Corp | 範囲指定が可能なcase構造の処理方式 |
US5511198A (en) * | 1993-04-28 | 1996-04-23 | Fujitsu Limited | Optimizing compiler for shortening execution time of object program |
JP2006309430A (ja) * | 2005-04-27 | 2006-11-09 | Matsushita Electric Ind Co Ltd | コンパイラによる最適化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
IL97177A (en) | Method for creating a consecutive circle | |
Floyd | Toward interactive design of correct programs | |
JPS5960640A (ja) | コンパイラ処理方法 | |
Tischler et al. | Static analysis of programs as an aid to debugging | |
Arthur Jr et al. | Choice of software and programs in meta-analysis research: Does it make a difference? | |
Desel et al. | A test case generator for the validation of high-level Petri nets | |
Abrams | A comparative sampling of the systems for producing computer-drawn flowcharts | |
Dixon et al. | Rapid prototyping by means of abstract module specifications written as trace axioms | |
JPH01177165A (ja) | 配列の定義/引用関係検査方式 | |
de Oliveira Baptista et al. | MECHANISM FOR DEVELOPING SCIENTIFIC CONCEPTS | |
Hammer | An alternative approach to macro processing | |
JPH04140803A (ja) | 期待値データ生成方式 | |
JPH04365134A (ja) | コンパイラのエラー情報出力方式 | |
Gehani | Generic procedures: an implementation and an undecidability result | |
VASZIL | Multiset grammars, multiset automata, and membrane systems | |
JPH08249193A (ja) | プログラムの言語仕様範囲の検査方式 | |
Lemoine et al. | Validating requirements: the evolutionary approach | |
JPH03266029A (ja) | 論理型言語処理システムにおけるリスト出力方法 | |
BARBACCI et al. | Durra: An integrated approach to software specification, modeling, and rapid prototyping(Final Report) | |
Law | Robustness of confidence intervals for transient simulations | |
Malone | Managing the validation process | |
Donat et al. | Capturing the logical structure of requirements for the automatic generation of test specifications | |
JPH03260865A (ja) | ベクトル化処理方式 | |
Berryman | QuickBASIC, version 4.5 | |
JPS6260037A (ja) | コンパイラの目的プログラムの自動検査方式 |