JPH03212739A - 手続き副プログラム展開方式 - Google Patents

手続き副プログラム展開方式

Info

Publication number
JPH03212739A
JPH03212739A JP2008750A JP875090A JPH03212739A JP H03212739 A JPH03212739 A JP H03212739A JP 2008750 A JP2008750 A JP 2008750A JP 875090 A JP875090 A JP 875090A JP H03212739 A JPH03212739 A JP H03212739A
Authority
JP
Japan
Prior art keywords
argument
subprogram
procedural
program
information table
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
JP2008750A
Other languages
English (en)
Inventor
Tetsuji Ishikura
石倉 徹次
Katsumi Yamamoto
克己 山本
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
NEC Solution Innovators Ltd
Original Assignee
NEC Corp
NEC Solution Innovators 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 NEC Corp, NEC Solution Innovators Ltd filed Critical NEC Corp
Priority to JP2008750A priority Critical patent/JPH03212739A/ja
Publication of JPH03212739A publication Critical patent/JPH03212739A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、FORTRAN言語で記述された原始プログ
ラムにおける手続き副プログラム展開方式に関する。
〔従来の技術〕
従来、この種の手続き副プログラム展開方式では、展開
される手続き副プログラムの仮引数に整合配列が存在す
る場合にそれを無視してその手続き副プログラムをその
手続き副プログラムを呼び出す手続きプログラム(以下
、呼び出しプログラムトいう)に展開すると、コンパイ
ラによる翻訳時に致命的エラーが発生するために、その
ような展開は行われていなかった。
〔発明が解決しようとする課題〕
上述した従来の手続き副プログラム展開方式では、手続
き副プログラムの仮引数に整合配列が存在する場合に、
その手続き副プログラムを呼び出しプログラムに展開す
ることが行われていないので、実行時にその手続き副プ
ログラムを呼び出しプログラムが呼び出すためのオーバ
ヘッドが発止するという欠点がある。
本発明の目的は、上述の点に鑑み、仮引数に整合配列を
含む手続き副プログラムを呼び出しプログラムに展開す
ることを可能にし、実行時にその手続き副プログラムを
呼び出すためのオーバヘットの発生を回避することがで
きる手続き副プログラム展開方式を提供することにある
〔課題を解決するための手段〕
本発明の手続き副プログラム展開方式は、FORTRA
N言語で記述された原始プログラム内の手続き副プログ
ラムを呼び出しプログラムに展開する手続き副プログラ
ム展開方式において、展開される手続き副プログラムの
仮引数に整合配列が存在するか否かを解析し存在してい
る場合には仮引数として指定されている整合配列の配列
名と寸法とを抽出し仮引数情報テーブルに格納する手続
き副プログラム解析部内の仮引数解析部と、展開される
手続き副プログラムの仮引数に対応する実引数として指
定されている配列の配列名と寸法とを抽出し実引数情報
テーブルに格納する呼出しプログラム解析部内の実引数
解析部と、前記仮引数解析部によって仮引数情報テーブ
ルに格納された情報および前記実引数解析部によって実
引数情報テーブルに格納された情報に基づいて仮引数と
して指定されている整合配列の型宣言文ならびに仮引数
として指定されている整合配列とその仮引数に対応する
実引数として指定されている配列とに関する動的記憶単
位共有文およびその動的記憶重位共有文に係る型宣言文
を作成し呼び出しプログラムに挿入するプログラム作成
部内の型宣言文/動的記憶華位共有文作成挿入部とを有
する。
〔作用〕
本発明の手続き副プログラム展開方式では、手、続き副
プログラム解析部内の仮引数解析部が展開される手続き
副プロゲラLの仮引数に整合配列が存在するか否かを解
析し存在している場合には仮引数として指定されている
整合配列の配列名と寸法とを抽出し仮引数情報テーブル
に格納し、呼出しプログラム解析部内の実引数解析部が
展開される手続き副プログラムの仮引数に対応する実引
数として指定されている配列の配列名と寸法とを抽出し
実引数情報テーブルに格納し、プログラム作成部内の型
宣言文/動的記憶華位共有文作成挿入部が仮引数解析部
によって仮引数情報テーブルに格納された情報および実
引数解析部によって実引数情報テーブルに格納された情
報に基づいて仮引数として指定されている整合配列の型
宣言文ならびに仮引数として指定されている整合配列と
その仮引数に対応する実引数として指定されている配列
とに関する動的記憶単位共有文およびその動的記憶単位
共有文に係る型宣言文を作成し呼び出しプログラムに挿
入する。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は、本発明の手続き副プログラム展開方式の一実
施例の構成を示すブロック図である。本実施例の手続き
副プログラム展開方式は、手続き副プログラム展開プロ
グラム1と、仮引数情報テーブル100と、実引数情報
テーブル200と、展開部原始プログラム(手続き副プ
ログラムが呼び出しプログラムに展開される前の原始プ
ログラム)300と、展開後原始プログラム(手続き副
プログラムが呼び出しプログラムに展開された後の原始
プログラム)400とを含んで構成されている。
手続き副プログラム展開プログラム1は、仮引数解析部
11を有する手続き副プログラム解析部10と、実引数
解析部21を有する呼び出しプログラム解析部20と、
型宣言文/動的記憶単位共有文作成挿入部31を有する
プログラム作成部30とを含んで構成されている。
第2図は、仮引数解析部11によって作成される仮引数
情報テーブル100の一例を示す図である。仮引数情報
テーブル100は、仮引数の個数と、仮引数の長さと、
仮引数とを記憶している。
第3図は、実引数解析部21によって作成される実引数
情報テーブル200の一例を示す図である。実引数情報
テーブル200は、実引数の個数と、実引数の長さと、
実引数とを記憶している。
次に、このように構成された本実施例の手続き副プログ
ラム展開方式の動作について説明する。
手続き副プログラム展開プログラムl内の手続き副プロ
グラム解析部10は、展開m1原始プログラム300を
人力する。
手続き副プログラム解析部10内の仮引数解析部11は
、展開部原始プログラム300内に仮引数に整合配列を
含む手続き副プログラムが存在するか否かを解析する。
この解析で展開部原始プログラム300内に仮引数に整
合配列を含む手続き副プログラムが存在する場合には、
仮引数解析部11はその手続き副プログラムにおいて仮
引数として指定されている整合配列の配列名と寸法とを
抽出し仮引数情報チーフル100に格納する(仮引数情
報テーブルlOOを作成する)。
次に、呼出しプログラム解析部20内の実引数解析部2
1は、展開部原始プログラム300内の当該手続き副プ
ログラム(上述の仮引数解析部11による解析対象の手
続き副プログラム)に対する呼び出しプログラムにおい
て実引数として指定されている配列の配列名と寸法とを
抽出し実引数情報テーブル200に格納する(実引数情
報テーブル200を作成する)。
プログラム作成部30は、当該手続き副プログラムを呼
び出しプログラムにある程度まで展開し、その後に型宣
言文/動的記憶単位共有文作成挿入部31を起動する。
プログラム作成部30内の型宣言文/動的記憶華位共有
文作成挿入部31は、仮引数情報チーフル100および
実引数情報テーブル200に格納されている情報に基づ
いて、仮引数として指定されている整合配列の型宣言文
と、仮引数として指定されている整合配列とその仮引数
に対応する実引数として指定されている配列との間でポ
インタを用いて実行時に記↑a単位を共有するための動
的記憶単位共存文およびその動的記憶単位共有文に係る
型宣言文(その動的記憶単位共有文で使用される変数の
型宣言文)とを作成し、それらの文を呼び出しプログラ
ムに挿入する。
プログラム作成部30は、以上のような処理により作成
された展開後原始プログラム400を出力する。
第4図は、以上のような動作(仮引数に整合配列を含む
手続き副プログラムの展開)を具体的に説明するための
図であり、展開部原始プログラム300および展開後原
始プログラム400の一例を示す図である。
手続き副プログラム展開プログラム1に第4図中の展開
部原始プログラム300 (呼び出しプログラムである
サブルーチン副プログラム31o(SUBA)および展
開される手続き副プログラムであるサブルーチン副プロ
グラム340  (SUBB)を有する展開部原始プロ
グラム300)が入力されると、仮引数解析部11はサ
ブルーチン副プログラム340内の5LJBROUTI
NE文330中の仮引数に基づいて仮引数情報テーブル
100を作成しく第2図に示す仮引数情報テーブル10
0がこれに該当する)、実引数解析部21はサブルーチ
ン副プログラム310内のCALL文32文中20中数
に基づいて実引数情報テーブル200を作成する(第3
図に示す実引数情報テブル200がこれに該当する)。
プログラム作成部30は、展開実行文430 (呼び出
しプログラムであるサブルーチン副プログラム310内
に展開されるサブルーチン副プログラム340内の実行
文)を作成する(この場合に、展開実行文430で使用
される名標がサブルーチン副プログラム310で使用さ
れている名標と重ならないように、サブルーチン副プロ
グラム340内の名標(「K」等)が適切な名標(rK
99999」のような−船釣には使用されない名標)に
変換される。したがって、付随的に型宣言文431が作
成される)。プログラム作成部30は、以上の処理の後
に、型宣言文/動的記憶単位共有文作成挿入部31を起
動する。
型宣言文/動的記憶単位共有文作成挿入部31は、仮引
数情報テーブル100および実引数情報テーブル200
に格納されている情報に基づいて、仮引数として指定さ
れている整合配列の型宣言文410と、仮引数として指
定されている整合配列と実引数として指定されている配
列との整合をとるための動的記憶単位共有文420 (
rDYNAMICPOINTER(199998,B9
9999)Jと1199998=LOG (A)Jとの
2つの文により構成される文)およびその動的記憶単位
共有文420に係る型宣言文421とを作成する。
さらに、型宣言文/動的記憶単位共有文作成挿入部31
は、作成した型宣言文410ならびに動的記憶単位共有
文420および型宣言文421をサブルーチン副プログ
ラム310に挿入し、展開後原始プログラム400を作
成する(プログラム作成部30はその展開後原始プログ
ラム400を出力する)。
〔発明の効果〕
以上説明したように本発明は、仮引数解析部実引数解析
部および型宣言文/動的記憶単位共有文作成挿入部を設
けることにより、手続き副プログラムの仮引数に整合配
列が存在してもその手続き副プログラムを呼び出しプロ
グラムに展開することが可能となり、実行時にその手続
き副プログラムを呼び出すためのオーバヘンドの発生を
回避することができるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中の仮引数情報テーブルの一例を示す図
、 第3図は第1回中の実引数情報テーブルの一例を示す図
、 第4図は第1図中の展開部原始プログラムおよび展開後
原始プログラムの一例を示す図である。 図において、 l・・・・手続きglプログラム展開プログラム、10
・・・手続き副プログラム解析部、11・・・仮引数解
析部、 20・・・呼び出しプログラム解析部、21・・・実引
数解析部、 30・・・プログラム作成部、 31・・・型宣言文/動的記憶単位共有文作成挿入部、 100・・仮引数情報テーブル、 200・・実引数情報テーブル、 300・・展開部原始プログラム、 310・・サブルーチン副プログラム(呼び出しプログ
ラム)、 320・・CALL文、 330・・5UBROUTINE文、 340・・サブルーチン副プログラム(展開される手続
き副プログラム)、 400・・展開後原始プログラム、 10 420 ・ 421.431・・・型宣言文、 ・動的記憶華位共存文、 430  ・ ・展開実行文である。

