JPH04205355A - プログラム変数の使用検査装置 - Google Patents

プログラム変数の使用検査装置

Info

Publication number
JPH04205355A
JPH04205355A JP2335283A JP33528390A JPH04205355A JP H04205355 A JPH04205355 A JP H04205355A JP 2335283 A JP2335283 A JP 2335283A JP 33528390 A JP33528390 A JP 33528390A JP H04205355 A JPH04205355 A JP H04205355A
Authority
JP
Japan
Prior art keywords
variable
restriction information
usage
source program
common
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
JP2335283A
Other languages
English (en)
Inventor
Yumiko Suzuki
由美子 鈴木
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2335283A priority Critical patent/JPH04205355A/ja
Publication of JPH04205355A publication Critical patent/JPH04205355A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、プログラミング言語で記述されたソースプ
ログラムの解析装置に関し、特に、プログラム変数が正
しく使用されているかを検査するプログラム変数の使用
検査装置に関するものである。
〔従来の技術〕
第7図は例えばUNIX SystemV プログラマ
・リファレンス・マニュアル第2版リリース3.0共立
出版株式会社1989年に記述されている。従来のプロ
グラム変数解析装置の一例であるcxrefの動作を示
す図である。図において(71)は解析対象となるソー
スプログラム、 (72)はプログラム変数解析装置、
 (73)は解析結果である。ソースプログラム(71
)において、 (71)は整数型の共通変数Varlを
モジュールteat proにおいて使用することを記
述した共通変数使用宣言文、 ’(712)は共通変数
varlの値を読み込んでいる算術式、 (713)は
共通変数varlの値を更新している算術式である。ま
た。
解析結果(73)において、 (731)と(732)
は共通変数varlがモジュールtest proにお
いて使用されている箇所を示している。
プログラム変数解析装置(72)は、ソースプログラム
(1)を解析し、プログラム変数のソースプログラム(
1)での使用状況を解析結果(73)として出力する。
例えば、共通変数varlの使用状況として。
(711)について(731)を、 (712)と(7
13)に対して(732)を出力している。この解析で
は共通変数の使用箇所を明示してくれるが、使用内容が
値の読み込みなのか、書き込みなのかといった判断や検
査はプログラマが自分で行なうことになる。
〔発明が解決しようとする課題〕
従来のプログラム変数解析装置では以上のように共通変
数に対して読み込みのみ、書き込みのみといった使用を
検査する機構が存在していなかったので、特定のモジュ
ールでは値の書き込みを行なうがそれ以外のモジュール
ではその値の読み込みしか行なわないといったことが明
らかな共通変数に対しても絶えず値の読み込みと書き込
みが許されており、プログラマのミスによる予想外の共
通変数の使用によりプログラムが正しく動かないことが
生じるなどの問題点があった。
この発明は上記のような問題点を解消するためになされ
たもので、モジュール間に共通な変数に対してモジュー
ル毎に読み込みのみ、書き込みのみの制限情報が記述さ
れているソースプログラムを解析して、その制限情報通
りにその共通変数が使用されているかをプログラムのソ
ースレベルで検査するプログラム変数の使用検査装置を
提供することを目的とする。
〔課題を解決するための手段〕
この発明に係わるプログラム変数の使用検査装置は、予
め共通変数に対する使用制限情報がモジュール毎に記述
してあるソースプログラムに対して、その共通変数に対
する使用制限情報を解析する変数使用制限情報解析手段
と、解析された制限情報を貯える変数使用制限情報蓄積
手段と、蓄積されたその制限情報を参照しながらソース
プログラムにおける変数の使用が制限通りになっている
か検査し、誤りを検査結果として出力する変数使用検査
手段とを設けたものである。
〔作用〕
この発明におけるプログラム変数の使用検査装置は、ソ
ースプログラムにおける共通変数に対する変数使用制限
情報を解析し、その制限情報を蓄積し、その蓄積された
制限情報を参照しながらソースプログラム中の変数の使
用を検査することにより、ソースプログラムの段階で共
通変数に対する誤った使用を発見する。
〔実施例〕
以下、この発明の一実施例を図について説明する。第1
図において、(1)はソースプログラム。
(2)はそのソースプログラムにおける共通変数の使用
を検査する変数使用検査装置、(3)はその検査結果で
ある。(21)はソースプログラム(1)における変数
使用制限情報を解析し、その制限情報を変数使用制限情
報蓄積手段としての変数使用制限情報テーブル(22)
に貯える変数使用制限情報解析部、 (23)はその変
数使用制限情報テーブル(22)に貯えられた制限情報
を参照しながら変数の使用を検査する変数使用検査部で
ある。
次にこの発明の実施例の動作について説明する。
第2図は、解析対象となるソースプログラム(1)の−
例である。(11)は共通変数varlを読み込みのみ
(in)で使用するという情報が付加されている変数使
用宣言文である。(12)は共通変数var2を書き込
みの(out)で使用するという情報が付加されている
変数使用宣言文である。(13)は共通変数var3を
読み込み書き込みの制限なく使用することを記述してい
る変数使用宣言文である。(14)は変数var1の値
を読み込んでいる算術式であり、 (15)は変数va
rlの値を更新する算術式である。(16)は変数va
r2の値を読み込んでいる算術式であり、 (17)は
変数var2の値を更新する算術式である。(18)は
変数var3の値を読み込んでいる算術式であり、 (
19)は変数var3の値を更新する算術式である。
変数使用検査装置(2)は、まず変数使用制限情報解析
部(21)が、ソースプログラム(1)における共通変
数の使用制限情報を解析し、その制限情報を変数使用制
限情報テーブル(22)に書き込む。
第3図は、この変数使用制限情報解析部の動作を説明す
るフローチャートである。変数使用制限情報解析部(2
1)は、ソースプログラム(1)から−文づつ読み込み
(211) 、それが共通変数の使用制限情報であるか
(この例では、それが共通変数の使用制限情報を付加し
た変数使用宣言文であるか)判断する(212)。もし
その文が変数使用制限情報を付加した宣言文ならばその
変数名と使用制限を変数使用制限情報テーブル(22)
に書き込む(213)。
この処理を宣言文が終るまで繰り返す(214)。第2
図に示すソースプログラム例においては、 (11)と
(12)が変数使用制限情報を付加した変数使用宣言文
であるので、その情報が変数使用制限情報テーブル(2
2)に貯えられる。
第4図は変数使用制限情報テーブル(22)の−例であ
る。変数使用制限情報テーブル(22)は、制限されて
いる変数名と使用制限の対になっている。
第2図に示すソースプログラムを例にすると、(11)
より変数名varlと使用制限のin(読み込みのみ)
の対(221)が、 (12)より変数名var2と使
用制限のout  (書き込みのみ)の対(222)が
貯えられる。
変数使用検査部(23)は、変数使用制限情報解析部(
21)で作成された変数使用制限情報テーブル(22)
を参照しながらソースプログラム(1)における変数の
使用を検査して、制限情報と食い違いがある場合はその
誤りを検査結果(3)として出力する。
第5図は、変数使用検査部(23)の動作を説明するフ
ローチャートである。変数使用検査部(23)は。
ソースプログラム(1)から−文づづ読み込み(231
)。
変数使用制限情報テーブル(22)に登録されている変
数を使用しているか判断する(232)。使用している
場合はその変数が使用制限通りに使用されているかを判
断しく233) 、使用制限通りではない場合は変数の
使用に誤りがあることを検査結果として出力する(23
4)。この処理をソースプログラムの最後の文まで繰り
返す(235)。
第2図に示すソースプログラム例においては。
変数varlの値を更新する算術式である(15)は変
数使用制限情報テーブルの(221)に反しており9変
数var2の値を読み込んでいる算術式である(16)
は変数使用制限情報テーブルの(222)の情報に反し
ていることが分る。(14)と(17)の算術式は、変
数使用制限テーブルに登録されている変数を使用してい
るが、制限情報通りの使用であり誤りではない。また、
 (18)と(19)の算術式は、使用制限のある共通
