JPH0477928A - 言語処理装置 - Google Patents

言語処理装置

Info

Publication number
JPH0477928A
JPH0477928A JP2192324A JP19232490A JPH0477928A JP H0477928 A JPH0477928 A JP H0477928A JP 2192324 A JP2192324 A JP 2192324A JP 19232490 A JP19232490 A JP 19232490A JP H0477928 A JPH0477928 A JP H0477928A
Authority
JP
Japan
Prior art keywords
information
file
instruction
instruction information
instructions
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
JP2192324A
Other languages
English (en)
Inventor
Michiko Ishida
石田 享子
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 JP2192324A priority Critical patent/JPH0477928A/ja
Publication of JPH0477928A publication Critical patent/JPH0477928A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、言語処理装置の開発・評価手段に関する。
〔概要〕
本発明は、言語処理装置で生成されるプログラムの開発
および評価手段において、 オブジェクト情報中で使用されている命令をその種類や
命令長別に分類し、個数を計数することにより、 プログラムの開発および評価の容易化を図ることができ
るようにしたものである。
〔従来の技術〕
従来のコンパイラはプログラミング言語で書かれたプロ
グラムをソースプログラムとして入力し、機械が理解で
きる言語(機械語)に変換する手段をもち、大きく分け
て構文解析プログラムとコード生成プログラムとで構成
されている。構文解析では、入力されたソースプログラ
ムの構造を分析して認識する。コード生成では、その構
文解析からの情報をもとにオブジェクトファイルを出力
する。コンパイラは、プログラミング言語を複数の機械
語命令列に変換する。変換する命令列の出力候補は多数
あり、コンパイラを開発者がコンパイラ開発時に選択す
る。したがって、各コンパイラでは、命令列の出力は様
々である。
コンパイラの開発および評価に際して、オブジェクトサ
イズの大きさは重要な情報である。コンパイラが最適な
命令列を出力するためには、コンパイル時間の短縮やオ
ブジェクトサイズの縮小など配慮しなければならない点
が多々あるが、そのためにもオブジェクトファイル中に
使用されている命令の種別や、数といった命令に関する
情報を得ることは参考になる。従来は、このオブジェク
トファイル中の命令の情報を必要とする場合は、オブジ
ェクトファイルから手作業で見つけ出さなケレばならな
かった。コンパイラは普通の機能、性能で存在すること
が重要であった。近年種々のコンパイラが開発され、各
々のコンパイラ開発時が重要視されている。各々のコン
パイラの評価を行うにあたり、文章で比較検討するだけ
でなく、具体的な数値をあげた定量的データを取り扱っ
た評価結果のほうがわかりやすい。例えば、あるプログ
ラムをコンパイルしたときに、その結果できる命令情報
ファイルを見て、数多く使われている命令であれば、そ
の命令に代わるそれよりも短い命令長の命令の組合わせ
で実現できるように置き換えたり、また、どういった命
令がどのくらいの割合で使用されているかがわかること
で、そのコンパイラによるレジスタの使用状況がわかる
といった利用法がある。
従来方式について図面を参照してより詳しく説明する。
第6図は従来例のシステム構成図である。
言語処理装置602は、入力ファイル601を入力する
ファイル入力部603 と、入力されたソースプログラ
ムの構成を解析する構文解析部604と、その解析され
た結果をもとにそれぞれの命令にコードを割当ててオブ
ジェクト情報を生成するコード生成部605 と、オブ
ジェクト情報をオブジェクトファイル607 に出力す
るファイル出力部606 とをもつ。第7図は従来の言
語処理装置602についてのフローチャートである。ま
ず、入力ファイルをオープンする(S701)。入力フ
ァイルから行がなくなるまで以下の処理を繰り返す。ソ
ースプログラムから行の終わりを示す特定文字までの文
字列を読み込む(S 702)。ステップ5702で読
み込んだ1行分のソースプログラムのどの部分が文法の
どの規則に対応するかを解析し、文字列がどのような構
造になっているかを認識する( S 703)。ステッ
プ5704で、読み込まれたソースプログラムがファイ
ルの終わり (以下、EOFという)であるか否かを判
定する。ここでEOFでないと判定された場合に、構文
解析部604で解析されたソースプログラム1行分に対
応するコードを割り当てる( S 705)。EOFで
あると判定された場合に、オブジェクトファイルを出力
する( S 706)。
〔発明が解決しようとする課題〕
このよシな従来例で、言語処理装置の開発(修正)およ
び評価に必要となる命令の情報を得るためには、出力さ
れたオブジェクト情報から手作業で見つけなければなら
なかったので、間違いが起こりやすいことやこの作業に
手間と時間とがかかる欠点があった。
本発明は、このような欠点を除去するもので、命令情報
の収集が自動的に行える言語処理装置を提供することを
目的とする。
〔課題を解決するための手段〕
本発明は、オブジェクトファイルに接続され、ソースプ
ログラム情報を入力するファイル入力部、入力されたソ
ースプログラム情報の構文を解析する構文解析部、この
解析結果に基づき命令のそれぞれにコードを割当ててオ
ブジェクト情報を生成するコード生成部およびこのオブ
ジェクト情報を上記オブジェクトファイルに出力するフ
ァイル出力部を備えた言語処理装置において、命令情報
ファイルと、上記オブジェクト情報中で使用されている
命令をその種別ごとに分類し、その個数を計数する手段
を含む命令情報生成部と、操作で与えられる入力情報に
応じて上記命令情報生成部で生成された情報を上記命令
情報ファイルに出力する命令情報ファイル出力部とを備
えたことを特徴とする。
ここで、上記命令情報生成部は、上記オブジェクト情報
中で使用されている命令をその命令長ごとに分類し、そ
の個数を計数する手段を含むことが望まれる。
〔作用〕
入力されたソースプログラム情報の構文を解析し、この
解析結果に基づき命令のそれぞれにコードを割当ててオ
ブジェクト情報を生成する。このオブジェクト情報中で
使用されている命令をその種別および命令長ごとにそれ
ぞれ分類し、その個数を計数し、命令情報として出力す
る。これにより、オブジェクトファイルから命令情報を
手作業で見つけ8す手間を省き、かつ、命令個数の計数
間違えの発生を防ぐことができる。
上記の計数値は、コンパイラの開発・評価に際しての重
要な情報であるオブジェクトサイズを定緬るものである
〔実施例〕
以下、本発明の一実施例について図面を参照して説明す
る。
第1図は、この実施例のシステム構成図である。
入力ファイル101、ファイル入力部104、構文解析
部105、コード生成部106およびファイル出力部1
07は、従来の言語処理方式のシステム構成図(第4図
参照)と同じ機能を有している。さらに、特許請求範囲
中のオブジェクト情報中で使用されている命令の情報を
出力する手段として、命令情報を生成し保持するための
命令情報生成部108と、その命令情報を命令情報ファ
イル112に出力する命令情報ファイル出力部109と
、命令情報の出力を特定する命令情報出力判定部110
とを含む。
この実施例は、第1図に示すように、オブジェクトファ
イル111 に接続され、ソースプログラム情報を入力
するファイル入力部104、入力されたソースプログラ
ム情報の構文を解析する構文解析部105、この解析結
果に基づき命令のそれぞれにコードを割当ててオブジェ
クト情報を生成するコード生成部106およびこのオブ
ジェクト情報をオブジェクトファイル111 に出力す
るファイル出力部107を備え、さらに、本発明の特徴
とする手段として、命令情報ファイル112と、上記オ
ブジェクト情報中で使用されている命令をその種別ごと
に分類し、また、上記オブジェクト情報中で使用されて
いる命令をその命令長ごとに分類し、その個数をそれぞ
れ計数するする手段を含む命令情報生成部108と、操
作で与えられる入力情報に応じて命令情報生成部108
で生成された情報を命令情報ファイル112に出力する
命令情報ファイル出力部109とを備える。
次に、この実施例の動作を説明する。
第2図は、この実施例の動作を示すフローチャートであ
る。入力ファイル101から入力されたソースプログラ
ムは、構文解析部105と、コード生成部106と、命
令情報生成部108と、命令情報出力判定部110とで
次の手順で処理される。
まず、利用者はコンパイルを行うときに、命令情報ファ
イル112を出力するか否かの特定をする( S 20
2)。出力する場合は、変数mei−printの値が
「1」に設定される( S 203)。ステップ520
4からステップ5207までは、従来例のステップ57
02からステップ5705と同様の処理が行われる。
次に、本実施例で従来例に対し追加した命令情報生成部
108の処理を行う。ここでは、各命令を転送命令、演
算命令、スタック操作命令、分岐命令といった命令種別
ごとに分類する(3208)。そのために、転送、演算
、スタックといった要素を持った命令テーブルを用意し
ておく。この命令テーブルにより、EOFになるまでそ
れぞれの命令の数をカウントしていき(3208>、分
類された結果はテーブル内に保存しておく  (320
9)。もし、ステップ5206で入力されたソースプロ
グラムがEOFであると判定されると、今度は変数me
i−printの値が「1」か否かの判定をする( S
 210)。ここでmen−printの値が「1」で
なかった場合は、従来の方式と同様にオブジェクトファ
イル111が出力され(S212)、「1」であった場
合は命令情報生成部108によって生成された命令につ
いて命令情報を命令情報ファイル112として出力する
(S211)。
第3図は、命令情報出力部108から出力される命令情
報ファイル112の内容のイメージ図である。
このリストは、左半分にオブジェクトプログラム中で使
われている命令の種別情報を、右半分にそれぞれの命令
情報を含む。
このような処理によって、ソースプログラムは、従来と
同様に言語処理プログラムによって解析される。利用者
は命令情報ファイル112に格納されたリストを読み出
し、その情報をもとに言語処理方式の開発および評価の
際に役立たせることができる。
第二実施例も第一実施例と処理の概要は同じである。第
二実施例と第一実施例との相違は、第1図の命令情報生
成部108で、命令種別ごとだけでなく、バイト数ごと
に命令を分類する機能をもっていることである。ここで
は、この相違点のある部分についてのみ説明する。
本例の命令情報生成部108についてのフローチャート
を第5図に示す。まず、変数バイトの値を「0」に初期
化する(S50]、)。次に、命令を種別ごとに分類し
、各命令ごとに決まっている定数(その命令におけるバ
イト数)を変数バイトに代入する(S502)。ステッ
プ5503でバイト数のテーブルを用意しておき、ステ
ップS 502で代入された変数バイトの値と該当する
欄をカウントしてい<  (5503) 。
以上の処理によって出力される命令情報ファイル112
のイメージ図を第4図に示す。この第4図は、左半分に
オブジェクトプログラム中で使われている命令バイト数
を、右半分にそれぞれのバイト数の個数情報を含む。
〔発明の効果〕
本発明は、以上説明したように、コンパイル時にオブジ
ェクトプログラム中で使用されている命令の種類や個数
といった命令情報を保持する機能を取り組むことによっ
て、命令情報をオブジェクトファイルから手作業で見つ
け出す必要がなく、手間が省ける効果がある。さらに、
時間も大幅に短縮でき、命令の個数を数え間違えたりす
ることもなくなり、プログラムの開発および評価を容易
に行える効果がある。
【図面の簡単な説明】
第1図は本発明実施例のブロック構成図。 第2図は本発明実施例の動作を示すフローチャート。 第3図は命令情報ファイルの内容を示すイメージ図。 第4図は命令情報ファイルの内容を示すイメージ図。 第5図は本発明実施例の動作を示すフローチャート。 第6図は従来例のブロック構成図。 第7図は従来方式の動作を示すフローチャート。 101.601・・・入力ファイル、102・・・コン
ソール、103.602・・・言語処理装置、104.
603・・・ファイル入力部、105.604・・・構
文解析部、106.605・・・コード生成部、107
.606・・・ファイル出力部、108・・・命令情報
生成部、109・・・命令情報ファイル出力部、110
・・・命令情報出力判定部、111.607・・・オブ
ジェクトファイル、112・・・命令情報ファイル。