Claims (1)

    【特許請求の範囲】
  1. FORTRAN言語で記述された原始プログラム内の手
    続き副プログラムを呼び出しプログラムに展開する手続
    き副プログラム展開方式において、展開される手続き副
    プログラムの仮引数に整合配列が存在するか否かを解析
    し存在している場合には仮引数として指定されている整
    合配列の配列名と寸法とを抽出し仮引数情報テーブルに
    格納する手続き副プログラム解析部内の仮引数解析部と
    、展開される手続き副プログラムの仮引数に対応する実
    引数として指定されている配列の配列名と寸法とを抽出
    し実引数情報テーブルに格納する呼出しプログラム解析
    部内の実引数解析部と、前記仮引数解析部によって仮引
    数情報テーブルに格納された情報および前記実引数解析
    部によって実引数情報テーブルに格納された情報に基づ
    いて仮引数として指定されている整合配列の型宣言文な
    らびに仮引数として指定されている整合配列とその仮引
    数に対応する実引数として指定されている配列とに関す
    る動的記憶単位共有文およびその動的記憶単位共有文に
    係る型宣言文を作成し呼び出しプログラムに挿入するプ
    ログラム作成部内の型宣言文/動的記憶単位共有文作成
    挿入部とを有することを特徴とする手続き副プログラム
    展開方式。
