JPH01277934A - パラメータリスト参照方法の切換え方式 - Google Patents

パラメータリスト参照方法の切換え方式

Info

Publication number
JPH01277934A
JPH01277934A JP63105954A JP10595488A JPH01277934A JP H01277934 A JPH01277934 A JP H01277934A JP 63105954 A JP63105954 A JP 63105954A JP 10595488 A JP10595488 A JP 10595488A JP H01277934 A JPH01277934 A JP H01277934A
Authority
JP
Japan
Prior art keywords
program
parameter list
address
argument
word
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
JP63105954A
Other languages
English (en)
Inventor
Takashi Kaneko
孝 金子
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 JP63105954A priority Critical patent/JPH01277934A/ja
Priority to US07/344,614 priority patent/US5150474A/en
Publication of JPH01277934A publication Critical patent/JPH01277934A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野〕 本発明はパラメータリスト参照方法の切換え方式に関し
、特にアドレスモードを変更(拡張)した計算機システ
ムにおいて、変更する前のアドレスモードで作成した目
的プログラムと変更した後のアドレスモードで作成した
目的プログラムとの間でパラメータリストにより引数の
受け渡しを行う場合に、パラメータリストの参照方法を
自動的に切換えられるようにしたコンパイルの方式に関
するものである。
〔従来の技術〕
周知のように、FORTRAN等の高級プログラミング
言語で記述された原始プログラムはコンパイラにより機
械語形式の目的プログラムにコンパイルされ、計算機シ
ステムにより実際に走行可能な状態となる。
一方、プログラムとしては、主たる動作を行う独立した
プログラムである主プログラムと、この主プログラムに
より呼び出されるサブルーチン副プログラムとがあり、
コンパイルされて目的フ゛ログラムとされた後に実行さ
れる場合、呼ぶ側の目的プログラム(主プログラム)と
呼ばれる側の目的プログラム(サブルーチン副プログラ
ム)との間で数値や条件等を示す引数の受け渡しが行わ
れる。なお、この引数の受け渡しは引数のアドレスを格
納したパラメータリストによって行われることが多い。
しかして、目的プログラム間でパラメータリストにより
引数の受け渡しを行う形式のプログラムの場合、−1G
にコンパイラは、呼ぶ側の目的プログラムを生成する際
にパラメータリストに引数の個数とアドレスとを格納し
、当然に、そのアドレスはその目的プログラムを生成し
た時点での計算機システムのアドレスモードに従った形
式で格納するようにしていた。
また、呼ばれる側の目的プログラムには各サブルーチン
の入口部においてパラメータリストを参照し、引数を取
り込む動作を行う命令が設けられており、その具体的手
続きはコンパイラによって規定されるが、そのパラメー
タリストの参照に用いるアドレスモードについても、上
記と同様に、その目的プログラムを生成した時点での計
算機システムのアドレスモードであった。
〔発明が解決しようとする課題〕
上述した従来の方式にあっては、呼ぶ側の目的プログラ
ムと呼ばれる側の目的プログラムとが同し時期に生成さ
れるか、あるいは異なる時点で生成されても計算機シス
テムに変化がなければ一向に問題はないが、計算機シス
テムのアドレスモードを変更した場合、例えば1ワード
アトレンジングから2ワードアドレツシングにアドレス
モードを拡張したような場合において、その変更の前後
において呼ぶ側の目的プログラムと呼ばれる側の目的プ
ログラムとが別々に生成された場合には、実行時にパラ
メータリストにより引数の受け渡しを行う場合、呼ぶ側
の目的プログラムと呼ばれる側の目的プログラムとでパ
ラメータリストのインタフェースが異なってしまうこと
となり、正確な引数の受け渡しが行えないという欠点が
あった。
例えば、呼ぶ側の目的プログラムがアドレスモードを拡
張する前に生成されたものであり、かつ、呼ばれる側の
目的プログラムがアドレスモードを拡張した後に生成さ
れたものである場合、プログラムの実行中に呼び出しを
行うと、呼ぶ側の目的プログラムではパラメータリスト
中に引数のアドレスを拡張する前のアドレスモードで格
納しであるのに対して、呼ばれる側の目的プログラムで
は呼ぶ側から渡されるパラメータリスト中の引数のアド
レスを拡張した後のアドレスモードで参照するため、引
数が全く意味を持たない値となってしまうこととなる。
・本発明は上記の点に鑑み提案されたものであり、その
目的とするところは、計算機システムのアドレスモード
が変更されたような場合に、その変更の前後において別
々に生成された目的プログラム間において実行時に呼び
出しが行われ、パラメータリストによる引数の受け渡し
が行われるような場合であっても、正確な引数の受け渡
しが行えるようにしたパラメータリスト参照方法の切換
え方式を提供することにある。
〔課題を解決するための手段] 本発明は上記の目的を達成するため、引数のアドレスを
格納したパラメータリストにより呼ぶ側の目的プログラ
ムと呼ばれる側の目的プログラムとの間で引数の受け渡
しを行う方式において、呼ぶ側の目的プログラムを生成
するに際し、パラメータリスト中に当該目的プログラム
を生成する時のアドレスモードを示すフラングを格納し
、呼ばれる側の目的プログラムを生成するに際し、パラ
メータリストのフラッグの示すアドレスモードに従って
パラメータリスト中の引数のアドレスを参照する機能を
当該目的プログラムに付加するようにしている。
〔作用〕
本発明のパラメータリスト参照方法の切換え方式にあっ
ては、コンパイラにより呼ぶ側の目的プログラムを生成
するに際し、パラメータリスト中に当該目的プログラム
を生成する時のアドレスモードを示すフラングを格納し
、また、呼ばれる側の目的プログラムを生成するに際し
、パラメータリストのフラングの示すアドレスモードに
従ってパラメータリスト中の引数のアドレスを参照する
機能を当該目的プログラムに付加する。
(実施例〕 以下、本発明の実施例につき図面を参照して説明する。
第1図は本発明のパラメータリスト参照方法の切換え方
式を適用したコンパイラの一実施例を示す機能ブロック
図である。なお、以下の説明においては、ある時点で計
算機システムのアドレスモードを1ワードアドレツシン
グから2フードアドレツシングに拡張したものとする。
第1図において、lはFORTRAN等の高級プログラ
ミング言語で記述された原始プログラムであり、コンパ
イラ2により機械語形式の目的プログラム5にコンパイ
ルされるものである。一方、コンパイラ2内には原始プ
ログラム解析部21゜パラメータリスト主成部22.目
的コード生成部23が設けられており、その実行過程に
おいてパラメータリストテーブル3と中間テキスト4と
が作成される。ここで、原始プログラム解析部21は利
用者が作成する原始プログラム1を読み込み、プログラ
ム内容を解析してパラメータリストテーブル3と中間テ
キスト4を生成するものである。
また、パラメータリスト生成部22はパラメータリスト
テーブル3の内容を読み込み、現時点における計算機シ
ステムのアドレスモードが2ワードアドレツシングであ
るならばパラメータリストの第1語に引数の個数を負値
化して格納し、パラメータリストの第2語以降に引数の
個数分だけ各引数のアドレスを2語単位で格納して目的
プログラム5を生成し、逆に現時点における計算機シス
テムのアドレスモードが1ワードアドレツシングである
ならばパラメータリストの第1語に引数の個数を負値化
せずにそのまま格納し、パラメータリストの第2語以降
に引数の個数分だけ各引数のアドレスを1語単位で格納
して目的プログラム5を生成する機能を有したものであ
る。また、目的コード生成部23は中間テキスト4を読
み込み、各サブルーチンの入口部において、引数の値の
取り込み時にパラメータリストの第1語の値が正か負か
を判断し、負ならばパラメータリストの第2語以降から
引数の個数分すなわちパラメータリストの第1語の値の
絶対値分だけ各引数のアドレスを2語単位で参照し、正
ならばパラメータリストの第2語以降から引数の個数分
だけ各引数のアドレスを1語単位で参照する機能をプロ
グラムに付加し、パラメータリスト生成部22と相俟っ
て目的プログラム5を生成するものである。
しかして、例えば、呼ぶ側の目的プログラムがアドレス
モードを拡張する前すなわち1ワードアドレ・フラッグ
のアドレスモードで生成されたものであり、かつ、呼ば
れる側の目的プログラムがアドレスモードを拡張した後
すなわち2ワードアドレツシングのアドレスモードで生
成されたものである場合、プログラムの実行中に呼び出
しを行うと、従来であればlワードアドレッシングのア
ドレスモードで作成されたパラメータリストを2ワード
アドレツシングのアドレスモードで参照するため、イン
タフェースが異なり、引数が正確に受け渡されない事態
が生じたが、本発明の実施例にあっては、バラメークリ
ストの第1語の値がフラッグとして作用し、呼ばれた側
の目的プログラムにおいてその値の正・負によりパラメ
ータリストが作成された際のアドレスモードが識別でき
、そのアドレスモードに応じて参照を行うので、呼ぶ側
の目的プログラムから呼ばれる側の目的プログラムへ引
数を正確に受け渡すことができるものである。
以下、具体的な例を用いて、より詳細に説明する。
第2図はFORTRAN言語で記述された原始プログラ
ムの例を示したものである。第2図において、100は
FORTRANサブルーチン副プログラムSUBを呼び
出す文110を含むFORTRAN主プログラムの原始
プログラムであり、200は原始プログラム100から
呼び出されるFORTRANサブルーチン副プログラム
の原始プログラムである。なお、原始プログラム100
における引数はAである。
第6図ないし第8図は本発明と比較するために本発明を
適用していないコンパイラによる動作を示したものであ
り、第6図は2ワードアドレツシングのアドレスモード
で第2図の原始プログラム100をコンパイルした場合
に生成される目的プログラムtoo−OB2°を示し、
第7図はlワードアドレッシングのアドレスモードで第
2図の[始プログラム100をコンパイルした場合に生
成される目的プログラム100−OBI’を示し、第8
図は第2図の原始プログラム200をコンパイルした場
合に生成される呼ばれる側の目的プログラム200−○
B°におけるサブルーチンの入口部で引数のアドレスの
取り込みを行う処理部の一処理例の流れ図を示している
しかして、本発明を実施しない場合、第6図および第7
図に示すように、パラメータリストPL“の第1語PL
I’には引数の個数がそのまま格納されるため、そのパ
ラメータリストPL’ が1ワードアドレツシングのア
ドレスモードで作成されたものも2ワードアドレツシン
グのアドレスモードで作成されたものも同じであり、例
えば第8図の処理部が2ワードアドレツシングのアドレ
スモードでパラメータリストを参照して引数の取り込み
処理を行うようにコンパイルされている場合、すなわち
パラメータリストPL’ の第1語PLI。
を得て(ステップS1゛)その個数分だけ第2語PL2
°以降を2語単位で取り込む(ステップ32”)ように
なっている場合には、第6図のように2ワードアドレツ
シングのアドレスモードで呼ぶ側のパラメータリストP
L’ が作成されている場合は引数の受け渡しは正しく
行われるが、第7図のように1ワードアドレツシングの
アドレスモードで呼ぶ側のバラメークリストPL’ が
作成されている場合は引数の受け渡しが正しく行われな
いことになる。
一方、第3図ないし第5図は本発明を適用したコンパイ
ラによる動作を示したものであり、第3図は2ワードア
ドレツシングのアドレスモードで第2図の原始プログラ
ム100をコンパイルした場合に生成される目的プログ
ラム100−OB2を示し、第4回は1ワードアドレツ
シングのアドレスモードで第2図の原始プログラム10
0をコツパイルした場合に生成される目的プログラム1
00−OBIを示し、第5図は第2図の原始プログラム
200をコンパイルした場合に生成される呼ばれる側の
目的プログラム200−OBにおけるサブルーチンの入
口部で引数のアドレスの取り込みを行う処理部の一処理
例の流れ図を示している。
しかして、本発明を実施した場合、第3図のように呼ぶ
側の目的プログラムの生成時の計算機システムが2ワー
ドアトレンジングのアドレスモードであれば、パラメー
タリストPLの第1語PL1に引数の個数を負値化して
格納し、パラメータリス)PLの第2語PL2以降に引
数の個数分だけ各引数のアドレスを2語単位で格納して
目的プログラム100−OB2を生成する。また、第4
図のように呼ぶ側の目的プログラムの生成時の計算機シ
ステムが1ワードアドレツシングのアドレスモードであ
れば、パラメータリストPLの第1語PLIに引数の個
数をそのまま格納し、パラメータリス)PLの第2語P
L2以降に引数の個数分だけ各引数のアドレスを1語単
位で格納して目的プログラム100−OBIを生成する
一方、原始プログラム100から呼び出される原始プロ
グラム200のFORTRANサブルーチン副プログラ
ムSUBの制御の入口部では、第5111に示すような
処理を行うようにコンパイラにより機能が付加される。
すなわち、サブルーチンの入口部において、引数の値の
取り込み時に、パラメータリストPLの第1語PLIの
値を得(ステップS1)、その値が正であるか負である
かを判断しくステップS2)、負ならばパラメータリス
トPLの第2語PL2以降から引数の個数すなわちパラ
メータリストPLの第1語PLlの値の絶対値骨だけ各
引数のアドレスを2語単位で参照しくステップS4)、
正ならばパラメータリストPLの第2語PL2以降から
引数のアドレスを1語単位で参照する。
よって、呼ぶ側の目的プログラムのバラメークリストP
Lが第3図のような2ワードアドレツシングのアドレス
モードで作成されたものであっても、または、第4図の
ような1ワードアドレツシングのアドレスモードで作成
されたものであっても、どちらの場合でも引数の受け渡
しは正しく行われることになる。
〔発明の効果〕
以上説明したように、本発明のパラメータリスト参照方
法の切換え方式にあっては、呼ばれる側の目的プログラ
ムにおいて呼ぶ側の目的プログラムのパラメータリスト
のアドレスモードを識別し、適切なアドレスモードで引
数のアドレスを参照することができるため、呼ぶ側の目
的プログラムと呼ばれる側の目的プログラムとが異なる
アドレスモードの計′nIaシステムで生成された場合
でも、例えば、呼ぶ側の目的プログラムがアドレスモー
ドを変更する前に生成されたものであって、かつ、呼ば
れる側の目的プログラムがアドレスモードを変更した後
に生成されたものである場合でも、呼び出し時における
引数の受け渡しを正しく行うことができる効果がある。
【図面の簡単な説明】
第1図は本発明のパラメータリスト参照方法の切換え方
式を適用したコンパイラの一実施例を示す機能ブロック
図、 第2図は原始プログラムの例を示す図、第3図および第
4図は本発明の実施例により生成された呼ぶ側の目的プ
ログラムの例を示す図、第5図は本発明の実施例により
生成された呼ばれる側の目的プログラムのアドレスの取
り込み処理部の処理例を示す図、 第6図および第7図は本発明を適用しないコンパイラに
より生成された呼ぶ側の目的プログラムの例を示す図お
よび、 第8図は本発明を適用しないコンパイラにより生成され
た呼ばれる側の目的プログラムのアドレスの取り込み処
理部の処理例を示す図である。 図において、l・・・原始プログラム、2・・・コンパ
イラ、21・・・原始プログラム解析部、22・・・パ
ラメータリスト生成部、23・・・目的コード生成部、
3・・・パラメータリストテーブル、4・・・中間テキ
スト、5・・・目的プログラム。 原始プログラム(FORTRAN  玉プログラム)原
始プログラムの例を示す図 第2図 本発明を実施した場合に生成される目的プログラムを示
す図第3図 本発明を実施した場合に生成される目的プログラムを示
すズ0O−OB 第5図 本発明を実施しない場合に生成される目的プログラムを
示す図第6図 本発明を実施しない場合に生成される目的プログラムを
示す図第7図

