JPS5890248A - Inter-program control shifting system - Google Patents

Inter-program control shifting system

Info

Publication number
JPS5890248A
JPS5890248A JP56187867A JP18786781A JPS5890248A JP S5890248 A JPS5890248 A JP S5890248A JP 56187867 A JP56187867 A JP 56187867A JP 18786781 A JP18786781 A JP 18786781A JP S5890248 A JPS5890248 A JP S5890248A
Authority
JP
Japan
Prior art keywords
program
language
written
control
processing
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
JP56187867A
Other languages
Japanese (ja)
Inventor
Toshio Hirozawa
広沢 敏夫
Masaru Oki
優 大木
Katsuto Miyazaki
宮崎 勝人
Yutaka Kuwabara
桑原 裕
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP56187867A priority Critical patent/JPS5890248A/en
Publication of JPS5890248A publication Critical patent/JPS5890248A/en
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

Landscapes

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

Abstract

PURPOSE:To enable the mutual calling-out between a program of interpretation executing language and a program of compiling language, by shifting the control to the latter program on the basis of the request information given from the former program. CONSTITUTION:A described sentence 130 is provided to use newly a program 200 of the compiling type programming language to a program 100 of the interpretation executing type programming language. The information block necessary for the program 200 is produced by the sentence 130, and the control is shifted to the program 200. The control is then shifted again to a program 300 described by the interpretation executing type programming language by means of a described sentence 200 within the program 200.

Description

【発明の詳細な説明】[Detailed description of the invention]

(発明の利用分野) 本発明は、解釈実行型プログラム言語とコンパイル型プ
ログラム言語間のプログラム間順序移動制御方式に関す
るものである。 (従来技術とその問題点) 近年、旭王子計算機の」a1作指令の並びを記述するプ
ログラミング言語としてJl’On、T11.AN (
Ii’0rlnulaTranslator)、PL/
 1 (1)rngramm in g Langua
gel)々とが普及しているが、そノ1らのプログラミ
ング言語は、尚該言語仕様にもとづいて記述された文章
の並びを霜5子計r?′機が直接実行できるように、対
応するilN、子計算機用の機械語に変換され、後に′
r1℃子計算機が直接実行して処J1!ネれるものが多
い。このようにプログラム文章の並びを当該市。 子計算機用の機械語に変換ざねる処理がともなうプログ
ラミング言語をコンパイル型プログラミング言語という
。コンパイル型プログラミング言語は大規模な問題解決
用に用いらハたり、’r11’、子計算機の専門知識を
有する人達が使用することが多い。 これに対して、電子計算機の利用者が簡易にプログラミ
ングし、即当該プログラムを実行させて答を得ることが
できる解釈実行型プログラミング言語があり、AI)L
 (A pragramming Language 
)やBASIC(Beginner’ S Al l−
purposeSyml)olic In5truct
ion C0de)言語などが代表的な言語である。解
釈実行型プログラミング言語は、記述されたプログラム
文前の並びを当該1を子計算機用の機械語に変換するの
ではなく、一度各各の′電子計算機に依存しかいデータ
列の並びに変換する。通常、このデータ列の並びは中間
語(工ntermediate l、anguage)
と呼ばれており、この中間語を生成する処理を解釈フェ
ーズ処理という。次に、生成さね、た中間語を順次実行
する実行フェーズ処理によって、記述されたプログラム
文章の兼ひが処理されることになる。なお、実行フェー
ズ処理は各々の電子計算機の筒性に依存した処理となる
。 このよう々解釈実行型プログラミング言語は、100行
以下の小規模なプログラムの作成や、電子計算機の専問
外の人々が電子計算機を使用するときに多く利用されて
おり、便利である。 ところで、解釈実行型プログラミング言語を用いて、1
00行程度以下の小規模なプログラムを順次作成して行
くに従い、それらの小規模プログラム群を合わせて、よ
り機能が拡張したプログラムへと発展させたい場合が多
い。このとき、その小規模プログラムをサブ・プログラ
ノ、やザブ・ルーチンと云わねている。さらに、サブ・
プログラムの中には同一の言語仕様で記述されたものは
かりでは力く、他のプログラミング言語で記述きれたザ
ブ・プログラムを利用したい場合が多い。具体的には、
解釈実行型のプログラミング言語のプログラムからF 
OILT T(、A、Nなどのコンパイル型のプログラ
ミング言語で記述さハ、たザブ・プログラムを使用する
ことである。F OTl、T n、ANで記述されたザ
ブ・プログラムは数多く用意されており、それらが解釈
実行型プログラムTI′飴でi
(Field of Application of the Invention) The present invention relates to an inter-program order movement control method between an interpreted and executed programming language and a compiled programming language. (Prior art and its problems) In recent years, Jl'On, T11. AN (
Ii'0rlnulaTranslator), PL/
1 (1) rngram in language
gel) and other programming languages are popular, but the first programming language is still able to arrange the sentences written based on the language specifications in the same way. The corresponding ilN is converted into machine language for the child computer so that it can be directly executed by the ' machine, and later '
r1℃ child computer directly executes processing J1! There are many things that can be confused. In this way, the program sentences are arranged in the relevant city. A programming language that involves processing that involves converting it into machine language for child computers is called a compiled programming language. Compiled programming languages are not used for large-scale problem solving, and are often used by people with specialized knowledge of 'r11' and child computers. On the other hand, there is an interpretive programming language that allows computer users to easily program and immediately run the program to obtain the answer.
(A programming language
) and BASIC (Beginner' S Al l-
purposeSyml)olic In5truct
ion C0de) languages are representative languages. Interpreting and executing programming languages do not convert the sequence before the written program statement into machine language for the child computer, but once convert it into a sequence of data strings depending on each computer. Usually, this sequence of data strings is an intermediate word (intermediate l, anguage).
The process of generating this intermediate word is called the interpretation phase process. Next, through execution phase processing that sequentially executes the generated intermediate words, the combinations of the written program sentences are processed. Note that the execution phase process is a process that depends on the capacity of each computer. Such interpretive and executable programming languages are often used for creating small-scale programs of 100 lines or less, and when computers are used by people who are not specialized in computers, and are convenient. By the way, using an interpreted programming language, 1
As small-scale programs of about 00 lines or less are created one after another, it is often desirable to combine a group of these small-scale programs and develop them into a program with more expanded functions. At this time, this small-scale program is called a sub-program or sub-routine. Furthermore, sub-
Some programs are written in the same language specifications, so it is often difficult to use them, and it is often desirable to use subprograms written in other programming languages. in particular,
From a program in an interpretive programming language
This method uses subprograms written in compiled programming languages such as OILT, A, and N. There are many subprograms written in FOTl, Tn, and AN. , they are interpreter-executable programs TI' candy i

