JPH04299426A - 関数のアーギュメント/パラメータ引渡し方式 - Google Patents

関数のアーギュメント/パラメータ引渡し方式

Info

Publication number
JPH04299426A
JPH04299426A JP8577391A JP8577391A JPH04299426A JP H04299426 A JPH04299426 A JP H04299426A JP 8577391 A JP8577391 A JP 8577391A JP 8577391 A JP8577391 A JP 8577391A JP H04299426 A JPH04299426 A JP H04299426A
Authority
JP
Japan
Prior art keywords
parameter
parameter value
argument
name
function
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
JP8577391A
Other languages
English (en)
Inventor
Mitsuo Kiyono
清野 三男
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 JP8577391A priority Critical patent/JPH04299426A/ja
Publication of JPH04299426A publication Critical patent/JPH04299426A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理におけるコンパ
イル処理に関し、特に関数の呼び出しにおけるアーギュ
メントとパラメータの関係が値による受け渡しであるプ
ログラミング言語の翻訳方式に関する。
【0002】
【従来の技術】従来、この種の関数の呼び出しにおける
アーギュメントとパラメータの関係が値による受け渡し
あるプログラミング言語の翻訳処理は、関数の呼び出し
処理でアーギュメントの値をスタック等の一時領域に設
定しアーギュメントリストを動的に作成するコードを生
成していた。
【0003】
【発明が解決しようとする課題】上述した従来の関数の
呼び出し処理でアーギュメントの値をスタック等の一時
領域に設定したアーギュメントリストを動的に作成する
コードを生成する方式では、関数の呼び出された側でパ
ラメータの値を変更しない場合でも常にアーギュメント
の値をスタック等の一時領域に設定しアーギュメントリ
ストの作成を行う処理を実行時に動的に行うことになる
ため、関数呼び出しの多いプログラムでは実行時間が増
大するという欠点がある。
【0004】
【発明を解決するための手段】本発明の関数のアーギュ
メント/パラメータ引渡し方式は、関数の呼び出し処理
でアーギュメントの値ではなく、そのアドレスを渡すよ
うにアーギュメントリストを作成して静的なデータ領域
に割付けるアーギュメントリスト作成手段と、関数の処
理手続き内でパラメータの値を更新しているパラメータ
名またはパラメータのアドレスを得ているパラメータ名
に対して、パラメータの値が変更される可能性のあるこ
とを示すためにパラメータ値変更名テーブルにパラメー
タ名を登録するパラメータ値変更名登録手段と、関数の
定義処理でその関数の処理手続き内でパラメータの値を
変更する可能性のあるパラメータ名が存在するか否かを
調べるためにパラメータ値変更名テーブル中のパラメー
タ名を調べるパラメータ値変更有無判定手段と、前記パ
ラメータ値変更有無判定手段によってパラメータの値が
変更される可能性のあることが判明したパラメータ名に
対して前記アーギュメントリスト作成手段によって作成
されたアーギュメントリスト中の対応するアーギュメン
トからパラメータの値を取り出し一時変数に設定するた
めのコードを生成するパラメータ値取込み手段とを有し
ている。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
【0006】図1は本発明の一実施例を構成するブロッ
ク図である。
【0007】本実施例の関数のアーギュメント/パラメ
ータ引渡し方式は、コンパイラ1と、翻訳処理部2と、
関数呼び出し処理部3と、アーギュメントリスト作成手
段4と、パラメータ値変更名登録手段5と、パラメータ
値変更名テーブル6と、関数定義処理部7と、パラメー
タ値変更有無判定手段8と、パラメータ値取込み手段9
と、ソースプログラムライブラリ10と、目的プログラ
ムライブラリ11と、指示文12とで構成されている。
【0008】パラメータ値変更名テーブル6は受け渡さ
れたアーギュメントに対応するパラメータの値が変更さ
れる可能性のあることを示すパラメータ名情報より構成
されている。
【0009】次に本実施例の全体的な動作を具体的に説
明する。
【0010】コンパイラ1は指示文12を入力し処理す
べきプログラム名情報を得た後、ソースプログラムライ
ブラリ10より指定されたソースプログラムを入力し翻
訳を始める。その後翻訳した結果は目的プログラムとし
て目的プログラムライブラリ11に出力する。
【0011】翻訳処理部2は入力したソースプログラム
の翻訳を行なう。ソースプログラムの翻訳中に関数の呼
び出し文を検出したら関数呼び出し処理部3を起動する
。さらに関数の手続き内でパラメータの値を更新してい
るパラメータ名またはパラメータのアドレスを得ている
パラメータ名を検出したらパラメータ値変更名登録手段
5を起動する。その後関数の手続きが終了したら関数定
義処理部7を起動する。
【0012】関数呼び出し処理部3は翻訳処理部2より
起動され、関数の呼び出しに対してアーギュメントリス
トを作成するためにアーギュメントリスト作成手段4を
起動する。
【0013】アーギュメントリスト作成手段4はアーギ
ュメントの値ではなく、そのアドレスを渡すようにアー
ギュメントリストを作成しそのアーギュメントリストを
静的なデータ領域に割付ける。翻訳時に定まらないアド
レスを持つアーギュメントに対してのみ、実行時に対応
するアーギュメントリストに設定するためのコードを生
成する。
【0014】パラメータ値変更名登録手段5は翻訳処理
部2より起動され、関数の処理手続き内でパラメータの
値を更新しているパラメータ名またはパラメータのアド
レスを得ているパラメータ名に対して、パラメータの値
が変更される可能性があることを示すためにパラメータ
名をパラメータ値変更名テーブル6に登録する。
【0015】関数定義処理部7は翻訳処理部2より起動
され、関数の処理手続きの終わりでその手続き内でパラ
メータの値を変更する可能性のあるパラメータ名が存在
するか否かを調べるためにパラメータ値変更有無判定手
段8を起動する。
【0016】パラメータ値変更有無判定手段8は関数の
処理手続き内でパラメータの値を変更する可能性のある
パラメータ名が存在するか否かを調べるためにパラメー
タ値変更名テーブル6中のパラメータ名を参照する。も
しパラメータ名が登録されている場合はパラメータの値
を取込むためにパラメータ値取込み手段9を起動する。 パラメータ値取込み手段9はパラメータの値が変更され
る可能性のあることが判明したパラメータ名に対しての
みアーギュメントリスト中の対応するアーギュメントか
らパラメータの値を取り出し一時変数に設定するための
コードを関数定義の入口の所に生成する。
【0017】
【発明の効果】以上説明したように本発明は、関数の呼
び出しにおけるアーギュメントとパラメータの関係が値
による受け渡しであるプログラミング言語の翻訳処理に
おいて、関数の呼び出しではアーギュメントのアドレス
を渡すようにアーギュメントリストを作成し静的なデー
タ領域にあらかじめ割付けパラメータの値が変更される
場合だけ関数の定義の入口でパラメータの値を取込むコ
ードを生成することにより、常にアーギュメントの値を
スタック等の一時領域に設定しアーギュメントリストを
動的に作成するコードを生成する方式よりも、一般にパ
ラメータの値が変更される場合が少ない通常のプログラ
ムでは関数呼び出しの回数が多くなってもアーギュメン
トリストを実行時に動的に作成する必要がないため実行
時間を短縮化できるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示す構成図である。
【符号の説明】
1  コンパイラ 2  翻訳処理部 3  関数呼び出し処理部 4  アーギュメントリスト作成手段 5  パラメータ値変更名登録手段 6  パラメータ値変更名テーブル 7  関数定義処理部 8  パラメータ値変更有無判定手段 9  パラメータ値取込み手段 10  ソースプログラムライブラリ 11  目的プログラムライブラリ 12  指示文

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  関数の呼び出しにおけるアーギュメン
    トとパラメータの関係が値による受け渡しであるプログ
    ラミング言語の翻訳処理において、関数の呼び出し処理
    でアーギュメントの値ではなく、そのアドレスを渡すよ
    うにアーギュメントリストを作成して静的なデータ領域
    に割付けるアーギュメントリスト作成手段と、関数の処
    理手続き内でパラメータの値を更新しているパラメータ
    名またはパラメータのアドレスを得ているパラメータ名
    に対して、パラメータの値が変更される可能性のあるこ
    とを示すためにパラメータ値変更名テーブルにパラメー
    タ名を登録するパラメータ値変更名登録手段と、関数の
    定義処理でその関数の処理手続き内でパラメータの値を
    変更する可能性のあるパラメータ名が存在するか否かを
    調べるためにパラメータ値変更名テーブル中のパラメー
    タ名を調べるパラメータ値変更有無判定手段と、前記パ
    ラメータ値変更有無判定手段によってパラメータの値が
    変更される可能性のあることが判明したパラメータ名に
    対して前記アーギュメントリスト作成手段によって作成
    されたアーギュメントリスト中の対応するアーギュメン
    トからパラメータの値を取り出し一時変数に設定するた
    めのコードを生成するパラメータ値取込み手段とによっ
    て構成される事を特徴とする関数のアーギュメント/パ
    ラメータ引渡し方式。