Claims (1)

  1. 【特許請求の範囲】 1、オブジェクトファイルに接続され、ソースプログラ
    ム情報を入力するファイル入力部、入力されたソースプ
    ログラム情報の構文を解析する構文解析部、この解析結
    果に基づき命令のそれぞれにコードを割当ててオブジェ
    クト情報を生成するコード生成部およびこのオブジェク
    ト情報を上記オブジェクトファイルに出力するファイル
    出力部を備えた言語処理装置において、 命令情報ファイルと、 上記オブジェクト情報中で使用されている命令をその種
    別ごとに分類し、その個数を計数する手段を含む命令情
    報生成部と、 操作で与えられる入力情報に応じて上記命令情報生成部
    で生成された情報を上記命令情報ファイルに出力する命
    令情報ファイル出力部と を備えたことを特徴とする言語処理装置。 2、上記命令情報生成部は、上記オブジェクト情報中で
    使用されている命令をその命令長ごとに分類し、その個
    数を計数する手段を含む特許請求項1記載の言語処理装
    置。
JP2192324A 1990-07-19 1990-07-19 言語処理装置 Pending JPH0477928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2192324A JPH0477928A (ja) 1990-07-19 1990-07-19 言語処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2192324A JPH0477928A (ja) 1990-07-19 1990-07-19 言語処理装置