【:述されたプログラム
から使用できれば、プログラノ・開発工数の削減、過去
に作成さね、たサブ・プログラムの有効活用、など、そ
の効果はnlり知f′Lない。しかし、現状では解釈実
行型のプログラミング言語で記述されたプログラムから
、FOR1’I’R5AN’lどのようなコンパイル型
言語で記述されたプログラムを使用することはできない
。特に、尚該プログラムが尚該用電子計算機用の機械語
に変換されている状態(これをオブジェクト・プログラ
ムという。)では、解釈実行型プログラミング言語で記
述されたプログラムからは使用することができない。 (発明の目的) したがって、本発明の目的は、解釈実行型言語処理プロ
グラムにおいて、解釈実行型プログラミング言語で記述
されたプログラムからFOR,TRA、Nなどのコンパ
イル型言語で記述されたプログラムを使用できるような
制御方式や、逆に、コンパイル型言語で記述されたプロ
グラムから解釈実行型言語で記述されたプログラムを使
用できるような制御方式、すなわち解釈実行型プログラ
ミング言語とコンパイル型言飴間の実行順序移動制御方
式を考案し、その制御方式を提供することにある。 具体的には、 (1)解釈実行型プログラミング言語に、新しくコンパ
イル型プログラミング言語を使用するための記述文を設
け、 (2)その記述文の実行処理プログラムがコンパイル型
プログラミング言語で記述されたプログラムを呼び出す
だめの制御情報を作り出し、当該プログラムへ割病jを
移すことであり、(3)逆に、コンパイル型言語で記述
されたプログラムからフvr釈実行型プログラミングη
語で記述されたプログラムを使用する場合にiZj:、
W(釈実行型プログラミング言語を呼び出す処(,11
プログラムを用い、 (4)その処理プログラムが痙r釈実行型プログラム同
土間の呼び出し用記述文の中間前を作り出し、解釈実行
型言語処理プログラムの実行フェーズ処理に制御を移す
、 ことにより実現する。 このようなフケ1釈実行型プログラミング言語とコンパ
イル型言語間の実行[(序移動制御方式を考案すること
により、異種プログラミングMK74間の連結が可能と
なり、過去に作成されたプログラムの有効活用やプログ
ラム開発工数の削減の効果が期待される。 (実施例) 以下、本発明を実施例によって詳細に説明する。 第1図は、本発明によって可能となるプログラムの組合
せを示したものである。すなわち、l’l’C釈実行型
言語で記述されたプログラム100内の記述文130に
よってコンパイル型言語で記述されたプログラム200
へ制御が移り、そのプログラム200内の記述文220
によって、再びIQT4釈実行型言語で記述されたプロ
グラム300へ制御が移ることを示している。図中、各
プログラム100゜200.300間に番号付きの矢印
は各プログラム間での制御の移動順序を示している。 このように、解釈実行型言語で記述されたプログラム力
)らコンパイル型言語で記述されたプログラムを呼び出
すだめの記述文としてCA J、LTi”OR,T文が
l[設しである。この実施例ではコンパイル型言語とし
てF Of(、’]” R,A Nを用いている。ここ
で、記述文130の CALLFORT 5UBF(A、C,2,I)におい
て、CALF、Ii”O11,’]’ fd命令でfり
シ1響’ORTル宙プログラムを呼び出すこと’r:に
わし、’5UBF’はプログラム名称、()内は引数と
なる。 一方、コンパイル型言ja[で記述されたプログラム2
00から解釈実行型言語で記述されたプログラムを呼び
出すだめの記述文1l−J、CALL文である。 このCALL220は、Ii’ OTl、’l’ 11
.ANプロクラム記述文のCALL文であり、 CALL EXC(SUBI、WKl、、WK2,4.
W)において I T、:XC’はコンパイル型言語の
プログラムから解釈実行型言語で記述されたプログラム
を呼び出すノこめの制御ブログラノ、(ドライブ・)。 ログラムという。)の名称である。()内はEXCプロ
グラムへの引数であるが、第1引数の’5UBI’  
は解釈実行型プログラムで記述さnたプログラム名称を
意味する。2e:1図ではプログラム300が’5UI
31’に対応する。第2引数以降がプログラム300へ
の引数となる。当然のことながら、FOll、TR,A
Nプログラム200においてCALL文の’EXC’の
代りに他の名称を指定すれ(9) ば、FOR’[”l(、AN百飴で記述もれた当該プロ
グラムを呼び111すことかできる。同様に、解釈実行
型言語のプログラムにおいてもCALL文を用いれば尚
該プログラムを呼び出すことができる。第2図は第1図
のプログラム100において記述文130のCALLF
ORT文の代シにCALL文150を使用した例を示し
ている。この場合には、第1図のプログラム200が呼
び出されるのではなく、プログラム100を記述してい
た解釈実行型言語のプログラム300が呼び出されるこ
とになる。なお、CALLFO)t、T文130、およ
びCALL EXC文220の処理方式については、後
で詳細に述べる。 第3図は、本発明の実行フェーズ処理3000を含む解
釈実行型プログラミング言語用処理方式の構成図である
。第1図で示したプログラム100や300はソース・
プログラム格納用ファイル500に格納されており、解
釈フェーズ処理1000によって電子計算機の機械飴に
依存しない中間語(:[ntermediate :[
、anguage)が各プロ(10) ダラム毎に生成−giL、中間114iプログラム格納
用フアイル1500に格納される。一方、コンパイル型
言語で記述されたプログラム、この実施例では1i”O
f(、Tl(、AN言語で記述されたプログラム300
は、ソース・プログラム格納用ファイル550に格納さ
れておシ、Foll、Tll、ANのコンパイル処理1
050によって電子計算機の機械m1に変換でれたオブ
ジェクト・プログラムが生成される。ここで電子計算機
の機械語とは、電子計9機が内接に実行できるように2
進数表現の形式で展開された13Fのことをいう。生成
されたオブジェクト・プログラムはファイル1550に
格納される。ここで、解釈フェース処理1000やコン
パイル処理1050への入力は、ファイル500,55
0だけでなく、直接にカードを入力してもII/7わな
い。 次に、連結処理2000によって仮数の中間語プログラ
ムやオブジェクト・プログラムが結合され、実行可能プ
ログラム格納用ファイル2500に格納される。ファイ
ル2500はFlを置いて実行フェーズ処理3000で
実行したい場合に用いるも(11) のであり、連結処理2000で処理した後、直ちに実行
フェーズ処理3000で実行する場合には不必要である
。実行フェーズ処理3000は、ファイル2500、あ
るいは連結処理2000がらの出力を入カテータとして
、中間語の並びゃ機械語の並びを順次処理する。 解釈フェーズ処理1000は、第1図、@2図に示した
個々のプログラム100,300内の記述文に対して第
4図に示すような中間語を生成する。 第4図の中間語110は、四則演算命令形の一般形式で
あり、 (1)命令コード (2)付加情報 (3)第1オペランド (4)第2オペランド (5)第3オペランド の部分よシ構成される。付加情報、および各オペランド
のフラグの意味は、第4図の下段に各々示しである。な
お、中間語110の肩の数字は中間語の先頭からのバイ
ト数を示している。第4図の(12) 中間語は基本形式であり、1行の記述文が複数個の中間
語の亜ひに分解でれる場合もめる。たとえば、第1図の
プログラム100内の記述文120は、 C=A米B+2 であり、これを中間語に変換すると第5図に示すように
中間語111,112の2つの組合せとなる。 中間語111は変数名”A”の内容と変数名゛B”の内
容とで乗算を行ない結果を実行フェーズ処理プログラム
の作業エリア(EPLVALIに格納、これは第3オペ
ランドのフラグで認識する。)に格納することを表わし
、中間語112は作業エリア(J(PLVALl)の内
容に2を加えて結果を変数名″C″のエリアに格納する
ことを表わしている。テーブル113は記述文の文番号
とそれに対応する中間語の存在する場所との対応表であ
る。解釈実行型言語で記述されたプログラム内の各記述
文の中間語は、各記述文によって中間grrの形式、中
間語の長さも異なっているが、中間KtFの先頭1バイ
トには必らず命令コードが設定されている。本発(13
) 明のCALLI”ORT文、CALL文の中間語形式に
ついては後に詳細に述べることにする。 第6図は、実行フェーズ処理3000内の各処理部を表
わしたものである。実行処理部3000は、大別すると
中間語に展開された各命令の実行制御を司る命令実行制
御部400と、各命令コードに基づいた処理を行なう実
行処理部410によって構成され、命令の実行処理部4
10は第4図。 第5図に示したような四則演算の中間語を処理する四則
演算処理部420、第1図に示したCALLFOR,T
文130、RETtJRN文320、あるいはCALL
 EXC文220を処理する命令実行110序制御部4
30などで構成されている。命令実行制御部400は、
各中間語を参照し、第7図に示すような制御テーブルを
作成する。次に、各命令コードに対応して命令の実行処
理部410内の各処理部420,430などへ制御を移
す。ここで命令実行制御部400が作成する制御テーブ
ルを)i:pIJ、l5T(p:xecution p
arameter Li5t)ということにすると、E
l)LLI8Tは命令実行制御部(14) 400と命令の実行処理部4】0との間の連絡情報とな
る。Wl; 7図のEl)、]ヨJ、 T S i’の
各フィールドの名称、および意味i″、l:η)、8図
に示すようになる。ここで、η57図に示しである数値
はバイト位置(1バイトは8ビツト)を表わしており、
このEPLLISTは48バイトでなる。 第9図は第6図のfib令実行制御部400の処理を命
令の実行処理部410と関係づけて示したものである。 第9シーより、命令実行制御部400には、動作開始場
所としてスタート入口4o1(エントリ+1)、スター
ト入口402(エントリ≠す 2)、およびλスタート入ITI 403 (エントリ
≠3)の3ケ所がある。スタート入口/I (+ 1.
 l(+プログラムの実行開始時や、後述のFO]?、
’I’ Ii、AN言語のようなコンパイル型言語で記
述きれたプログラムから再びjvC釈央行型プログラノ
、に制御が移ったときに使用される。スタート人n40
2は、扁令の処理終了後に判定処理408.処J’l!
 409などを行なった後、次の命令を次行するときの
開始点となる。 リスク−1・入口4031(Jl、伸令の実行処理部4
10(T5) からの戻り入口点となる。 スタート入口401,402から処理が開始されるど、
処理404によって、第7図に示したEPT、LIST
(7)中で、EPLOI)、 El)LIADII、。 EPLINSTの各フィールドが確定され、判定処理1
405によって当該命令が実行順序変更命令力)否かの
判定がなされる。ここで実行順序変更命令とは、第1図
のプログラム100内で使用されている記述文130の
CA、LLFOT(、T文、プログラム300内の記述
文330のI) 0文、第2図の記述文150のCAL
L文などであり、命令コードが16進数表現でX’90
’(Xは16進表示を意味する。)以上の中間語である
。実行順序変更命令以外の場合には、処理406によっ
て第7図に示したEPLLISTの残りのフィールドが
確定され、実行処理部410内の当該処理部に、そのE
PLLISTが引渡される。 本発明においては、解釈実行型言Kttで記切ミされた
プログラムからコンノくイル型言語で貰己述されたプロ
グラムを呼び出したり、逆にコンノ(イル型言(16) 飴で記述されたプログラムからブ竹釈実行型言語で記述
されたプログラムを呼び出すための制御方式にある。j
’l’r釈実行型言*/FT 17) CALLI”O
l(、’[’文(第1図の記述文130)、I?、I弓
’J’ U T1.N文(第1図の記述文320)、C
A L :r、文(第2図の記述文150)などが実行
順序変更命令となり、それらの中間語内での命令コード
(EP L OPに設定される値)は、16進表示で各
々、X’AE’、X’9F’。 X’9E’となる。したがって、命令実行制御400の
処理においては、第9図の判定処1!! 405の後、
直ちに当該処理がなされることになる。以下に各記述M
’ itt間での制御の移動処理方式について説明する
。 まず、岸r釈実行型言語で記述されたプログラムからコ
ンパイル型言語で記述されたプログラムを呼ひ出した場
合、すなわちコンパイル型言語で記述されたプログラム
へ制御を移すだめの処理方式について説明する。コンパ
イル型言語として代表的なFOR,TRANを用いるこ
とにする。これは、第1図のプログラム100内で記述
文130の(17) CALLFORT文で行なうことは先程述べた。 CALLFORT文130の中1’8’j mは、第1
0に示すような中間語114のようになる。このCAL
LFOll、T文においては、FORTRANのプログ
ラム名’5UBF’への引数が4個′tりシ、中間語は
合計28バイトで構成される。中間語114において、
第0バイト目の1バイトはCALLFORT文に対応す
る命令コードであり、16進表現でX’AE’が設定さ
れている。第1バイト目は引数の個数を表わす。第2バ
イト目から第3バイト目壕での2バイトによって第12
バイト目以降の引数の存在アドレスの格納方法を表わし
ている。これを引数フラグと呼んでおり、ビット位置0
がらビット位置15までの各々のビットが、各引数に対
応する。 なお、引数フラグの長さは引数の個数が16個以下の場
合には2バイトとなり、17個以上になると4バイト、
33個以上になると6バイトと増加する。引数フラグの
意味は、当該中間語の引数エリアの内容がアドレスを示
しているならばo″となシ、当該引数エリアの内容が引
数値を示して(18) いるならば”1”となる。したがって、記述文130で
は引数が4個あり、W、3番目の引数が変数名ではなく
直接に数値が制式れているため、その中間語の当該引数
エリアに数字の2が入り、引数フラグもX’0200’
(PROビットから数えて第2ビツト目がl”、すなわ
ちη1,3酢目の引数エリアに引数値が格納されている
ことを表わす。)となる。中間語114の卯、4バイト
目からの4バイトによってプログラム・ドライブ・ルー
チンのアドレスが格納されている。このドライブ・ルー
チンのアドレスはW(釈実行型宜飴のプログラムかうF
 01L’l’ f(、A Nのコンパイル型プログラ
ムを呼び出す3局合には、第10図のプログラム450
内入口点¥CA L F 0111T 451のアドレ
スが入っており、後述〕FOR,TlLANのコンパイ
ル型プログラムから解釈実行型プログラムを呼ひ出す場
合には入口点EXCR453のアドレスが格納される。 なお、本実施例においてはF 011.T II、AN
を対象としているが、I’ L/ 1やCOBOL(C
OmmOn 13uissinessQriented
 1.anguage)を対象とした場合には、(19
) このアドレスを入れ賛えるだけで良い。ま1こ、プログ
ラム450内の入口点452(EXC)、入口点453
(EXC几)の使用法は後に述べる。中間語114の第
8バイト目からの4バイトB、FORTll、ANフ”
ログラム’5UBF’200の存在アドレスを示してお
シ、第12バイト目以降が引数エリアでりる。 第6図の命令実行制御部400からEPLLI STを
パラメータとして実行処理部410内の当該処理ルーチ
ン、すなわちCALLII’011.T文の命令コード
処理ルーチンに制御が移ったときの処理フロー図を第1
1図に示す。 第11図より、処理1は中間語114の第4バイト目よ
りフ゛ログラム・ドライブ゛・ル−チンのアドレス(α
。)を取り出し、そのアドレス値のプログラムへft7
1J御?!l−移す。解釈実行型言Ktfのプログラム
からコンパイル型言胎のプログラムを呼び出した場合に
は、処理2〜10が選択される。 処理2はF O1(、’I’ I(、ANプログラム間
連絡用のために電子計算域内の汎用レジスタの退避領域
を確保するためのものであり、退避領域は第12図に示
(20) すように72バイトで構成きれる。第12図では領域4
70が¥CAI、FOI1.Tプログラム450で確保
した退避領域を表わし、領域480が1;’OR,TJ
?ANプログラム’ S UH,l’i”の退避領域を
表わす。処FJ! 2によって確保した領域470は処
理8によッテF OIt、T l(、ANプログラム’
5UI3F’に制御が移ったときに、その’ SU]3
F ’プログラムが第12図に示すレジスタ番号順にレ
ジスタの退避処理を行ない、退避領域の存在アト1/ス
は、第11図で示した¥CALFOILTプログラム4
50からレジスタ番号13 (R13で略称)で’5U
i3F’プログラム200に知らされる。 処理3から処理7までは、FOIl、’J”11.AN
プログラム’5UBI’へのパラメータ・リスl−(P
AIIMLIST)會作成するものであり、第13図に
パラメータ・リストの形式を示す。第13図より、パラ
メータ・リストの1エントリは4バイトで構成てれ、引
数の1161数分のエントリが作られることになり、最
後のエントリの先頭1バイトを16進表示でX’80’
とすることによシ最終パラメータであることを意(21
) 味する。このパラメータ・リストの存在アドレスは、¥
CALLFO1(、Tプログラム450からレジスタ番
号1(R,1で略称)で’SUM’“プログラム200
に知らされる。なお、判定処理5によって中間語114
内の引数の個数がセロのときには、レジスタ番号1(R
,1)の内容をゼロにすることにより、′5UBF1 
プログラムに対して引数が存在しないことを教える。 処理6は第10図に示した中間語114の引数フラグ、
および引数エリアを順次調べてパラメータ・リスト46
0の内容を確立するものである。 具体的には、引数対応に引数フラグの当該ビットを調べ
て、 (1)  アドレス値(B’0’)’に示していたなら
ば、中間語内に格納された引数の内容をパラメータ・リ
ストの各エントリに格納する。丁なわち、第10図の中
間語114内のβ′1.β′1.β′4をパラメータ・
リストの尚該エントリに格納する。 (2)定数値(B’l’)を示していたならば、中間語
114内の当該引数エリアのアドレスを格納す(22) る。すなわち、第10図の中間語114内の引数3エリ
アのアドレスα、全尚該パラメータ・リスト内エントリ
に格納する。 処理を行なう。以上の処理6によって、第10図のパラ
メータ・リスト(PA、RMLIST)460内各エン
) IJと各引数との関係は、矢印461〜464のよ
うになったことになる。 処理7は、T!”OI(、T It、ANプログラム’
 5UBF ’200から戻ったときに、次に実行すべ
き中間語のアドレス計算を行なうものである。 処理8は、’5UBF’のIi’011.TJLANプ
ログラム200へ制御を移すための処理であり、レジス
タ番号15(R15で略称)に中間語114の第8バイ
ト目か・ら4バイトで示されたザブ・プログラム存在番
地(α/、)を得て、ザブ・プログラム200からの戻
シ番地をレジスタ番号14(11,14で略称)にセッ
トし、当該サブ・プログラムに制御を移す。制御の移し
方は、レジスタ番号15の内容の番地(アドレス)にブ
ランチすれば良い。以上に述べた、T;’01(、TI
(、ANプログラムにおけるプログラム間制御移動(2
3) 時のレジスタの使用方法?il−第14図に示す。なお
、本レジスタの使用方法など、ノログラム間連絡規則の
詳細は下記刊付物を参照されたい。 「11■TACVO82/VO33最適化lイ゛01(
、’1’ I(、AN使川用手引」 日立製作所参名図畳類 8080−3−208また、本
実施例はF Of(、T I(、A Nプログラムへの
制御の移動方式について述べたもので必るが、本規則に
合致すればアセンブラで記述畑扛だプログラムへの制御
の移工]のも可能であり、きらに、PL/1などのIi
’ OL(、T b、AN言語以外の記述−ei’ =
のプログラムへ制御を移す場合も、画形1“詔に合致し
た処理上行なうプログラム・ドライブ・ルーチンを¥C
AhFORTプログラム4500代りに作成すれは艮い
。 再び第11図を骸照丁ゐvC1処」土8が終了するとプ
ログラムの実行形態は、中間語を順次解釈実行する動作
モードから、電子割算機が熾械gf)の並びkjfff
i接に実行する動作モードに切替わることになる。 (24) 1i”OLL’l’H,ANのプログジノ・200が面
1子i−i算機によって161接に実行され、な1,1
図のI(J>TUfl、N文230によって、町びjl
il)御が第111ツ1の処理9へ戻ることになる。処
理9で幻、解釈実行型プログラムの次の中間語を実行す
るアドレスを第7図に示したEPLL 、T S ’I
’内のE 1)L NA D It、に設定し、必要な
フラグ類を設定した後に、処11!10によって実行制
御部400内のりスタート・エントリ403へ戻ること
になる。したがって、解釈実行型言語の処理プログラム
(実行フェーズ処!町からみた場合、CALLFOH,
’J’文によって連dσ1されるF OI(、T R,
ANプログラム200などに1、CA、T、、LPOR
,T文の都令の処理中どみなすことができる。当然のこ
とながら、コンパイル型言at十のプログラム、たとえ
ばFOR,T1.ANプログラムから、同様なコンパイ
ル型言lf4のプログラムを呼び出すことは可能でめる
。 次に、コンパイル型M胎のプログラムから解釈実行型官
1ftFのプログラムを呼び出した場合の制御方式につ
いて説明する。この使用例は第1図で示(25) したFORTI(ANのプログラム200内の記述文2
20から解釈実行型言語のプログラム300を呼び出し
た場合でるる。F OR1’ I(、ANのプログラム
ではCA L L文により、EXC”というプログラム
を呼び出し、′EXC”のプログラムが制御移動用の処
理プログラムとなる。”EXC”プログラムへの引数の
うち、第1引数が解釈実行型言語プログラムのプログラ
ム名称となることは先に述べた。 ”EXC”プログラムは第10図に示した¥CALF’
ORT処理プログラム450内の入口点452にあり、
当プログラムの操作概念線を第15図に示す。EXC”
プログラムはコンパイル型言語と解釈実行型プログラム
間のインタフェースを司るものであり、以下の処理を行
なう。 (1)  コンパイル型言語のプログラム、たとえばF
ORT)LANプログラムからの連絡規則にもとづく処
理、具体的にはレジスタ類の退避処理とパラメータ・リ
ストの受は取り処理を行なう。 (2)  パラメータ・リスト465をもとにして解釈
実行型言語におけるCALL文の中間語115(26) をqユ成する。 (3)中1iiJ#fi 115 ノ次の命令をCAI
JLJI”OJ(、T文の中間語11Gを作り、プログ
ラム・ドライブ・ルーチンのアドレス’;r−”J「:
XC”プログラム内の再スタート点“EXCIじ453
とする。 (’I)  中1’rt1%’+ 115 ノCA L
 L文(r lIl’r釈実行型言語の実行番地として
、実行フェーズ処理/100内のスタート・エントリ4
0 Jにi17制御を移す。 (5)実行フェーズ処理400にj:中間語115をロ
ケートし、当該CA、 L L命令(命令コード:X’
9E’)の実行処理部410内の酒該処理プロクラムに
制御を移す。なお、cAIJL命令の処理方式について
は後に述べる。 (6)解釈実行型言語で記述されたプログラム(本実施
例では第1図のプログラム300)が順次解釈・実行処
理される。 (7)解釈実行型言語で記述されたグログラムの11、
E T U It、N文(本実施例テi−+プログラム
3oo内の記述文320)か実ヤIンエーズ処J、!I
! 3000によって実行をれ、(3)テ生成し/c 
CA、LLFO+1.T(27) 命令のI:I−I開始1167%0ケートされる。 (8)  CALIJ”01(、T加令の中間語116
においては、プログラム・ドライブ・ルーチンのアドレ
スは”EXC”プログラムの再スタート・アドレス“E
X(Jt”(α“。)となっており、第11図に示した
CALLFORT命令の処理フロー図のうち、処理11
.12が選択される。 (9)  EXCR,”入口点453においてU、”E
XC”入口点452の処理で退所したレジスタを回復し
、コンパイル型言飴で記述されたプログラム、すなわち
”EXC”プログラムを1呼び出したプログラムに戻る
。 以上に述べた処理、およびfl+制御方式盆考案するこ
とにより、コンパイル型’D−wiT N己述悼れたフ
“ログラムから触釈¥竹型言flatで記述されたブロ
クラムに制御ヶ移し、書ひttilJ側jを戻すことが
可能でりる。 第16図はEXC”プログラム入口点452の処理フロ
ー図金表わしたものでめる。処理15はプログラム20
0が本″EXC″プログラムを呼び(28) 出したときに第14図に示すレジスタに各種情報が格納
されているため、レジスタ13が示す領域にレジスタの
内容を退避ツーる。すなわぢ、退避領域の関係を示した
第12図を参照するに、領域470が呼び出したプログ
ラムが確保した領域であり、領域480が呼び出された
プログラムが確保する領域となる。したがって、処理1
5では領域470にレジスタの内容を退避し、領域48
0を新たに確保する。なお、新たに確保するレジスタ退
避用の領域は、先に述べた¥CALF’On、Tプログ
ラムが確保した領域とは異なるものである。また、I!
;XC”プログラム入口点452、EXCR”入口点4
53と¥CALri”Oll、Tプログラム入口点45
1とは同一のプログラム450内に存在するものとして
説明しであるが、特にその必要性はない。これは、¥C
A ]、、F’ 01(、Tプログラムが(rfli 
(呆するレジスタ退避領域とEXC”プログラム入口点
のプログラムが確保するレジスタ退避領域が異なるため
である。しかし、”EXC”プログラム入口点と”EX
CR”プログラム入口点とは同一のプログラム(29) の方が良い。 処理16は、第15し1に示すようにレジスタ1(R1
)が指すパラメータ・リストfPAI(、MLI 8T
)465をもとにして中間語115に示すようなCAL
L文(都令コード:X’9E’)を作ム矢印群466で
示す関係を確立する。なお、レジスタ1の内容がゼロ、
すなわちパラメータ・リストが存在しない場合には中間
語115の引数エリア(第8バイト目以降)は生成され
ない。CA T、 L文の中間語の形式については後述
する。 処理17は、CALFOI(、T文(命令コード:X’
AE’)中間語116を生成するものであり、第10図
に示した中間語114に比べて、引数の個数がゼロ、引
数フラグがx’oooo’、プログラム・ドライブ・ル
ーチンのアドレス(α“。)が¥CALFOIもT入口
点451ではなく、EXC几”入口点453のアドレス
、ザブ・プログラムの存在番地の格納エリア(第8バイ
ト目から第11バイト目)がゼロになっているのが特徴
である。 ″EXC″プログラム入口点452(処理フロー(30
) 図は第16図)で生成された(、’ALLJI’OJ(
、’l’文の中間語116においてプログラム・ドライ
ブ・ルーチンのアドレス(α“。)にEXCI+、”入
口点453のアドレスが設定されており、との”EXC
Il、”入口点453の処理は)竹釈実行型宜Plt、
jで記述されたプログラムの処理からコンパイル1II
I1貫飴で記述されたプログラムに制御を移すブこめの
処理を行なう。 EXC11,” 入口点の処〕ψフロー全第11図の処
jさ+tx1.処:r++>12に示す。処理11に1
:、”EXC”入口点の処理15で退避しノこレジスタ
の内容を回復し、処理12はコンパイル型言語で記述さ
れたプログラムへ戻る処理である。戻り先アドレスは第
14図に示すように、レジスタ14に設定されているた
め、レジスタ14の内容のアドレスに制御を移せば良い
。 次に、解釈実行l−1!言語で記述されたプログラム同
士での制御の移動方式について説明する。これは、″E
XC″プログラム入口点452で作成した中間語115
で呼び出されるプログラムが解釈実行型言語で記述され
たプログラムのためである。 (31) 一般には、解釈実行型言語で記述されたプログラム同士
の連絡は、第2図で示したような記述方法全採用する。 第2図の記述文150,310,320に対応する中間
語は、各々中間語117.118. IH)のようにな
る。 中間語117において、第2バイト目がCAI、L文に
対応する命令コードであり、16進数表示のX’9E’
となる。卯:1バイト1]が引数の個数を表わし、第2
バイト目から汀−3バイト目捷での2バイトが引数フッ
クである。引数フラグは中間語内の引数エリアの格納方
法を示しており、その使用方法は、先に述べたCALL
FOll、T文の中間語の引数フラグと同じである。す
なわち、引数フラグのビット位置Oからビット位置15
壕での各々のビットが各引数に対応しており、当該引数
エリアの内容が変数のアドレスを示しているならば“0
”となり、当該引数エリアの内容が引数の実体を示して
いるならば1”となる。たとえば、記述文150の例で
は第3引数がリテラル・テークであシ、中間語117の
引数エリアに2の数値が入る。 (32) したがって、引数フラグは16進数表示でX’2000
’となる。この引数フラグの長さは引数の個数が16個
以下の場合には2バイトとなυ、17個以上になると4
バイト、33個以上になると6バイトへと増加する。な
お、第15図で示した″EXC″プログラム入口点45
2で生成された中間語115の引数フラグは必らず全ビ
ットが0″である。 中間語117のグー、4バイト目力)ら4バイトによっ
て、サブ・プログラム、すなわち呼び出されるプログラ
ム300の存在番地を示しておシ、記述文310の存在
するアドレス(α、)が格納される。 第8バイト目以降は引数エリアとなり、1個の引数当9
4バイトつつ確保される。M[j−;Is文150の例
では引数のlli!if数が4個でりり、引数エリアが
16パイ) 、CA L L命令の基本部が8バイトの
合計24バイト長の中間KI+117となる。 第18図は命令の実行処理部410内の当該処理部43
0に関してCA L L命令の処理手順を示したもので
必る。第18図より、処理20はザブ・(33) プログラム側の中間語118のアドレスを憶えるもので
あplこれは後に実行アトVスの計算に用いられる。ま
た、処理21によって第17図の5UBROUTINE
文310に対応する中間語118内にCALL文の中間
語117内の@1引数のアドレスが格納され、矢印12
1の関係っけがなきれる。判定処理22は、呼び出すプ
ログラムと呼び出される側でのプログラム間での引数の
個数の一致性の検査処理であり、不一致の場合には処理
23〜処理26がなされる。これはエラー処理でめる。 判定処理27によって引数の個数がゼロでめるか否かの
検査がなされ、引数の個数がゼロのときには処理28.
29が選択される。処理28.29によってサブ・プロ
グラム300内のh己達文でめる5UHRO[JTIN
E文310文人10じ達文か実行可能となる。 引数の個数が1以上の場合には、処理30〜処理32が
選択さ1しる。処理30は第15図や第17図で示した
CALL文の中間語115,117内(34) の引数エリアの内容を5LJJI几OU”J’INE文
310に対応する中間語118内の引数エリアに移すも
のである。引数エリアの8動は、CALL文の中間語1
15や中間語117内の引数フラグを調べて行なわれる
。すなわち、引数フラグの各ビットが各引数に対応し、
尚該ビットが、 (1)  アドレス値(B’O’)Q示していたならば
その値の示す内容を中間語118内の当該引数エリアに
格納する。たとえば、β1が指す内容は変数へのγ1と
なり、そのγlが中間語118内の第8バイト目から4
バイトに格納する。 (2)  定数値(B“11)を示していたならば、そ
の値を格納する。たとえば、甲間酉117の第3引数に
対応する引数フラグのビット値はLl’l’となってお
り、β、の値で必る2の数値が中間語118内の引数3
エリア(第1 にバイト格納する、 処理が行なわγLる。ここで、引数に配列データのよう
な複数のデータ列の集シを指定した場合には甲Iff]
N4j 115, 117内の引数フラグの当直ビット
値(35) はB’l’と1つておジ、l131(、OtJ’l’I
NE文の中間語118内の当該引数エリアには配列デー
タの先頭アドレスが入り、結果として、第2図のプログ
ラム300からプログラム100内の配列データの参照
が可能となる。 一方、コンパイル型言語で記述さ牡たプログラム200
(第1図参照)からJ(11釈夷行型言語で記述された
プログラムを呼び出した場合には、先程述べたようにプ
ログラム・ドライブ・ルーチンである“EXC”プログ
ラム452が介入する(第15図参照)、この″15X
C″プログラム452は第15図に示した中間語115
を生成し、このときの引数フラグはすべてビット値”0
”となっている。したがって、コンパイル型言語で記述
てれたプログラム200から解釈実行型言語で記述され
たフ”ログラム300へ配列データを変数として渡す場
合には、FO)i,TH,AN訛記達文IPTR=AD
]))(、(ARAY(I))の関数コールを行ない、
変数名I P ’J” H,忙”]らXC”プログラム
への引数とする。ここでA. I) D几関数(36) は、配列データが格納されている変数エリア名A− I
t, A. Yの1番目の格納アドレスk Mt−N:
する機能である。 再び第18図全参照するに、処理31によってグログラ
ム300内のSUI:IR,OUT.iNE文310の
れることになる。 第1図,第2図のプログラム300内の各記述文が実行
され、記述文320の1(、1響:”J’ U 11.
N文に出逢うと、プログラムの実行順序制御全本プログ
ラム300全呼び出したプログラムへ戻す処理がなされ
る。記述文320のn.E T U rLN文の中間語
は、中間語119のようにしている。すなわち、中間語
119の第0バイト目はit,l:TUIl.N命令の
命令コードX′91+1が格納され、第1バイト目はゼ
ロである。第2バイト目から第5バイトI]までの4バ
イトには、SUBIL01J’l’INE文310の中
間語118の存在アドレスが設定されている。 第19図は命令の実行処理部410内の幽該処(37) 理に関してRETURNm令の処理手順を示したもので
ろる。処理35によって、第17図の中間語119より
SUBROUTINE文の中間語118のアドレス(α
1)を得て中間語118ケロケートする。 処理36は自サブ・プログラム300を呼び出したプロ
グラムの引数エリアのアドレスKlるための処理である
。判定処理37によって引数の個数がゼロならば、処理
38.39が選択される。処理38では処理36で得た
引数エリアの先頭アドレス(PTI(、3)全1cPL
LIST内のEPLNADRに格納することにより、本
プログラム300を呼び出した記述文の次の記述文へ戻
ることができる。 引数の個数がセロでない場合には、処理40〜処理42
が選択される。処理40は中間語118内の引数エリア
の情報上、順次本プログラムを呼び出した中[…飴11
5や中間語117の引数エリアに移す処理を行なう。こ
のとき、CALL命令の中間語内の引数フラグの当該ビ
ットを調べて、(1)  アドレス値(H’O’)’に
示していたならば、呼び出されたプログラム側の中間語
118内の当(38) 該引数エリアの情報を呼ひ出した10グラム側の中間語
117の当該引数エリアの内容が示す領域に移す。たと
えば、中間Nit 118内の、第8バイト目の引数1
エリアの内容を中間語117の第8バイト目の内容が示
す領域、すなわちβ。 番地へ移すことになる。 (2)定数値(13’l’)を示していたならば、中間
語118内の当該引数エリアの情報の移動は行なわない
、 処理を行なう。上記の処理において、1個の引数の処理
毎に中間語117の引数エリア全ポイントしているJ)
TJl、 3は4づつ加貌ネれる。したがって、処理4
0内で上記の処理な引数の個数回繰返した後その処」1
11が終了し、処J’l!/I 1へ移ったときには1
’ T 1.3は本ザブ・プログラム:300を呼び出
したHIシ述達文必るC A L L文の次の中間語を
ロケ−1・することになる。処理/11..42は処理
38゜:15)と同一の処理であり、木ザブ・プログラ
ム300を呼び出した記述文の次の記述文が実行できる
ことになり、;治2図のプログラム300から(39) プログラム100へ制御がI+1び戻ることになる。 一方、第1図のプログラム200からプロクラム300
を呼ひ出していた場合にケ;1、第15図に示した中間
語1150次の中間語116へflj制御が移υ、先程
述べたよりに、中間語116を実行することによって″
EXCII、″プログラム入口点453の処理がな式れ
、結果としてコンパイル型言語で記述込れたプログラム
200へ制御が戻ることになる。 以上に説明したごとく本発明によって、解釈実行型ブロ
クラミング言語で記述込れたプログラムとコンパイル層
1店プログラミング言語で記述されたプログラム間で、
お立いのプログラム同士が相手のプログラム文呼ひ出せ
ることができる制御方式を提供することにより、次の効
果が期待できる。 (1)過去に作成されたコンパイル型名飴のプログラム
ラ解釈実行型ち飴のプログラムから利用でさる。 (2)  コンパイル型言語のプログラムから解釈実行
型言語のプログラムケ利用することができる。 (40) (3)  (1)(2)により、プログラム開発工数の
削減が期待できる。
[: If it can be used from the program described above, the effects such as reduction of programming/development man-hours, effective use of sub-programs that were created in the past, and so on are immeasurable. However, at present, it is not possible to use a program written in any compiled language, such as FOR1'I'R5AN'l, from a program written in an interpretive/executable programming language. In particular, if the program has been converted into machine language for the computer (this is called an object program), it cannot be used from a program written in an interpretive programming language. (Object of the Invention) Therefore, an object of the present invention is to make it possible to use a program written in a compiled language such as FOR, TRA, or N from a program written in an interpretive programming language in an interpretive language processing program. conversely, a control method that allows a program written in an interpreted language to be used from a program written in a compiled language, i.e., an execution order between an interpreted programming language and a compiled language. The purpose of this project is to devise a movement control method and provide that control method. Specifically, (1) a new descriptive statement for using a compiled programming language is provided in an interpreted programming language, and (2) a program that executes the descriptive statement is written in a compiled programming language. (3) conversely, from a program written in a compiled language to a program written in a compiled language,
iZj:, when using a program written in
W (where the interpretation/execution programming language is called (, 11)
(4) The processing program generates an intermediate statement for calling the translation-execution type program and transfers control to the execution phase processing of the interpretation-execution type language processing program. By devising an order movement control method between such an execution type programming language and a compiled language, it is possible to connect different types of programming MK74, and it is possible to effectively utilize previously created programs and program The effect of reducing development man-hours is expected. (Example) The present invention will be explained in detail below with reference to an example. Fig. 1 shows a combination of programs made possible by the present invention. , l'l'C A program 200 written in a compiled language using the descriptive statement 130 in the program 100 written in an executable language
Control is transferred to the descriptive statement 220 in the program 200.
This indicates that control is transferred again to the program 300 written in the IQT4 interpretation/execution language. In the figure, numbered arrows between each program 100, 200, and 300 indicate the order in which control is transferred between the programs. In this way, the CA J,LTi"OR,T statement is used as a descriptive statement to call a program written in a compiled language from a program written in an interpreted/executable language. In the example, F Of(,']" R, A N is used as the compiled language.Here, in CALLFORT 5UBF(A, C, 2, I) of statement 130, CALF,Ii"O11,'] 'To call an ORT program using the fd command, '5UBF' is the program name, and the arguments are in parentheses.On the other hand, a program written in the compiled type language 2
This is a description statement 1l-J, a CALL statement, for calling a program written in an interpretation-executable language from 00. This CALL220 is Ii' OTl, 'l' 11
.. This is the CALL statement of the AN program description statement, and CALL EXC (SUBI, WKl, , WK2, 4.
In W), IT:XC' is a control program for calling a program written in an interpreter-executable language from a program in a compiled language (drive). It's called a program. ). Inside () is the argument to the EXC program, the first argument is '5UBI'
means the name of a program written as an interpreter-executable program. In the 2e:1 diagram, program 300 is '5UI
31'. The second and subsequent arguments are arguments to the program 300. Naturally, FOll, TR, A
If you specify another name in place of 'EXC' in the CALL statement in the N program 200 (9), you can call the program that was omitted from the description in FOR'['l(, AN Hyakuame).Similarly, Furthermore, even in a program written in an interpretive language, the program can be called by using the CALL statement.
An example is shown in which a CALL statement 150 is used in place of the ORT statement. In this case, the program 200 in FIG. 1 is not called, but the interpreting and executing language program 300 in which the program 100 was written is called. Note that the processing methods for CALLFO)t, T statement 130, and CALL EXC statement 220 will be described in detail later. FIG. 3 is a block diagram of a processing scheme for interpretive-executable programming languages that includes execution phase processing 3000 of the present invention. The programs 100 and 300 shown in FIG.
It is stored in the program storage file 500, and the intermediate language (:[ntermediate:[
, anguage) is generated for each program (10) Durham and stored in the intermediate 114i program storage file 1500. On the other hand, a program written in a compiled language, in this example, 1i”O
f(, Tl(, Program 300 written in AN language
is stored in the source program storage file 550, and compile processing 1 of
050, an object program is generated that can be converted into the electronic computer machine m1. Here, the machine language of electronic computers is 2 words that can be executed inscribed by 9 electronic computers.
It refers to 13F expanded in the form of base number representation. The generated object program is stored in file 1550. Here, the input to the interpretation phase processing 1000 and the compilation processing 1050 is from the files 500 and 55.
Not only 0, but even if I input the card directly, I don't get II/7. Next, the mantissa intermediate language program and object program are combined by a concatenation process 2000 and stored in an executable program storage file 2500. The file 2500 is used when it is desired to place Fl and execute it in the execution phase process 3000 (11), but it is not necessary when it is executed in the execution phase process 3000 immediately after processing in the concatenation process 2000. The execution phase process 3000 uses the output from the file 2500 or the concatenation process 2000 as an input categorizer to sequentially process intermediate language sequences and machine language sequences. The interpretation phase process 1000 generates intermediate words as shown in FIG. 4 for the descriptive sentences in the individual programs 100 and 300 shown in FIGS. 1 and 2. The intermediate word 110 in FIG. 4 is a general format of four arithmetic operation instructions, including (1) instruction code, (2) additional information, (3) first operand, (4) second operand, (5) and third operand. is configured. The additional information and the meaning of each operand flag are shown in the lower part of FIG. 4. Note that the number at the top of the intermediate word 110 indicates the number of bytes from the beginning of the intermediate word. (12) Intermediate words in Figure 4 are the basic form, and there are cases where one line of descriptive text can be decomposed into multiple intermediate words. For example, the descriptive sentence 120 in the program 100 in FIG. 1 is C=AUSB+2, and when this is converted into intermediate words, it becomes a combination of two intermediate words 111 and 112 as shown in FIG. The intermediate word 111 multiplies the contents of variable name "A" by the contents of variable name "B" and stores the result in the work area (EPLVALI) of the execution phase processing program, which is recognized by the flag of the third operand. The intermediate word 112 represents that 2 is added to the contents of the work area (J (PLVALl)) and the result is stored in the area with the variable name "C". This is a correspondence table between the number and the location of the corresponding intermediate word.The intermediate word of each written statement in a program written in an interpretive language is determined by the format of the intermediate grr and the length of the intermediate word depending on each written statement. Although this is different, an instruction code is always set in the first byte of the intermediate KtF.
) The intermediate language forms of the CALLI"ORT statement and the CALL statement will be described in detail later. FIG. 6 shows each processing unit in the execution phase process 3000. , roughly divided into an instruction execution control unit 400 that controls the execution of each instruction developed into an intermediate language, and an execution processing unit 410 that performs processing based on each instruction code.
10 is Figure 4. The four arithmetic operation processing unit 420 that processes the intermediate word of the four arithmetic operations as shown in FIG. 5, the CALLFOR, T shown in FIG.
Statement 130, RETtJRN statement 320, or CALL
Instruction execution 110 order control unit 4 that processes the EXC statement 220
It consists of 30 etc. The instruction execution control unit 400
A control table as shown in FIG. 7 is created by referring to each intermediate word. Next, control is transferred to each processing section 420, 430, etc. within the instruction execution processing section 410 in accordance with each instruction code. Here, the control table created by the instruction execution control unit 400 is
parameter Li5t), then E
l) LLI8T serves as communication information between the instruction execution control unit (14) 400 and the instruction execution processing unit 4]0. Wl; El in Figure 7),] YoJ, T S i' field names and meanings i'', l: η), as shown in Figure 8. Here, the numerical values shown in Figure η57 represents the byte position (1 byte is 8 bits),
This EPLLIST consists of 48 bytes. FIG. 9 shows the processing of the fib instruction execution control section 400 of FIG. 6 in relation to the instruction execution processing section 410. From the 9th sea, the instruction execution control unit 400 has three locations as operation start locations: start entrance 4o1 (entry + 1), start entrance 402 (entry ≠ 2), and λ start input ITI 403 (entry ≠ 3). be. Start entrance/I (+1.
l(+When starting program execution or FO described later)?
'I' Ii is used when control is transferred from a program written in a compiled language such as the AN language to the jvC parallel programming language. Starting person n40
2 is a determination process 408. Where J'l!
After executing 409, etc., it becomes the starting point when executing the next command. Risk-1 Entrance 4031 (Jl, execution processing unit 4
This is the return entry point from 10 (T5). As the process starts from the start entrances 401 and 402,
By processing 404, the EPT and LIST shown in FIG.
(7) in EPLOI), El) LIADII,. Each field of EPLINST is confirmed, and judgment processing 1 is performed.
At step 405, it is determined whether the command in question is an execution order change command. Here, the execution order change commands are CA, LLFOT (, T statement, I of the descriptive statement 330 in the program 300) of the descriptive statement 130 used in the program 100 in FIG. CAL of 150 descriptive sentences
L statement, etc., and the instruction code is X'90 in hexadecimal notation.
' (X means hexadecimal representation.) This is an intermediate word. In cases other than execution order change commands, the remaining fields of EPLLIST shown in FIG.
PLLIST is delivered. In the present invention, it is possible to call a program written in the Konno-Iru type language from a program written in the Interpretation-Execution-type language Ktt, or conversely, to call a program written in the Konno-Iru type language (16). It is a control method for calling a program written in an executable language.j
'l'r interpretation execution type word*/FT 17) CALLI”O
l(, '[' sentence (descriptive sentence 130 in Figure 1), I?, I bow 'J' U T1.N sentence (descriptive sentence 320 in Figure 1), C
A L :r, sentences (descriptive sentence 150 in Figure 2), etc. become execution order change instructions, and the instruction codes (values set in EPL OP) in those intermediate words are expressed in hexadecimal, respectively. X'AE', X'9F'. It becomes X'9E'. Therefore, in the processing of the instruction execution control 400, the determination process 1! of FIG. ! After 405,
The processing will be carried out immediately. Each description M below
' The control transfer processing method between itts will be explained. First, a processing method for when a program written in a compiled language is called from a program written in an executable language, that is, to transfer control to a program written in a compiled language will be described. We will use FOR and TRAN, which are typical compiled languages. As mentioned earlier, this is done using the CALLFORT statement (17) of the descriptive statement 130 in the program 100 shown in FIG. 1'8'j m in the CALLFORT statement 130 is the first
The intermediate word 114 shown in FIG. This CAL
In the LFOll and T statements, there are four arguments to the FORTRAN program name '5UBF', and the intermediate word consists of a total of 28 bytes. In intermediate language 114,
The 1st byte of the 0th byte is an instruction code corresponding to the CALLFORT statement, and X'AE' is set in hexadecimal representation. The first byte represents the number of arguments. 12th by two bites from the second bite to the third bite groove
Indicates the method for storing the address of the argument after the byte. This is called an argument flag, and bit position 0
Each bit up to bit position 15 corresponds to each argument. The length of the argument flag is 2 bytes if the number of arguments is 16 or less, and 4 bytes if there are 17 or more.
If there are 33 or more, the number increases to 6 bytes. The meaning of the argument flag is ``o'' if the content of the argument area of the intermediate word indicates an address, and ``1'' if the content of the argument area indicates an argument value (18). Therefore, in descriptive sentence 130, there are four arguments, and the third argument is not a variable name but a direct numerical value, so the number 2 is entered in the corresponding argument area of the intermediate word, and the argument flag is AlsoX'0200'
(The second bit counting from the PRO bit is l", which means that the argument value is stored in the η1, 3rd argument area.) The address of the program drive routine is stored in 4 bytes.The address of this drive routine is W (F
01L'l' f(, A In the three cases where the compiled program of N is called, the program 450 in FIG.
The address of the internal entry point \CA L F 0111T 451 is stored, and when an interpretation execution type program is called from a compiled program of FOR, TlLAN (described later), the address of the entry point EXCR 453 is stored. Note that in this example, F 011. T II, AN
The target is I'L/1 and COBOL (C
OmmOn 13uissinessQriented
1. (19
) All you have to do is enter this address and praise it. Entrance point 452 (EXC) and entry point 453 in program 450
The usage of (EXC 几) will be described later. 4 bytes B, FORTll, ANF from the 8th byte of intermediate word 114
It shows the address where the program '5UBF' 200 exists, and the 12th and subsequent bytes are the argument area. The instruction execution control unit 400 in FIG. 6 executes the processing routine in the execution processing unit 410 using EPLLIST as a parameter, that is, CALLII'011. The processing flow diagram when control is transferred to the instruction code processing routine of the T statement is shown in Figure 1.
Shown in Figure 1. From FIG. 11, processing 1 starts from the fourth byte of the intermediate word 114 to the address (α
. ) and execute ft7 to the program at that address value.
1J? ! l-Transfer. When a compiled language program is called from an interpretation/execution language Ktf program, processes 2 to 10 are selected. Process 2 is to secure a save area for general-purpose registers in the electronic calculation area for communication between F O1(, 'I' I(, AN programs), and the save area is shown in FIG. 12 (20). It can be configured with 72 bytes as shown in Figure 12.
70 is ¥CAI, FOI1. Indicates the save area secured by the T program 450, and the area 480 is 1;'OR,TJ
? It represents the save area for the AN program 'S UH, l'i'.The area 470 secured by the processing FJ!
When control is transferred to 5UI3F', that 'SU]3
The F' program saves the registers in the order of the register numbers shown in FIG. 12, and the existence of the save area is \CALFOILT program 4 shown in FIG.
'5U from 50 to register number 13 (abbreviated as R13)
The i3F' program 200 is informed. From process 3 to process 7, FOIl, 'J"11.AN
Parameter list l-(P
The format of the parameter list is shown in FIG. 13. From Figure 13, one entry in the parameter list consists of 4 bytes, and entries for 1161 arguments are created, and the first byte of the last entry is expressed in hexadecimal as X'80'.
It is meant that the final parameter is (21
) Taste. The existence address of this parameter list is \
CALLFO1 (, T program 450 to 'SUM' program 200 with register number 1 (abbreviated as R, 1)
be informed. Note that the intermediate word 114 is determined by the determination process 5.
When the number of arguments in is zero, register number 1 (R
, 1) by zeroing out the contents of '5UBF1
Tells the program that there are no arguments. Process 6 is the argument flag of the intermediate word 114 shown in FIG.
and parameter list 46 by checking the argument area sequentially.
It establishes the content of 0. Specifically, the corresponding bit of the argument flag is checked in correspondence with the argument, and (1) If it is indicated in the address value (B'0')', the contents of the argument stored in the intermediate word are added to the parameter list. stored in each entry. In other words, β'1. in the intermediate word 114 in FIG. β′1. β′4 is a parameter
It is stored in the corresponding entry in the list. (2) If the constant value (B'l') is indicated, the address of the relevant argument area in the intermediate language 114 is stored (22). That is, the address α of the argument 3 area in the intermediate language 114 in FIG. 10 is all stored in the entry in the parameter list. Process. Through the above process 6, the relationships between each IJ and each argument in the parameter list (PA, RMLIST) 460 in FIG. 10 are as shown by arrows 461 to 464. Processing 7 is T! ``OI(, T It, AN program'
When returning from 5UBF '200, address calculation for the next intermediate word to be executed is performed. Processing 8 is Ii'011. of '5UBF'. This is a process to transfer control to the TJLAN program 200, and the sub program existence address (α/,) indicated by 4 bytes from the 8th byte of the intermediate word 114 is stored in register number 15 (abbreviated as R15). Then, the return address from the sub program 200 is set in register number 14 (abbreviated as 11 and 14), and control is transferred to the sub program. Control can be transferred by branching to the address of the contents of register number 15. As mentioned above, T;'01(,TI
(, Inter-program control transfer in AN program (2)
3) How to use the time register? il - shown in FIG. Please refer to the following publication for details on the communication rules between nologograms, including how to use this register. "11 ■TAC VO82/VO33 optimization l"01 (
, '1' I(, AN Ushikawa User's Guide) Hitachi, Ltd. Sanmeizu Tatami 8080-3-208 Also, this embodiment describes the method of transferring control to the F Of(, T I(, AN program). Although it is necessary to transfer control to a program written in assembler if it conforms to this rule, it is also possible to transfer control to a program written in assembler.
' OL(, T b, description in language other than AN - ei' =
Even when transferring control to a program, the program drive routine to be performed in accordance with the command in figure 1 is
It is difficult to create the AhFORT program instead of 4500. Once again in Figure 11, the execution form of the program changes from the operating mode in which intermediate words are interpreted and executed sequentially to the sequence of electronic dividers (gf).
This means that the operation mode is switched to an operation mode that is directly executed. (24) Proguzino 200 of 1i"OLL'l'H,AN is executed 161 tangently by the surface 1 child i-i calculator, and 1,1
I (J > TUfl, N sentence 230 in the figure, town bijl
il) The control returns to step 9 of the 111th step 1. The address at which the next intermediate word of the phantom, interpretation-executable program is executed in process 9 is EPLL, T S 'I shown in FIG.
After setting E1)L NA D It in `` and setting necessary flags, the process returns to the start entry 403 in the execution control unit 400 in step 11!10. Therefore, the processing program of the interpreter-executable language (execution phase department! When viewed from the town, CALLFOH,
F OI (, T R,
1, CA, T, LPOR for AN program 200 etc.
, it can be considered that the T-sentence Metropolitan Ordinance is being processed. Naturally, compiled programs at ten types, such as FOR, T1. It is possible to call a similar compilation type lf4 program from an AN program. Next, a control method when an interpretation/execution type 1ftF program is called from a compiled type M program will be described. An example of this usage is shown in FIG.
This occurs when the interpreter-executable language program 300 is called from 20. In the F OR1' I(, AN program, a CALL L statement calls a program called EXC, and the program 'EXC' becomes the processing program for control transfer. Among the arguments to the EXC program, the first As mentioned above, the argument is the program name of the interpreter-executable language program.The "EXC" program is \CALF' shown in Figure 10.
at an entry point 452 within the ORT processing program 450;
The operational concept line of this program is shown in Fig. 15. EXC”
The program controls the interface between the compiled language and the interpreted/executable program, and performs the following processing. (1) Programs in compiled languages, such as F
ORT) It performs processing based on communication rules from the LAN program, specifically, register saving processing and parameter list reception processing. (2) Based on the parameter list 465, create the intermediate word 115 (26) of the CALL statement in the interpretation/execution language. (3) CAI the next instruction of middle 1iiJ#fi 115
JLJI"OJ(, Create intermediate word 11G of T statement, address of program drive routine ';r-"J":
Restart point in “XC” program “EXCIji453
shall be. ('I) Middle 1'rt1%'+ 115 no CA L
Start entry 4 in the execution phase process/100 as the execution address of the L statement (r lIl'r interpretation execution language)
0 Transfer i17 control to J. (5) Locate the j: intermediate word 115 in the execution phase process 400, and execute the corresponding CA, LL instruction (instruction code: X'
Control is transferred to the liquor processing program in the execution processing unit 410 of 9E'). Note that the processing method of the cAIJL instruction will be described later. (6) A program written in an interpretation/execution language (in this embodiment, the program 300 in FIG. 1) is sequentially interpreted and executed. (7) 11 of glograms written in an interpretive-executive language,
E T U It, N sentence (description sentence 320 in the present example TE-+ program 3oo) or the real YAN ADS-DO J,! I
! Execute by 3000 and (3) generate /c
CA, LLFO+1. T(27) Instruction I:I-I start 1167%0. (8) CALIJ”01 (, intermediate word 116 of Tkaryo
, the address of the program drive routine is "EXC", the restart address of the program "E"
X(Jt"(α".), and in the processing flow diagram of the CALLFORT command shown in FIG. 11, processing 11
.. 12 is selected. (9) EXCR,”U at entry point 453,”E
The registers retired by the processing at the "XC" entry point 452 are recovered, and the program returns to the program written in the compiled language, that is, the program that called the "EXC" program once. By devising a program, it is possible to transfer control from a compiled-type program to a program written in the tactile-type language flat, and return the written version. Ru. FIG. 16 shows a processing flow diagram of the EXC" program entry point 452.
When 0 calls this "EXC" program (28), various information is stored in the register shown in FIG. 14, so the contents of the register are saved in the area shown by register 13. That is, referring to FIG. 12 which shows the relationship of save areas, area 470 is an area secured by the called program, and area 480 is an area secured by the called program. Therefore, processing 1
5, the contents of the register are saved in the area 470, and the contents of the register are saved in the area 48.
Allocate a new 0. Note that the newly secured area for register saving is different from the area secured by the ¥CALF'On and T programs described above. Also, I!
;XC” program entry point 452, EXCR” entry point 4
53 and ¥CALri”Oll, T program entry point 45
1 exists within the same program 450, but there is no particular need for this. This is ¥C
A],,F' 01(,T program is (rfli
(This is because the register save area and the register save area secured by the program at the EXC program entry point are different. However, the register save area secured by the program at the EXC program entry point and the
It is better to use the same program (29) as the "CR" program entry point. In process 16, register 1 (R1
) points to the parameter list fPAI(, MLI 8T
) CAL as shown in intermediate language 115 based on 465
A relationship is established in which the L sentence (municipal ordinance code: X'9E') is shown by the production arrow group 466. Note that if the contents of register 1 are zero,
That is, if the parameter list does not exist, the argument area (from the 8th byte) of the intermediate word 115 is not generated. The format of the intermediate word of the CAT, L sentence will be described later. Process 17 is CALFOI(, T statement (instruction code: X'
AE') Intermediate language 116 is generated, and compared to the intermediate language 114 shown in FIG. 10, the number of arguments is zero, the argument flag is ), but \CALFOI is not the T entry point 451, but the address of the EXC 几" entry point 453, and the storage area (8th byte to 11th byte) of the address where the sub program exists is zero. It is a characteristic. "EXC" program entry point 452 (processing flow (30)
) The figure was generated in Figure 16) (,'ALLJI'OJ(
, in the intermediate word 116 of the 'l' statement, the address (α".) of the program drive routine is set to the address of the EXCI+," entry point 453, and the "EXC"
Il, "The processing of the entry point 453 is) Takeshaku execution type I Plt,
Compilation from processing of a program written in j
Performs the process of transferring control to the program written in I1 Kaname. EXC11, " Entrance point location] ψ flow shown in Figure 11, Processing + tx1. Location: r++>12. 1 in Processing 11
:, Process 15 at the "EXC" entry point restores the contents of the hacksaw register, and Process 12 is the process of returning to the program written in the compiled language. Since the return destination address is set in the register 14 as shown in FIG. 14, control can be transferred to the address of the contents of the register 14. Next, interpret execution l-1! The method of transferring control between programs written in languages will be explained. This is ``E
Intermediate language 115 created at XC'' program entry point 452
This is because the program being called is written in an interpretable language. (31) In general, all the writing methods shown in Figure 2 are used to communicate between programs written in an interpretive/executable language. The intermediate words corresponding to descriptive sentences 150, 310, and 320 in FIG. 2 are intermediate words 117, 118, and 117, respectively. IH). In the intermediate language 117, the second byte is the instruction code corresponding to the CAI, L statement, which is X'9E' in hexadecimal notation.
becomes. Rabbit: 1 byte 1] represents the number of arguments, and the second
The two bytes from the byte to the third byte are the argument hook. The argument flag indicates how to store the argument area in the intermediate word, and how to use it is as described above for CALL
FOll is the same as the intermediate word argument flag of the T sentence. That is, from bit position O to bit position 15 of the argument flag
Each bit in the trench corresponds to each argument, and if the content of the argument area indicates the address of a variable, it will be “0”.
”, and if the content of the argument area indicates the substance of the argument, it becomes 1”. For example, in the example of the descriptive sentence 150, the third argument is a literal take, and the value 2 is entered in the argument area of the intermediate word 117. (32) Therefore, the argument flag is X'2000 in hexadecimal notation.
' becomes. The length of this argument flag is 2 bytes υ if the number of arguments is 16 or less, and 4 bytes if there are 17 or more.
Bytes, increases to 6 bytes when 33 or more. Furthermore, the "EXC" program entry point 45 shown in FIG.
All bits of the argument flag of the intermediate language 115 generated in step 2 are always 0''. The 4 bytes starting from the 4th byte of the intermediate language 117 indicate the location of the subprogram, that is, the program 300 to be called. The address (α,) where the descriptive sentence 310 exists is stored.The 8th and subsequent bytes become the argument area, and one argument per 9
4 bytes are reserved. M[j-; In the example of Is statement 150, the argument lli! The number of ifs is 4, the argument area is 16 pies), the basic part of the CALL instruction is 8 bytes, and the total length is 24 bytes, which is the intermediate KI+117. FIG. 18 shows the processing section 43 in the instruction execution processing section 410.
It is necessary because it shows the processing procedure of the CALL instruction regarding 0. As shown in FIG. 18, the process 20 stores the address of the intermediate word 118 on the program side (33), which is later used to calculate the execution value. Also, by processing 21, 5UBROUTINE in FIG.
The address of the @1 argument in the intermediate word 117 of the CALL statement is stored in the intermediate word 118 corresponding to the sentence 310, and the arrow 12
The first relationship is broken. Determination process 22 is a process of checking the consistency of the number of arguments between the calling program and the program on the called side, and if there is a mismatch, processes 23 to 26 are performed. This can be done with error handling. Judgment process 27 checks whether the number of arguments can be equal to zero, and if the number of arguments is zero, process 28.
29 is selected. 5UHRO[JTIN
E-sentences 310 writers 10 master sentences can be executed. If the number of arguments is 1 or more, processes 30 to 32 are selected. Processing 30 converts the contents of the argument areas in intermediate words 115 and 117 (34) of the CALL statement shown in FIGS. 15 and 17 to the argument area in intermediate word 118 corresponding to 8 in the argument area is the intermediate word 1 of the CALL statement.
This is done by checking the argument flags in 15 and the intermediate word 117. That is, each bit of the argument flag corresponds to each argument,
If the bit indicates (1) address value (B'O')Q, the content indicated by that value is stored in the corresponding argument area in the intermediate word 118. For example, the content pointed to by β1 is γ1 to the variable, and that γl is 4 from the 8th byte in the intermediate word 118.
Store in bytes. (2) If it indicates a constant value (B"11"), store that value.For example, the bit value of the argument flag corresponding to the third argument of Kouma Tori 117 is Ll'l'. The value of 2, which is necessary for the value of , β, is the argument 3 in the intermediate word 118
Area (bytes are stored in the first area, processing is performed. Here, if a collection of multiple data strings such as array data is specified as an argument, A If)
The duty bit value (35) of the argument flag in N4j 115, 117 is one with B'l', l131(, OtJ'l'I
The starting address of the array data is entered in the argument area in the intermediate language 118 of the NE statement, and as a result, the array data in the program 100 can be referenced from the program 300 in FIG. On the other hand, 200 programs written in a compiled language
(See Figure 1) to J (11) When a program written in the interpretive language is called, the "EXC" program 452, which is a program drive routine, intervenes (15 (see figure), this "15X
C'' program 452 is the intermediate language 115 shown in FIG.
is generated, and the argument flags at this time are all bit values "0"
”. Therefore, when passing array data as a variable from the program 200 written in a compiled language to the program 300 written in an interpreted language, FO)i, TH, AN accent is used. Report IPTR=AD
]))(, (ARAY(I)) function call,
Variable name I P'J"
t, A. First storage address k Mt-N of Y:
This is a function to Referring again to FIG. 18, the SUI:IR, OUT. The iNE statement 310 will be written. Each descriptive statement in the program 300 in FIGS. 1 and 2 is executed, and the descriptive statement 320 1 (, 1 sound: "J' U 11.
When an N statement is encountered, a process is performed to control the program execution order and return the entire program 300 to the program that called it. Descriptive sentence 320 n. The intermediate word of the E T U rLN sentence is as shown in intermediate word 119. That is, the 0th byte of the intermediate word 119 is it,l:TUIl. The instruction code X'91+1 of the N instruction is stored, and the first byte is zero. The address of the intermediate word 118 of the SUBIL01J'l'INE statement 310 is set in the four bytes from the second byte to the fifth byte I]. FIG. 19 shows the processing procedure for the RETURNm command regarding the processing (37) in the instruction execution processing unit 410. By processing 35, the address (α
1) and locate 118 intermediate words. Processing 36 is processing for setting the address Kl of the argument area of the program that called the own subprogram 300. If the number of arguments is zero according to determination process 37, processes 38 and 39 are selected. In process 38, the start address of the argument area obtained in process 36 (PTI (, 3) total 1 cPL
By storing it in EPLNADR in LIST, it is possible to return to the descriptive statement next to the descriptive statement that called this program 300. If the number of arguments is not zero, process 40 to process 42
is selected. The process 40 calls this program sequentially based on the information in the argument area in the intermediate language 118 [...candy 11
5 and the intermediate language 117 are moved to the argument area. At this time, check the corresponding bit of the argument flag in the intermediate word of the CALL instruction, and if it is indicated in (1) address value (H'O')', the corresponding bit in the intermediate word 118 of the called program side is checked. (38) Move the information in the argument area to the area indicated by the contents of the argument area of the intermediate language 117 on the called 10-gram side. For example, argument 1 of the 8th byte in intermediate Nit 118
The area whose content is indicated by the content of the 8th byte of the intermediate word 117, that is, β. It will be moved to the address. (2) If a constant value (13'l') is indicated, processing is performed without moving the information in the relevant argument area within the intermediate language 118. In the above processing, the entire argument area of intermediate language 117 is pointed every time one argument is processed.
TJl, 3 is transformed by 4. Therefore, process 4
After repeating the above processing argument several times within 0,
11 has ended and here it is! /I 1 when moving to 1
' T1.3 is to locate the next intermediate word of the CALL statement that is required by the HI statement statement that called this subprogram 300. Processing/11. .. 42 is the same process as process 38゜:15), and the next descriptive statement after the descriptive statement that called the Kizab program 300 can be executed; From program 300 in Jiji 2 to (39) program 100. Control will return I+1. On the other hand, from program 200 to program 300 in FIG.
1. flj control is transferred to the intermediate word 116 next to the intermediate word 1150 shown in FIG. 15, and as mentioned earlier, by executing the intermediate word 116, "
EXCII, ``The processing at the program entry point 453 is completed, and as a result, control is returned to the program 200 written in the compiled language.As explained above, according to the present invention, Between the written program and the program written in the compiled layer one-store programming language,
By providing a control system that allows two standing programs to call each other's program statements, the following effects can be expected. (1) It can be used from a compiled-type name-ame program that has been created in the past. (2) Programs in interpreted and executed languages can be used from programs in compiled languages. (40) (3) Due to (1) and (2), it is expected that the number of man-hours required for program development will be reduced.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は解釈実行型言trr!でn1シ述きれたプログ
ラムとコンパイル型営語で記述されたプログラムを組合
せて使用した例を示した図 m2図は解釈実行^り言語
で記述されたプログラム同士を使用した例を示した図、
第3図はブψr釈実行型プログラミング言暗におけるプ
ログラム文章の痙r釈から実行までの処理手順を示した
図、卯、4図はプログラム文章内の各記述文全1竹沢し
たときに生成する中間語と呼ばれる情報ブロックの一般
形式を示した図、第5図は記述文を中1)+] W7F
に展開した例を示した図、第6図は命令の実行処J]i
部の構成を示した図、第7図は実行処理部内の茄令央?
′T制御部と実行処理部間の連絡用情報ブロックの形式
を示した図、第8図は連絡用情報ブロックの内容全勝、
明した図9、第9図は命令の実行制御部の処理手順を示
した図、第10図はCALLFOH,’l’文を中間語
に展開したときの形式と処理プログラムで使用するパラ
メータ・(41) リストとの関係を示した図、第11図はCALLFOR
T命令の処理フローを示した図、第12図はコンパイル
型プログラミング言語でI上述されたプログラムにおい
て使用するレジスタ退避領域の関係を示した図、第13
図はパラメータ・リストの形式を表わした図、第14図
はコンパイル型プログラミング言語で記述されたプログ
ラム同士で連絡する場合に使用されるレジスタの内容を
示した図、第15図はコンパイル型言語のプログラムか
ら解釈実行型言語のプログラムを呼び出すときに、その
インタフェース・プログラムが生成する中間語の形式を
示した図、第16図はインタフェース・プログラムの処
理フロー上水した図、第17図は解釈実行型言語におけ
るプログラム連絡用記述文の中間語の関係を示した図、
第18図は命令の実行処理部におけるC A L J、
、文の処理手順を示した図、第19図は命令の実行処理
部に2けるH、ETIJRN又の処理手順を示した図、
でめる。 代理人 弁理士 薄田利幸(゛ (42) f]  づ   民 尤  4   図 慕  5  区 4ρθ 菌  7  図 1御 尤  3   図 免  //  図 ・4玉≧ /−N N N〜 ギCALFパTルー                
           AXC尺:ニートーノのの処理
              k現Z     −プ′
フ”フ′げラムへの、         //U色(た
ムン゛スZ 冷尋20ヂ乍成                よ1
ルトシスタの内肘友f中間録内ql委灯H払 3  470樽る          、?(pTg4
”E・”          Excx−詠4    
 FAFMLLSTl               
        tl’−7゛o7”taa!3 5       イノ1七女ン乃イ3Dり町とlまtD
シ・→′n−Ycs e 乞FARMLISTに冬少T イク と351季′I7,77と輯・<′( 6す間語内っ当靜イ1数エソア とネ少( 中r。n話(fJψ当′百穿ダlざ欠工PARMLIS
TI= 有トqP。 これ 4口くνL7 7rrR4−r=roADR”4″t 8    (d、つ1傅7当詩ブフ゛2・Dり゛ラム 
ヘソ、−7Tづ−7フ゛ ノI07・ン4へ 將蒲7ζ°“、    Y7”7’07’tA(9 る  12    図 ■ 力   /:5   図 tにθ 一7r−375ロ 吃τ オ)   74    b口 TJ+g    図 −323− r 刀  tq    図
Figure 1 shows the interpretation-execution type word trr! A diagram showing an example of using a combination of a program written in N1 and a program written in compiled language.
Figure 3 is a diagram showing the processing procedure from interpretation to execution of a program sentence in the execution type programming implication, Figure 4 is generated when all the descriptive sentences in the program sentence are written. Figure 5 shows the general format of an information block called an intermediate word.
Figure 6 shows an example of the instruction execution process.
Figure 7 shows the structure of the execution processing section.
'A diagram showing the format of the communication information block between the T control section and the execution processing section, Figure 8 shows the complete contents of the communication information block,
Figure 9 shows the processing procedure of the instruction execution control unit, and Figure 10 shows the format of the CALLFOH, 'l' statement expanded into intermediate words and the parameters used in the processing program. 41) A diagram showing the relationship with the list, Figure 11 is CALLFOR
Figure 12 is a diagram showing the processing flow of the T instruction.
Figure 14 shows the format of a parameter list, Figure 14 shows the contents of registers used when communicating between programs written in a compiled programming language, and Figure 15 shows the format of a compiled programming language. A diagram showing the format of the intermediate language generated by the interface program when a program in an interpreting/executing language is called from the program. Figure 16 is a diagram showing the processing flow of the interface program, and Figure 17 is the interpreting/executing language. A diagram showing the relationship between intermediate words of program communication description sentences in a type language,
FIG. 18 shows C A L J in the instruction execution processing section,
, a diagram showing the processing procedure of a statement, FIG. 19 is a diagram showing the processing procedure of 2 H, ETIJRN, or
Demeru. Agent Patent attorney Toshiyuki Usuda (゛(42) f] zu Minyu 4 Figure 5 Ward 4ρθ Fungus 7 Figure 1 Figure 3 Figure 1 // Figure 4 balls ≧ /-N N N~ GCALF PATROO
AXC scale: Processing of the knee
//U-color (Tamunsu Z cold story 20 pieces) 1
Lutosista's Uchihibi friend f interim record ql light H pay 3 470 barrels,? (pTg4
“E・” Excx-Ei 4
FAFMLLSTl
tl'-7゛o7"taa! 3 5 Ino 1 Seventh Girl Nnoi 3D Rimachi and lma tD
し・→'n-Ycs e Beg for FARMLIST, Fuyusho T Iku and 351 Season'I7, 77 and 輯・<'(6. fJψto'100 holes PARMLIS
TI = present qP. This is 4 mouths νL7 7rrR4-r=roADR"4"t 8 (d, 1 傅7 this poem book 2 D rim
Navel, -7Tzu-7F No.I07・N4 將蒲7ζ°", Y7"7'07'tA (9 12 Figure ■ Force /: 5 Figure t θ 17r-375Ro τo) 74 b mouth TJ+g Fig.-323- r sword tq Fig.

Claims (1)

【特許請求の範囲】 1、解釈実行型プログラミング言語で記述された電子計
$機を動作せしめるプログラムとコンパイル型プログラ
ミング言語で記述された(子計算機を動作せしめるプロ
グラムとの間において、(1)両プログラム間でプログ
ラムの実行順序の移動を容易からしめるための情報ブロ
ックを生成することと、 (2)情報ブロックを操作するインタフェース・プログ
ラムが介入し、両プログラム言語間での制御の移動を行
うこと、 (3)解釈実行型プログラミング言語によるプログラム
からコンパイル型プログラミング言語によるプログラム
へ制御を移す場合には、当該解釈実行型言語によるプロ
グラムからの要求情報にもとづいて、コンパイル型プロ
グラミング言語によるプログラムが必要とする情報ブロ
ックを生成し、当該プログラムが制御の移動を認可なら
しめる形式により、制御を移動させることと、 (4)  コンパイル型プログラミング言語によるプロ
グラムから解釈実行型プログラミング言語によるプログ
ラムへ制御を移す場合には、コンパイル型プログラミン
グ言語によるプログラムからの要求情報にもとづいて、
解釈実行型プログラミング言語のプログラム間の制御移
動用に適合すべく情報ブロックと制御移動用の命令を生
成することと、 (5)生成さね、た命令を解釈実行することにより解釈
実行型プログラミング言語で記述されたプログラムへ記
述文実行の制御を移すことと、(6)制御が移ったプロ
グラムからの戻り指令文によって、当該プログラムを呼
びiLI したプログラムへ記述文実行の制御を移すこ
と、を行うプログラム間制御移動方式。
[Scope of Claims] 1. Between a program that operates an electronic cash machine written in an interpretive programming language and a program that operates a child computer written in a compiled programming language, (1) (2) An interface program that operates the information block intervenes to transfer control between the two programming languages. (3) When transferring control from a program written in an interpreted programming language to a program written in a compiled programming language, a program written in a compiled programming language is required based on request information from the program written in the interpreted language. (4) when transferring control from a program written in a compiled programming language to a program written in an interpreted programming language; is based on request information from a program using a compiled programming language.
(5) generating information blocks and instructions for control transfer suitable for transferring control between programs in an interpretive programming language; and (5) interpreting and executing the generated instructions. (6) transfer the control of descriptive statement execution to the program written in (6) by the return command statement from the program to which control has been transferred, and transfer the control of descriptive statement execution to the program that called the program and performed iLI. Control movement method between programs.
JP56187867A 1981-11-25 1981-11-25 Inter-program control shifting system Pending JPS5890248A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56187867A JPS5890248A (en) 1981-11-25 1981-11-25 Inter-program control shifting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56187867A JPS5890248A (en) 1981-11-25 1981-11-25 Inter-program control shifting system

Publications (1)

Publication Number Publication Date
JPS5890248A true JPS5890248A (en) 1983-05-28

Family

ID=16213600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56187867A Pending JPS5890248A (en) 1981-11-25 1981-11-25 Inter-program control shifting system

Country Status (1)

Country Link
JP (1) JPS5890248A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62113244A (en) * 1985-11-12 1987-05-25 Omron Tateisi Electronics Co Program test device
JPS63158632A (en) * 1986-12-23 1988-07-01 Nec Corp System program execution system in interpreter system
JPS6429934A (en) * 1987-07-24 1989-01-31 Fuji Electric Co Ltd Program execution control system
JPH0195341A (en) * 1987-10-07 1989-04-13 Nec Corp Debug system by using both source code and object code
US4949255A (en) * 1988-09-07 1990-08-14 International Business Machines Corp. Message interface and method for recursive calling between interpretive and compiled computer processes
JPH02272627A (en) * 1989-03-06 1990-11-07 Internatl Business Mach Corp <Ibm> Digital computer system and method of invocation of procedure of the same

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62113244A (en) * 1985-11-12 1987-05-25 Omron Tateisi Electronics Co Program test device
JPS63158632A (en) * 1986-12-23 1988-07-01 Nec Corp System program execution system in interpreter system
JPS6429934A (en) * 1987-07-24 1989-01-31 Fuji Electric Co Ltd Program execution control system
JPH0195341A (en) * 1987-10-07 1989-04-13 Nec Corp Debug system by using both source code and object code
US4949255A (en) * 1988-09-07 1990-08-14 International Business Machines Corp. Message interface and method for recursive calling between interpretive and compiled computer processes
JPH02272627A (en) * 1989-03-06 1990-11-07 Internatl Business Mach Corp <Ibm> Digital computer system and method of invocation of procedure of the same

Similar Documents

Publication Publication Date Title
CN103858101B (en) Code process method and code process system
CN106874244B (en) Method for constructing automatic document generation model based on work sequence
CN108920133B (en) Cross-language programming method and device, electronic equipment and storage medium
Steele Jr An overview of common lisp
CN101334728B (en) Interface creating method and platform based on XML document description
Katayama Systematic search for lambda expressions.
CN106919434A (en) A kind of code generating method and device
CN1577268A (en) Shared library system and method of building the system
MXPA04002730A (en) Type bridges.
CN106415495A (en) Programming system and language for application development
JP2005018777A5 (en)
CN104820613A (en) Compiling method for heterogeneous multi-core routine
CN1477503A (en) System for using non-local XML in local XML of support word processing documentation
CN102037446A (en) Dynamic collection attribute-based computer programming language methods
CN114217886A (en) Function calling method, computing device and storage medium
Firsov et al. Efficient Mendler-style lambda-encodings in Cedille
JPS5890248A (en) Inter-program control shifting system
Kolovos et al. The epsilon pattern language
Reid et al. History of coarrays and SPMD parallelism in Fortran
Barbero et al. A practical approach to model extension
Pleban Compiler prototyping using formal semantics
Dörre et al. Static type checking of Hadoop MapReduce programs
CN105930154A (en) Method and apparatus for establishing and using device hardware model in network operation system
CN113282301B (en) Assembly instruction conversion method based on correlation between high-level language and assembly language
CN104899316A (en) Game data serialization and deserialization processing method and device