Claims (1)

  1. 【特許請求の範囲】 引数のアドレスを格納したパラメータリストにより呼ぶ
    側の目的プログラムと呼ばれる側の目的プログラムとの
    間で引数の受け渡しを行う方式において、 呼ぶ側の目的プログラムを生成するに際し、パラメータ
    リスト中に当該目的プログラムを生成する時のアドレス
    モードを示すフラッグを格納し、呼ばれる側の目的プロ
    グラムを生成するに際し、パラメータリストのフラッグ
    の示すアドレスモードに従ってパラメータリスト中の引
    数のアドレスを参照する機能を当該目的プログラムに付
    加することを特徴としたパラメータリスト参照方法の切
    換え方式。
JP63105954A 1988-04-29 1988-04-29 パラメータリスト参照方法の切換え方式 Pending JPH01277934A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63105954A JPH01277934A (ja) 1988-04-29 1988-04-29 パラメータリスト参照方法の切換え方式
US07/344,614 US5150474A (en) 1988-04-29 1989-04-28 Method for transferring arguments between object programs by switching address modes according to mode identifying flag

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63105954A JPH01277934A (ja) 1988-04-29 1988-04-29 パラメータリスト参照方法の切換え方式

Publications (1)

Publication Number Publication Date
JPH01277934A true JPH01277934A (ja) 1989-11-08