変数を使用していないので問題はない。
第6図は、変数使用検査装置(2)の解析結果(3)の
−例である。第2図のソースプログラムに対する検査結
果として、 (11)と(15)より(31)のメツセ
ージが、  (12)と(16)より(32)のメツセ
ージが出力される。
なお、上記実施例ではC言語をベースに説明したか、モ
ジュール間に共通な変数を設けることができるプログラ
ミング言語Ada、 Fortranなどによって記述
されるソースプログラムに対しても適用可能である。ま
た本発明の実施例では共通変数に対する制限情報の記述
方法としてソースプログラムにおける変数使用宣言文の
コメント欄にin (読み込みのみ) 、 out  
(書き込みのみ)の情報を書き加えているがその池の記
述方式でもよい。
〔発明の効果〕
以上のように、この発明によれば、予め共通変数に対す
る使用制限情報がモジュール毎に記述してあるソースプ
ログラムに対して、その共通変数に対する使用制限情報
を解析する変数使用制限情報解析手段と、解析された制
限情報を貯える変数使用制限情報蓄積手段と、蓄積され
たその制限情報を参照しながらソースプログラムにおけ
る変数の使用が制限通りになっているか検査し、誤りを
検査結果として出力する変数使用検査手段とを設けたの
で、共通変数に対する誤った使用をソースプログラムレ
ベルで発見できるので、信頼性の高いプログラムを得る
ことができる。
【図面の簡単な説明】
第1図は本発明のプログラム変数の使用検査装置の一実
施例を示す構成図。 第2図は解析対象となるソースプログラムの一例を示す
図。 第3図は第1図の変数使用制限情報解析部の動作を説明
するフローチャート 第4図は第1図の変数使用制限情報テーブルを説明する
図1 第5図は第1図の変数使用検査部の動作を説明するフロ
ーチャート。 第6図は、解析結果の一例を示す図。 第7図は、従来のプログラム変数解析装置の動作を示す
図である。 第1図において。 (1)はソースプログラム。 (2)は変数使用検査装置。 (3)は検査結果。 (21)は変数使用制限情報解析部。 (22)は変数使用制限情報テーブル。 (23)は変数使用検査部 である。 なお9図中、同一符号は同一、又は相当部分を示す。