Publications (1)

Publication Number Publication Date
JPH0477928A true JPH0477928A (ja) 1992-03-12

Family

ID=16289390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2192324A Pending JPH0477928A (ja) 1990-07-19 1990-07-19 言語処理装置

Country Status (1)

Country Link
JP (1) JPH0477928A (ja)

Similar Documents

Publication Publication Date Title
US7284241B2 (en) Compiler, compiler apparatus and compilation method
US4773007A (en) Complier code optimization method for a source program having a first and second array definition and use statements in a loop
JP3311462B2 (ja) コンパイル処理装置
EP1636701B1 (en) An intermediate representation for multiple exception handling models
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
JP4157016B2 (ja) コンパイラ装置及びコンパイル方法
US7353503B2 (en) Efficient dead code elimination
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
US5956510A (en) Apparatus and method for revising computer program code
JP2003050715A (ja) コンパイラおよびデバッグ装置
JPH096627A (ja) 最適化装置
JP2001101012A (ja) プログラムコード変換方法
JP4026940B2 (ja) プログラム変換装置
JPH0477928A (ja) 言語処理装置
JPH09223023A (ja) コンパイル装置およびコンパイラ
JP3049814B2 (ja) マイクロコンピュータの言語処理装置
US5649201A (en) Program analyzer to specify a start position of a function in a source program
Wendt Fast code generation using automatically-generated decision trees
JP3167386B2 (ja) プログラム自動並列化方法
JP3580394B2 (ja) プログラム変換装置及びプログラム変換方法
JPH09160784A (ja) 並列化コンパイル方式
JPH07105013A (ja) レジスタ割り付け方式
JP3018783B2 (ja) コンパイル方式
Falk et al. Use of a Bit-true Data Flow Analysis for Processor-Specific Source Code Optimization
JP2004139369A (ja) 定数アドレス領域を指示するポインタ解析方法