JP2601547B2 - 内部手続き引数検査装置 - Google Patents

内部手続き引数検査装置

Info

Publication number
JP2601547B2
JP2601547B2 JP1244383A JP24438389A JP2601547B2 JP 2601547 B2 JP2601547 B2 JP 2601547B2 JP 1244383 A JP1244383 A JP 1244383A JP 24438389 A JP24438389 A JP 24438389A JP 2601547 B2 JP2601547 B2 JP 2601547B2
Authority
JP
Japan
Prior art keywords
list
argument
subroutine
function
syntax tree
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.)
Expired - Lifetime
Application number
JP1244383A
Other languages
English (en)
Other versions
JPH03105623A (ja
Inventor
敏彦 紺野
英明 本間
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1244383A priority Critical patent/JP2601547B2/ja
Publication of JPH03105623A publication Critical patent/JPH03105623A/ja
Application granted granted Critical
Publication of JP2601547B2 publication Critical patent/JP2601547B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔概要〕 関数引用およびサブルーチン引用の内部手続きの引数
検査を行う内部手続き引数検査装置に関し、 構文解析区で関数引用およびサブルーチン引用を統一し
た式言および手続き引用局簿を用いた構文木言で表し、
これの式言から実引数簿および実引数要素簿を設定して
意味解析区で引数などの妥当性をチェックし、関数引用
およびサブルーチン引用の両者を統一して処理すること
を目的とし、 ソースプログラムの関数引用およびサブルーチン引用を
構文解析してその結果を式言および手続き引用局簿を用
いた構文木言で統一した形でそれぞれ表し、この構文木
言の式言を参照して手続き引用局簿から順次ポイントさ
れる実引数簿および実引数要素簿を統一した形でそれぞ
れ設定した構文木言を生成し、これら設定した構文木言
に基づいて内部手続きの引数検査などを統一した態様で
行うように構成する。
〔産業上の利用分野〕
本発明は、関数引用およびサブルーチン引用の内部手
続きの引数検査を行う内部手続き引数検査装置に関する
ものである。
〔従来の技術と発明が解決しようとする課題〕
従来のFORTRANの言語仕様に内部手続きがなく、今回
のFORTRAN77Exで初めて追加され、第3図に示すよう
に、(a)関数引用および(b)サブルーチン引用の手
続き引数のインタフェースを別々に処理していた。この
ため、構文解析区の出力インタフェースが、図示のよう
に式言を用いた(a)関数引用と、局簿、簿を用いた
(b)サブルーチン引用(CALL文)とでは異なっていた
ため、構文解析区で別々のサブルーチンを作成して処理
すると共に、意味解析区で別々に引数検査を行わざるを
得ず、両者を統一して処理できないという問題があっ
た。
尚、第3図構成を簡単に説明する。
第3図(イ)は、ソースプログラム例を示す。これ
は、図示のように関数引用、サブルーチン引用のソース
プログラム例を示す。
第3図(ロ)の(a)関数引用は、第3図(イ)関数
引用の代入文“X=FUN(A,B)”を構文解析し、その結
果を式言、手付き引用局簿を用いて表した構文木言であ
る。
第3図(ロ)の(b)サブルーチン引用は、第3図
(イ)のCALL文“CALL SUB(A,B)”を構文解析し、そ
の結果を手続き引用局簿、実引数簿、実引数要素簿を用
いて表した構文木言である。
本発明は、構文解析区で関数引用およびサブルーチン
引用を統一した式言および手続き引用局簿を用いた構文
木言で表し、これの式言から実引数簿および実引数要素
簿を設定して意味解析区で引数などの妥当性をチェック
し、関数引用およびサブルーチン引用の車両を統一して
処理することを目的としている。
〔課題を解決する手段〕
第1図を参照して課題を解決する手段を説明する。
第1図において、構文木言1は、ソースプログラムの
関数引用およびサブルーチン引用を構文解析してその結
果を式言2および手続き引用局簿3を用いて統一して表
したものである。
構文木言4は、構文大言1の式言2を参照して実引数
簿5および実引数要素簿6を用いて統一して生成したも
のである。
プログラム単位簿(子供)8は、プログラム単位簿
(親)7にリンクして内部手続きの構文解析した結果を
表したものである。
〔作用〕 本発明は、第1図に示すように、ソースプログラムの
関数引用およびサブルーチン引用を構文解析してその結
果を式言2および手続き引用局簿3を用いて統一した構
文木言1で表し、この構文木言1の式言2を参照して実
引数簿5および実引数要素簿6を統一した形でそれぞれ
設定した構文木言4を生成し、関数引用およびサブルー
チン引用のこれら構文木言4および内部手続きを表すプ
ログラム単位簿8の両者の引数の型、形状などを比較し
てその妥当性を統一した態様でチェックするようにして
いる。
従って、関数引用およびサブルーチン引用を統一した
式言2および手続き引用局簿3を用いた構文木言1で表
し、この式言2をもとに実引数簿5および実引数要素簿
6を設定して構文木言4を生成して引数の型、形状など
の妥当性をチェックすることにより、関数引用およびサ
ブルーチン引用の両者を統一して無駄を排除し、引数検
査などを迅速に処理することが可能となる。
〔実施例〕
次に、第1図および第2図を用いて本発明の1実施例
の構成および動作を順次詳細に説明する。
第1図(イ)は、ソースプログラム例を示す。これ
は、図示のように関数引用の代入文“X=FUN(A,B)”
およびサブルーチン引用のCALL文“CALL SUB(A,B)”
のソースプログラム例を示す。
第1図(ロ)は構文解析区の出力例を示す。
第1図(ロ)の(b)関数引用は、第1図(イ)関数
引用の代入文“X=FUN(A,B)”を構文解析し、その結
果を式言2、手続き引用局簿3を用いて統一して表した
構文木言1である。詳述すれば、構文解析区でソースプ
ログラムの関数引用の代入文を構文解析してその結果
を、構文木言1の先頭に“代入文”、これから順次ポイ
ントされる第1の式言2に関数開始、第2の式言2
に“,A"、第3の式言2に“)B"というようにリンク
し、更に第1の式言2からポイントされる手続き引用局
簿3からポイントされる領域に綴り“FUN"を設定する。
第1図(ロ)の(a)サブルーチン引用は、第1図
(イ)サブルーチン引用のCALL文“CALL SUB(A,B)”
を構文解析し、その結果を式言2、手続き引用局簿3を
用いて統一して表した構文木言1である。詳述すれば、
構文解析区でソースプログラムのCALL文を構文解析して
その結果を、構文木1の先頭に“CALL"、これから順次
ポイントされる第1の式言2に関数開始、第2の式言2
に“,A"、第3の式言2に“)B"というようにリンク
し、更に第1の式言2からポイントされる手続き引用局
簿3からポイントされる領域に綴り“SUB"を設定する。
以上の第1図(ロ)(b)関数引用の構文木言1およ
び第1図(ロ)(a)サブルーチン引用の構文木言1に
示すように統一して表す(インタフェースを統一する)
ことにより、同じサブルーチンによって両者の構文木言
1を生成することが可能となる。
第1図(ハ)は、構文解析および意味解析しようとす
るソースプログラム例を示す。
第1図(ニ)は、意味解析区における内部手続き引数
のチェック説明図を示す。
第1図(ニ)において、プログラム単位簿(親)7か
ら既述した第1図(ロ)構文木言1をリンクすると共
に、更に第1図(ハ)ソースプログラムの内部手続き
(COTAINSから始まる内部手続き)を構文解析してプロ
グラム単位簿(子供)8、仮引数簿9、仮引数要素簿10
に図示のように設定する。
次に、第2図フローチャートを用いて本発明の1実施
例の構成の動作を詳細に説明する。
第2図において、は、ソースを入力する。これは、
例えば第1図(ハ)ソースプログラムを行単位に入力す
る。
は、関数引用又はサブルーチン引用か否かを判別す
る。これは、で入力されたソースプログラムの構文解
析を行い、関数引用(代入文など)又はサブルーチン引
用(CALL文など)が現れたか否かを判別する。YESの場
合には、本実施例に係るを行う。NOの場合には、で
次の行についてソース入力する。
は、関数引用、サブルーチン引用の区別なく、簿及
び局簿を作成する。これは、例えば第1図(ロ)(b)
関数引用の代入文、第1図(ロ)(a)サブルーチン引
用のCALL文の両者を区別することなく、統一して図示の
ように式言2、手続き引用局簿3などを持つ構文木言1
を作成する。
以上の処理は、構文解析区で行われる。
は、構文木言を入力する。これは、構文解析区で作
成された構文木言1を入力する。
は、手続き引用局簿がありか否かを判別する。これ
は、で入力された構文木言1中に手続き引用局簿3が
ありか否かを判別する。YESの場合には、を行う。NO
の場合には、を繰り返し行う。
は、関数引用、サブルーチン引用の区別なく、引数
のチェック及び関数名の妥当性のチェックを行う。以下
詳述する。
(1) 意味解析区の前処理として、例えば第1図
(ロ)構文木言1を入力とし、式言2を参照して第1図
(ニ)に示すように、手続き引用局簿3からポイントさ
れる実引数簿5および実引数要素簿6に図示のように実
引数の個数や、実引数などを設定する。
(2) 関数名の妥当性のチェックを行う。これは、例
えば第1図(ニ)のに示すように、構文木言(代入
文)1の手続き引用局簿3からポイントされる綴り“FU
N"について、プログラム単位簿(親)7から探して該当
するプログラム単位簿(子供)8の“FUN"を見つける。
見つかった場合には、当該関数名が妥当であると判断
(チェック)する。
(3) 引数などの妥当性のチェックを行う。これは、
例えば関数名の綴り“FUN"に関する実引数簿5、実引数
要素簿6の内容と、(2)で見つけた関数名の綴り“FU
N"に関する仮引数簿9、仮引数要素簿10の内容とを比較
し、個数や、FORTRAN77Exの言語仕様で決められている
実引数と仮引数との型および形状などが一致しているか
否かなどを、関数引用、サブルーチン引用の区別なく統
一的にチェックする(点線を用いて用いて示すように両
者をチェックする)。
以上の処理は、意味解析区で行われる。
〔発明の効果〕
以上説明したように、本発明によれば、構文解析区で
関数引用およびサブルーチン引用を統一した式言2およ
び手続き引用局簿3を用いた構文木言1で表し、これの
式言2をもとに実引数簿5および実引数要素簿6を統一
的に設定して構文木言4を生成し、これに基づいて意味
解析区で引数の型・形状などの妥当性を統一的にチェッ
クする構成を採用しているため、関数引用およびサブル
ーチン引用の両者を統一して構文解析・意味解析して無
駄を排除し、引数検査などを迅速に行うことができる。
【図面の簡単な説明】
第1図は本発明の1実施例構成図、第2図は本発明の動
作説明フローチャート、第3図は従来技術の説明図を示
す。 図中、1、4は構文木言、2は式言、3は手続き引用局
簿、5は実引数簿、6は実引数要素簿、7はプログラム
単位簿(親)、8はプログラム単位簿(子供)、9は仮
引数簿、10は仮引数要素簿を表す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】関数引用およびサブルーチン引用の内部手
    続きの引数検査を行う内部手続き引数検査装置におい
    て、 ソースプログラムの関数引用およびサブルーチン引用を
    構文解析してその結果を式言(2)および手続き引用局
    簿(3)を用いた構文木言(1)で統一した形でそれぞ
    れ表す手段と、 この構文木言(1)の式言(2)を参照して手続き引用
    局簿(3)から順次ポイントされる実引数簿(5)およ
    び実引数要素簿(6)を統一した形でそれぞれ設定した
    構文木言(4)を生成する手段と、 これら設定された構文木言(4)に基づいて内部手続き
    の引数検査などを統一した態様で行う手段と、 を備えたことを特徴とする内部手続き引数検査装置。
JP1244383A 1989-09-20 1989-09-20 内部手続き引数検査装置 Expired - Lifetime JP2601547B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1244383A JP2601547B2 (ja) 1989-09-20 1989-09-20 内部手続き引数検査装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1244383A JP2601547B2 (ja) 1989-09-20 1989-09-20 内部手続き引数検査装置

Publications (2)

Publication Number Publication Date
JPH03105623A JPH03105623A (ja) 1991-05-02
JP2601547B2 true JP2601547B2 (ja) 1997-04-16

Family

ID=17117869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1244383A Expired - Lifetime JP2601547B2 (ja) 1989-09-20 1989-09-20 内部手続き引数検査装置

Country Status (1)

Country Link
JP (1) JP2601547B2 (ja)

Also Published As

Publication number Publication date
JPH03105623A (ja) 1991-05-02

Similar Documents

Publication Publication Date Title
EP1027648B1 (en) Apparatus for semi-automated generation and application of language conformity tests
JP2601547B2 (ja) 内部手続き引数検査装置
JPH02224132A (ja) メッセージパーサの自動発生システム
JP2742280B2 (ja) 日本語自動解析装置
JP2770555B2 (ja) 自然言語解析システム
JPH01177165A (ja) 配列の定義/引用関係検査方式
JP3339006B2 (ja) 機械翻訳装置における並列名詞句処理装置
JP2598082B2 (ja) 知識処理言語のドキュメンテーション装置及びドキュメンテーション方法
JP2917786B2 (ja) 自然言語インタフェース方式
JPH04205463A (ja) 自然言語接続様相解析処理方法
JP3055704B2 (ja) 事象概念解析器
JPH02205930A (ja) インタフェースチェック処理方法
JPH06242958A (ja) コンパイル方式
JPH0455944A (ja) コンパイラの構文解析部の作成方法
JP2861630B2 (ja) 接続構造解析器
KR950015127A (ko) 칠(chill) 분리 컴파일 방법
JPH04372060A (ja) 日本語解析装置
JPS63221476A (ja) 自然言語処理方法
JPH05290086A (ja) 日本語意味解析方法
JPH05204699A (ja) デバッグ時識別子探索方式
JPH0635712A (ja) Fortranプログラムにおける手続きの自動インライン展開処理方式
JPH07225689A (ja) モジュール機能を有する計算機言語のオブジェクトプログラム生成方法
JPH09185623A (ja) 言語処理装置及び方法
JPH0635714A (ja) プログラムの最適化方式
JPH0417028A (ja) プログラム言語の翻訳編集方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080129

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 13