Claims (1)

    【特許請求の範囲】
  1. モジュール間に共通な変数(共通変数と呼ぶ)に対する
    使用制限情報が予め記述してあるソースプログラムに対
    して、その共通変数に対する使用制限情報を解析する変
    数使用制限情報解析手段と、解析された制限情報を貯え
    る変数使用制限情報蓄積手段と、蓄積されたその制限情
    報を参照しながらソースプログラムにおける変数の使用
    が制限通りになつているか検査し、誤りを検査結果とし
    て出力する変数使用検査手段とを備えたプログラム変数
    の使用検査装置。
JP2335283A 1990-11-30 1990-11-30 プログラム変数の使用検査装置 Pending JPH04205355A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2335283A JPH04205355A (ja) 1990-11-30 1990-11-30 プログラム変数の使用検査装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2335283A JPH04205355A (ja) 1990-11-30 1990-11-30 プログラム変数の使用検査装置

Publications (1)

Publication Number Publication Date
JPH04205355A true JPH04205355A (ja) 1992-07-27

Family

ID=18286788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2335283A Pending JPH04205355A (ja) 1990-11-30 1990-11-30 プログラム変数の使用検査装置

Country Status (1)

Country Link
JP (1) JPH04205355A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021044650A1 (ja) 2019-09-04 2021-03-11 オムロン株式会社 プログラム開発装置、プロジェクト作成方法およびプログラム開発装置を実現するためのプログラム
WO2021065033A1 (ja) 2019-10-03 2021-04-08 オムロン株式会社 プログラム開発装置およびプログラム開発装置を実現するためのプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021044650A1 (ja) 2019-09-04 2021-03-11 オムロン株式会社 プログラム開発装置、プロジェクト作成方法およびプログラム開発装置を実現するためのプログラム
US11704113B2 (en) 2019-09-04 2023-07-18 Omron Corporation Program development device, project creation method, and storage medium
WO2021065033A1 (ja) 2019-10-03 2021-04-08 オムロン株式会社 プログラム開発装置およびプログラム開発装置を実現するためのプログラム

Similar Documents

Publication Publication Date Title
US7484205B2 (en) Preprocessor-based source code instrumentation
CN101739339B (zh) 一种基于程序动态依赖关系的软件故障定位方法
US5255385A (en) Method of testing program, and compiler and program testing tool for the method
Chen et al. Open-source change logs
EP0430182A2 (en) Method for assembly language programming potential error detection sensing apparent inconsistency with a previous operation
JPH04205355A (ja) プログラム変数の使用検査装置
JP2621555B2 (ja) ベクトル化処理方式
JP3029368B2 (ja) プログラム誤り検出方法および誤り検出装置
Su Automatic analysis of relay ladder logic programs
Hott Adding Functionality to PMD Java Checker
JPH01177165A (ja) 配列の定義/引用関係検査方式
Gonzalez-Morris et al. The Preprocessor and Debugging
JPH01155438A (ja) コンパイラ試験方式
KR0168929B1 (ko) 칠 전위처리기의 전위처리 방법
JP2728504B2 (ja) 入力命令文検査装置
Pless et al. GUI Environments for Functional Languages
JPS62138932A (ja) コンパイラ処理方式
JPS60179847A (ja) 実配列および仮配列間の整合性チエツク方式
JPS59231649A (ja) コンパイルリスト出力処理方式
JPS63273132A (ja) プログラム開発支援システム
JP3047418B2 (ja) ベクトル化処理方式
JPH04162149A (ja) 電子計算機
JPS62118448A (ja) 不定値参照の検出方式
Morgenstern An inconsistency management system
Kim et al. An Approach to Detect Similar Script Functions in Web Applications Based on Calling Information