JP8577391A 1991-03-27 1991-03-27 関数のアーギュメント/パラメータ引渡し方式 Pending JPH04299426A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8577391A JPH04299426A (ja) 1991-03-27 1991-03-27 関数のアーギュメント/パラメータ引渡し方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8577391A JPH04299426A (ja) 1991-03-27 1991-03-27 関数のアーギュメント/パラメータ引渡し方式

Publications (1)

Publication Number Publication Date
JPH04299426A true JPH04299426A (ja) 1992-10-22

Family

ID=13868200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8577391A Pending JPH04299426A (ja) 1991-03-27 1991-03-27 関数のアーギュメント/パラメータ引渡し方式

Country Status (1)

Country Link
JP (1) JPH04299426A (ja)

Similar Documents

Publication Publication Date Title
US7028291B2 (en) Debugging method and debugging device
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
JP2000347871A (ja) スタブ/アダプタ自動生成器
JPH0748182B2 (ja) プログラム・エラー検出方法
JPH04299426A (ja) 関数のアーギュメント/パラメータ引渡し方式
JPH01277934A (ja) パラメータリスト参照方法の切換え方式
JP7391983B2 (ja) プログラム論理の表現を生成する方法、逆コンパイル装置、再コンパイルシステムおよびコンピュータプログラム製品
CN114489683B (zh) 一种类java语言基于JVM的函数式编程语法实现方法
JPH0520093A (ja) モジユールのコンパイル方法およびコンパイル装置
JP2871693B2 (ja) クリティカルセクション最適化方式
JPH04323729A (ja) 手続きのアーギュメント/パラメータ引渡し方式
JPH04320535A (ja) プログラム生成装置
JPH04216140A (ja) 再帰的手続き翻訳方式
JPS63163636A (ja) 並列処理実行方式
JP2000132405A (ja) インライン展開処理装置及び方法
JPH06119203A (ja) デバック行削除装置
JPH04107638A (ja) リテラル定数割り付け方式
JPS62205434A (ja) 再帰呼出し可能プログラムのコンパイル処理方式
JPS6327937A (ja) 計算機システムの絶対マイナス1番地認識方式
JPH0566949A (ja) 関数定義コンパイルドコード呼出し方式
JPH08194624A (ja) 実行形式プログラム作成方法
JPH0373026A (ja) コンパイル方式
JPS58169637A (ja) コンパイル処理方式
JPH01188956A (ja) プログラム例外処理方式
JPH0239242A (ja) 電子計算機システムの一時作業領域割付方式