Family

ID=14421220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63105954A Pending JPH01277934A (ja) 1988-04-29 1988-04-29 パラメータリスト参照方法の切換え方式

Country Status (2)

Country Link
US (1) US5150474A (ja)
JP (1) JPH01277934A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457800A (en) * 1991-05-02 1995-10-10 Smiths Industries Aerospace & Defense Systems, Inc. Adaptable datalink interface
EP0559221B1 (en) * 1992-03-06 1999-05-12 Microsoft Corporation Method for storing programs
US5664224A (en) * 1993-07-23 1997-09-02 Escom Ag Apparatus for selectively loading data blocks from CD-ROM disks to buffer segments using DMA operations
US6199095B1 (en) * 1996-01-29 2001-03-06 Compaq Computer Corporation System and method for achieving object method transparency in a multi-code execution environment
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US7076780B2 (en) * 2001-09-13 2006-07-11 Conocophillips Company Application program interface for a computer program
US20030093774A1 (en) * 2001-11-14 2003-05-15 Ronald Hilton State-specific variants of translated code under emulation
US7743371B1 (en) * 2004-03-10 2010-06-22 Apple Inc. System and method for dynamically loading object modules
US11947993B2 (en) * 2021-06-22 2024-04-02 International Business Machines Corporation Cooperative input/output of address modes for interoperating programs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6365529A (ja) * 1986-09-06 1988-03-24 Nec Corp ル−チン間のパラメ−タ受渡し機構

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4330822A (en) * 1971-09-02 1982-05-18 Burroughs Corporation Recursive system and method for binding compiled routines
US4241399A (en) * 1978-10-25 1980-12-23 Digital Equipment Corporation Calling instructions for a data processing system
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4787034A (en) * 1984-11-14 1988-11-22 Pal Szoke Program access system
US4736320A (en) * 1985-10-08 1988-04-05 Foxboro Company Computer language structure for process control applications, and translator therefor
US4736321A (en) * 1986-05-05 1988-04-05 International Business Machines Corporation Communication method between an interactive language processor workspace and external processes
US4791558A (en) * 1987-02-13 1988-12-13 International Business Machines Corporation System and method for generating an object module in a first format and then converting the first format into a format which is loadable into a selected computer
JPS63278145A (ja) * 1987-05-11 1988-11-15 Nec Corp パラメ−タ対応検査方式
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6365529A (ja) * 1986-09-06 1988-03-24 Nec Corp ル−チン間のパラメ−タ受渡し機構

