JPH02133825A - コンパイル方式 - Google Patents

コンパイル方式

Info

Publication number
JPH02133825A
JPH02133825A JP28867488A JP28867488A JPH02133825A JP H02133825 A JPH02133825 A JP H02133825A JP 28867488 A JP28867488 A JP 28867488A JP 28867488 A JP28867488 A JP 28867488A JP H02133825 A JPH02133825 A JP H02133825A
Authority
JP
Japan
Prior art keywords
size
performance
priority
option
procedure
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
JP28867488A
Other languages
English (en)
Inventor
Kiyomi Taniguchi
谷口 紀代美
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 JP28867488A priority Critical patent/JPH02133825A/ja
Publication of JPH02133825A publication Critical patent/JPH02133825A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は高級言語で記述されたソースプログラムからオ
ブジェクトプログラムを生成するコンパイル方式に関し
、特に、ソースプログラム中で組込み手続きの呼び出し
く引用)の記述がある場合に実行時性能の向上を優先さ
せるか、あるいはロードモジュールのサイズを小さくす
ることを優先させるかを選択可能としたコンパイル方式
に関するものである。
〔従来の技術〕
組込み手続きとは、既にシステムで定義されたサブプロ
グラムであり、ソースプログラム中でその呼び出しを行
うだけで、その機能を利用することができるものである
ところで、組込み手続きを引用したソースブロダラムを
コンパイルする場合には大別して2方式があり、一方は
実行時性能を重視した方式、他方はロードモジュール(
オブジェクトプログラム)のサイズを重視した方式であ
る。
すなわち、実行時性能を重視する場合には、例えばオブ
ジェクトプログラムをリンクしてロードモジュールを生
成する際に組込み手続きに対応する命令列をロードモジ
ュール中に内部展開することにより、実行中における外
部参照をなくして、性能の向上を図ることができる。た
だし、この場合には組込み手続きの命令列が実コーディ
ングとしてロードモジエールに含まれることになるため
、組込み手続きが頻繁に用いられる場合にはロードモジ
ュールのサイズが大型化し、メモリ容量の小さい電子計
算機システムではロードモジュールがメモリに入りきら
なくなって実行が不可能となったり、電子計算機システ
ム全体の実行時性能がかえって低下してしまう不都合も
ある。
一方、ロードモジュールのサイズを重視する場合には、
例えばオブジェクトプログラムないしはロードモジュー
ル中には実行時に組込み手続きを呼出す命令をそのまま
置き、実行時にダイナミックリンカ等を起動させること
により、オブジェクトプログラム中の実コーディングを
少なくしてロードモジュールのサイズを小さくすること
ができる。ただし、この場合には実行中に組込み手続き
の外部参照が行われる度に組込み手続きの命令列をロー
ドして結合する必要があるため、実行時性能が低下する
という不都合がある。
このように、実行時性能とサイズとの両者を極限まで満
足させることは不可能であり、よって、従来は両者をあ
る程度まで満足させることを目標として、例えば使用頻
度の高い組込み手続きについてのみ実行時性能を考慮し
て内部展開を行う等の方式をとっていた。
〔発明が解決しようとする課題〕
上述したように、従来のコンパイル方式では、一定の基
準に従って実行時性能とサイズとを適当に考慮してコン
パイルが行われていたが、利用者が何らその制御に関与
することができなかったため、利用者が組込み手続きを
実行する際に、ロードモジュール内の組込み手続きの実
行時性能あるいはサイズのいずれか一方のみを優先する
ことを期待しても、それが反映されないという欠点があ
った。
すなわち、利用者が組込み手続きの実行時性能を重視し
、ロードモジュール内の組込み手続きのサイズを考慮に
入れなくてもよい場合であっても、ロードモジュール内
の組込み手続きのサイズをも考慮に入れた組込み手続き
のコンパイルが自動的に実行されるため、利用者の期待
する性能が得られないことがあった。また、電子計算機
システムのメモリ容量の都合上、ロードモジュール内の
組込み手続きのサイズを利用者が考慮し、できるだけ小
さなロードモジュールにして実行時性能は重視しない場
合であっても、実行時性能をも考慮した組込み手続きの
コンパイルが自動的に実行されるために、利用者の期待
する大きさのロードモジュールが得られないことがあっ
た。
従って、利用者は、必要があれば、自分自身で目的に応
じた手続きを別に用意し、システムで標準に用意されて
いる組込み手続きをその手続きに置き換えて使用しなけ
ればならず、非常に煩雑であるという欠点があった。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、実行時性能とサイズとのいずれを重
視すべきかの基準に利用者が関与することのできるコン
パイル方式を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、高級言語で記述さ
れたソースプログラムからオブジェクトプログラムを生
成するコンパイル方式において、前記ソースプログラム
に組込み手続きの呼び出しがあるか否かを判定する中間
テキスト判定手段と、 組込み手続きの呼び出しがある場合に前記ソースプログ
ラムと同時に与えられるオプションを解析するオブシッ
ン解析手段と、 前記オプションが性能を優先することを示す場合に実行
時性能が向上する命令列を生成する性能優先命令列生成
手段と、 前記オプションがサイズを優先することを示す場合にロ
ードモジュールのサイズが小さくなる命令列を生成する
サイズ優先命令列生成手段と、前記オプションがいずれ
も特定しない場合あるいは実行時性能およびサイズを優
先することを示す場合に性能およびサイズの両者を考慮
した命令列を生成する通常命令列生成手段とを備えるよ
うにしている。
〔作用) 本発明のコンパイル方式にあっては、中間テキスト判定
手段がソースプログラムに組込み手続きの呼び出しがあ
るか否かを判定し、組込み手続きの呼び出しがある場合
にオプション解析手段がソースプログラムと同時に与え
られるオプションを解析し、オプションが性能を優先す
ることを示す場合には性能優先命令列生成手段が実行時
性能が向上する命令列を生成し、オプションがサイズを
優先することを示す場合にはサイズ優先命令列生成手段
がロードモジエールのサイズが小さくなる命令列を生成
し、オプションがいずれも特定しない場合あるいは実行
時性能およびサイズを優先することを示す場合には通常
命令列生成手段が性能およびサイズの両者を考慮した命
令列を生成する。
〔実施例〕
以下、本発明の実施例につき図面を参照して説明する。
第1図は本発明のコンパイル方式を適用したコンパイラ
の一実施例を示す構成図である。第1図において、コン
パイラ1は解析手段11と中間テキスト読込み手段12
と中間テキスト判定手段13と命令列生成手段14とか
ら構成され、命令列生成手段14は組込み手続き非呼び
出し命令列生成手段141と組込み手続き呼び出し命令
列生成手段142とから構成され、更に組込み手続き呼
び出し命令列生成手段142はオプション解析手段14
21と性能優先命令列生成手段1422と通常命令列生
成手段1423とサイズ優先命令列生成手段1424と
から構成されている。
以下、上記の実施例の各部の機能および動作について説
明する。
コンパイラ1はソースプログラム21および利用者が指
定したオプション22を含む入力情報2を入力すると、
解析手段11において人力情報2を解析し、ソースプロ
グラム21に対応した中間テキスト111と、オプショ
ン22に対応したオプション情報112とを生成する。
なお、オプション22は、ソースプログラム21中の組
込み手続きの全体あるいは個々の組込み手続きに対して
実行時性能を優先するのか、サイズを優先するのか、通
常どおり両者を優先するのかを指定するものである。
次いで、中間テキスト読込み手段12は中間テキスト1
11を読み込み、中間テキスト判定手段13はその中間
テキスト111が組込み手続きの呼び出しを行っている
か否かを判定する。
組込み手続きの呼び出しを行っていない場合には、命令
列生成手段14の組込み手続き非呼び出し命令列生成手
段141に制御を移し、組込み手続き非呼び出し命令列
生成手段141において命令列を生成し、中間テキス1
[込み手段12に制御を戻す。
一方、中間テキスト判定手段13において組込み手続き
の呼び出しを行っている場合には、命令列生成手段14
の組込み手続き呼び出し命令列生成手段142に制御を
移し、組込み手続き呼び出し命令列生成手段142にお
いて命令列を生成する。すなわち、組込み手続き呼び出
し命令列生成手段142において、オプション解析手段
1421はオプション情報112から、実行時性能が向
上することだけを優先するのか、ロードモジュール内の
組込み手続きのサイズを小さくすることだけを優先する
のか、ロードモジュール内の組込み手続きのサイズと実
行時性能との両方を優先するのかを判定する。
しかして、実行時性能を優先する場合には性能優先命令
列生成手段1422に制御を移し、実行時の性能が向上
することだけを優先して組込み手続きを実行する手続き
を呼び出す命令列を生成し、中間テキスト読込み手段1
2に制御を戻す。
また、ロードモジュール内の組込み手続きのサイズを小
さくすることだけを優先する場合にはサイズ優先命令列
生成手段1424に制御を移し、ロードモジュール内の
組込み手続きのサイズを小さくすることを優先して組込
み手続きを実行する手続きを呼び出す命令列を生成し、
中間テキスト読込み手段12に制御を戻す。
更に、ロードモジュール内の組込み手続きのサイズと実
行時性能との両方を優先する場合(性能。
サイズのいずれも指定しない場合も含む、)には通常命
令列生成手段1423に制御を移し、ロードモジュール
内の組込み手続きの実行時性能およびサイズの両方をあ
る程度まで満足させて組込み手続きを実行する手続きを
呼出す命令列を生成し、中間テキスト読込み手段12に
制御を戻す。
以上のように、組込み手続きをソースプログラム21で
利用する際、コンパイル時のオプション22により、組
込み手続き引用時のロードモジエール内の組込み手続き
のサイズと実行時性能とのどちらか、あるいは両者を優
先させたオブジェクトプログラム3を作成することが可
能となる。
なお、組込み手続きを実行する手続きをリンク(静的、
動的)時に呼び出さずに、組込み手続きを実行する命令
列をコンパイラlが生成して内部展開する場合について
も、同様にして適用することが可能である。
〔発明の効果〕
以上説明したように本発明のコンパイル方式にあっては
、組込み手続きを利用する際に、利用者がコンパイル時
のオプションにより、実行時性能の向上を優先すること
、または、ロードモジュール内の組込み手続きのサイズ
の小型化を優先すること、あるいは両者をある程度妥協
したものとが選択可能となり、目的に応じて組込み手続
きを簡単に利用できるという効果がある。
【図面の簡単な説明】
第1図は本発明のコンパイル方式の一実施例の構成図で
ある。 図において、 l・・・・・・・・・・・・コンパイラ11・・・・・
・・・・解析手段 111・・・・・・中間テキスト 112・・・・・・オプション情報 12・・・・・・・・・中間テキスト読込み手段13・
・・・・・・・・中間テキスト判定手段14・・・・・
・・・・命令列生成手段141・・・・・・組込み手続
き非呼び出し命令列生成手段 142・・・・・・組込み手続き呼び出し命令列生成手
段 1421・・・オプション解析手段 1422・・・性能優先命令列生成手段1423・・・
通常命令列生成手段 1424・・・サイズ優先命令列生成手段2・・・・・
・・・・・・・入力情報 21・・・・・・・・・ソースプログラム22・・・・
・・・・・オプション

Claims (1)

  1. 【特許請求の範囲】 高級言語で記述されたソースプログラムからオブジェク
    トプログラムを生成するコンパイル方式において、 前記ソースプログラムに組込み手続きの呼び出しがある
    か否かを判定する中間テキスト判定手段と、 組込み手続きの呼び出しがある場合に前記ソースプログ
    ラムと同時に与えられるオプションを解析するオプショ
    ン解析手段と、 前記オプションが性能を優先することを示す場合に実行
    時性能が向上する命令列を生成する性能優先命令列生成
    手段と、 前記オプションがサイズを優先することを示す場合にロ
    ードモジュールのサイズが小さくなる命令列を生成する
    サイズ優先命令列生成手段と、前記オプションがいずれ
    も特定しない場合あるいは実行時性能およびサイズを優
    先することを示す場合に性能およびサイズの両者を考慮
    した命令列を生成する通常命令列生成手段とを備えたこ
    とを特徴とするコンパイル方式。
JP28867488A 1988-11-15 1988-11-15 コンパイル方式 Pending JPH02133825A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28867488A JPH02133825A (ja) 1988-11-15 1988-11-15 コンパイル方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28867488A JPH02133825A (ja) 1988-11-15 1988-11-15 コンパイル方式

Publications (1)

Publication Number Publication Date
JPH02133825A true JPH02133825A (ja) 1990-05-23

Family

ID=17733217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28867488A Pending JPH02133825A (ja) 1988-11-15 1988-11-15 コンパイル方式

Country Status (1)

Country Link
JP (1) JPH02133825A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014519A (en) * 1996-08-19 2000-01-11 Nec Corporation Language processing unit and a language processing method to translate a source program and generate an object module file
JP2017079069A (ja) * 2015-10-21 2017-04-27 エルエス産電株式会社Lsis Co., Ltd. Plc命令語コンパイルの最適化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014519A (en) * 1996-08-19 2000-01-11 Nec Corporation Language processing unit and a language processing method to translate a source program and generate an object module file
JP2017079069A (ja) * 2015-10-21 2017-04-27 エルエス産電株式会社Lsis Co., Ltd. Plc命令語コンパイルの最適化方法
US10445074B2 (en) 2015-10-21 2019-10-15 Lsis Co., Ltd. Method of optimally compiling PLC command

Similar Documents

Publication Publication Date Title
US6292939B1 (en) Method of reducing unnecessary barrier instructions
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
JPH01154267A (ja) 入出力機器制御プログラムのアドレス解決方法
JPH0760390B2 (ja) サブプログラム呼び出しを実行する方法および装置と コンパイラ装置
JPH01306923A (ja) 異種言語間連絡方式
JPS6184740A (ja) 汎用オブジエクトコ−ド生成方式
JP2003233499A (ja) 複数の意味レベルによるアスペクト指向プログラミングのための方法
JPH09231077A (ja) コンピュータプログラムのサイズを縮小する方法
JPH02133825A (ja) コンパイル方式
JP3327674B2 (ja) プログラム翻訳装置及び方法
US6129460A (en) Object-oriented apparatus and method in a computer system for a programming language compiler to select optimal pointer kinds for code generation
JP2002041310A (ja) クラス動的バインドシステムおよび方法
JPH09120383A (ja) データ入出力方法及びそのためのデータ入出力装置
JPH023830A (ja) 数学組込み関数実行時における精度・性能の選択方式
JPH02165339A (ja) コンパイル装置
JPH0991151A (ja) コンパイル装置及びプロセッサ装置
JPS63115236A (ja) オブジエクト選択方式
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体
JPH025131A (ja) 実行ユニット変更方式
JPH02206838A (ja) 共通サブル―チンリンク方法
JPS61103245A (ja) 機械語命令体系の拡張方式
JPS61264441A (ja) コンパイル処理方式
JPS62271024A (ja) 最適化処理方式
JPH06348505A (ja) コンパイル方法
JPH01161443A (ja) 動的ディスパッチング方式