JP2008750A 1990-01-18 1990-01-18 手続き副プログラム展開方式 Pending JPH03212739A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008750A JPH03212739A (ja) 1990-01-18 1990-01-18 手続き副プログラム展開方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008750A JPH03212739A (ja) 1990-01-18 1990-01-18 手続き副プログラム展開方式

Publications (1)

Publication Number Publication Date
JPH03212739A true JPH03212739A (ja) 1991-09-18

Family

ID=11701607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008750A Pending JPH03212739A (ja) 1990-01-18 1990-01-18 手続き副プログラム展開方式

Country Status (1)

Country Link
JP (1) JPH03212739A (ja)

Similar Documents

Publication Publication Date Title
JP2666847B2 (ja) 異種言語間連絡方式
JPH03129469A (ja) 自然言語処理装置
US7412697B2 (en) High-level language, architecture-independent probe program compiler
JP2004139597A (ja) モデリング環境の外からダイナミックシステムモデルの内部信号にアクセスするための方法
JPH03212739A (ja) 手続き副プログラム展開方式
CN112799942B (zh) 基于Keil C51的软件源码和目标码覆盖率分析方法和系统
JPH10187461A (ja) 言語処理方式
WO1999024904A1 (en) Apparatus and method for logging information relating to function calls to a function library
JP2000029678A (ja) プログラム言語変換方法、変換装置および記録媒体
JP3641090B2 (ja) プログラミング支援装置とその方法
JPH08180094A (ja) アーキテクチャ・シミュレータ
JPH0343833A (ja) 手続き副プログラム展開方式
JP2882876B2 (ja) プログラム試験方法
JPH01177165A (ja) 配列の定義/引用関係検査方式
JPH03282935A (ja) コンパイル処理装置及びコンパイル処理方式
US8432802B2 (en) Encapsulating frame of graphics data for replay
JP2807854B2 (ja) Cobolプログラムのデータ構造展開方式
KR100279731B1 (ko) 칠 언어에 대한 제어 흐름 표시방법
JPH0279127A (ja) フォートラン・コンパイル処理方式
JP3311761B2 (ja) 並列処理プログラムシミュレータ
JPH0357023A (ja) コンパイラの型情報伝播処理方法
JPH1083328A (ja) 単体テスト用疑似入出力実現方式
JP2000076094A (ja) シミュレータ
JPH0212528A (ja) 手続き副プログラム展開方式
JP2764782B2 (ja) Cobolプログラムのデータ構造展開方式