Also Published As

Publication number Publication date
US5150474A (en) 1992-09-22

Similar Documents

Publication Publication Date Title
JP2666847B2 (ja) 異種言語間連絡方式
JPH06230976A (ja) 参照をリゾルブする方法および装置
KR960035260A (ko) 소프트웨어 매크로 호출내에 검출된 에러의 위치를 표시하기 위한 방법 및 장치
JPH08339304A (ja) 機械独立コードを含むプラットフォーム標準オブジェクト・ファイルを生成する方法および装置
JPH01277934A (ja) パラメータリスト参照方法の切換え方式
US6134708A (en) Program compilation execution system
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
CN114489683B (zh) 一种类java语言基于JVM的函数式编程语法实现方法
JP3596570B2 (ja) クラスの主記憶装置への配置方法
JPH0520093A (ja) モジユールのコンパイル方法およびコンパイル装置
JPH01240934A (ja) 自動再コンパイル方法
JPH05143356A (ja) コンパイラ装置
Harrison et al. Compilation as partial evaluation of functor category semantics
JPH02130637A (ja) ソースコード翻訳方式
JPS63292338A (ja) 最適化プログラムデバツグ方式
JPH0358232A (ja) プリプロセッサ呼び出し方式
JPH0373026A (ja) コンパイル方式
JPH0566949A (ja) 関数定義コンパイルドコード呼出し方式
JPH04101237A (ja) デバッグ処理方式
JPH06348505A (ja) コンパイル方法
JPH04107605A (ja) 制御プログラム用言語処理装置
JPH0293947A (ja) 電子計算機
JPH0588934A (ja) デバツグ方式
JPS61264441A (ja) コンパイル処理方式