JP2590083B2 - ソース・プログラム翻訳処理方法 - Google Patents
ソース・プログラム翻訳処理方法Info
- Publication number
- JP2590083B2 JP2590083B2 JP62032645A JP3264587A JP2590083B2 JP 2590083 B2 JP2590083 B2 JP 2590083B2 JP 62032645 A JP62032645 A JP 62032645A JP 3264587 A JP3264587 A JP 3264587A JP 2590083 B2 JP2590083 B2 JP 2590083B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- control table
- source program
- translation
- storage area
- 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 - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 〔概要〕 本発明は、プログラムを翻訳する時において、プログ
ラム間で情報のやりとりをするために使用する記憶領域
の使用誤りを未然にチェックするために、制御表上に、
その記憶領域に対する検査機能を追加することにより、
プログラムの実行以前にプログラム間で情報のやりとり
をするために使用する記憶領域の使用誤りを検出可能と
したものである。
ラム間で情報のやりとりをするために使用する記憶領域
の使用誤りを未然にチェックするために、制御表上に、
その記憶領域に対する検査機能を追加することにより、
プログラムの実行以前にプログラム間で情報のやりとり
をするために使用する記憶領域の使用誤りを検出可能と
したものである。
本発明は、計算機システムにおけるプログラム間で情
報のやりとりをするために使用する記憶領域を制御表に
よって定義できるようにしたソース・プログラム翻訳処
理方法に関する。
報のやりとりをするために使用する記憶領域を制御表に
よって定義できるようにしたソース・プログラム翻訳処
理方法に関する。
〔従来の技術〕 従来からコンパイラにおいてソース・プログラムをコ
ンパイルするに当っては、情報の授受を行うために制御
表が用意され、当該制御表によって、使用する記憶領域
を定義している。
ンパイルするに当っては、情報の授受を行うために制御
表が用意され、当該制御表によって、使用する記憶領域
を定義している。
第3図は従来の場合の制御表とそれを利用する翻訳プ
ログラムの構成例を示している。
ログラムの構成例を示している。
図中、1aと1bとは翻訳プログラムの入力となるソース
・プログラム、2は翻訳プログラムの入力となる制御表
を定義しているマクロ(または制御表)、3aと3bとは翻
訳を行なう時の単位、4は翻訳プログラムである。
・プログラム、2は翻訳プログラムの入力となる制御表
を定義しているマクロ(または制御表)、3aと3bとは翻
訳を行なう時の単位、4は翻訳プログラムである。
図示のように、プログラム1a中で使用しているフィー
ルドA1、A2、…に対応して存在する制御表中のフィール
ド(制御表中の分割された領域をフィールドと呼ぶ)A
1、A2、…がデファイン・コンスタンス(DC)またはデ
ィファイン・ストレージ(DS)によって定義されてい
る。そして、フィールドA1、A2にデータを格納するプロ
グラムを作成したい場合、または、フィールドA2、A3の
データを参照するプログラムを作成したい場合、翻訳プ
ログラム4に対して、ソース・プログラム1aと制御表マ
クロ2とを翻訳の単位(3a)として入力するようにして
いる。更に、前記と同一のフィールドを格納/参照して
いるプログラム(1b)が存在する場合、制御表マクロ2
を介してプログラム間の情報交換が行なわれる。つま
り、翻訳プログラム4は、プログラム1a、1bのどちらを
翻訳する場合でも、同一マクロ(制御表)2を使う事に
よりフィールドに定義されたデータの等価性を保つよう
にしている。
ルドA1、A2、…に対応して存在する制御表中のフィール
ド(制御表中の分割された領域をフィールドと呼ぶ)A
1、A2、…がデファイン・コンスタンス(DC)またはデ
ィファイン・ストレージ(DS)によって定義されてい
る。そして、フィールドA1、A2にデータを格納するプロ
グラムを作成したい場合、または、フィールドA2、A3の
データを参照するプログラムを作成したい場合、翻訳プ
ログラム4に対して、ソース・プログラム1aと制御表マ
クロ2とを翻訳の単位(3a)として入力するようにして
いる。更に、前記と同一のフィールドを格納/参照して
いるプログラム(1b)が存在する場合、制御表マクロ2
を介してプログラム間の情報交換が行なわれる。つま
り、翻訳プログラム4は、プログラム1a、1bのどちらを
翻訳する場合でも、同一マクロ(制御表)2を使う事に
よりフィールドに定義されたデータの等価性を保つよう
にしている。
一つの制御表の格納・参照を数多くのプログラムで行
なっていると、場合によっては誤まって格納・参照が行
われることになり兼ねない。またその場合の障害調査も
困難になってきている。
なっていると、場合によっては誤まって格納・参照が行
われることになり兼ねない。またその場合の障害調査も
困難になってきている。
従来の制御表に示すような制御表の定義方法では、複
数のプログラムで制御表のフィールドを格納・参照して
いる状態を検査する事ができなかった。またこの検査を
行なわないために、レビュー(人間の目視)を行った
り、また実計算機を使用したりしなければ、プログラム
の正当性を保障できないなどの問題点を生じていた。
数のプログラムで制御表のフィールドを格納・参照して
いる状態を検査する事ができなかった。またこの検査を
行なわないために、レビュー(人間の目視)を行った
り、また実計算機を使用したりしなければ、プログラム
の正当性を保障できないなどの問題点を生じていた。
本発明は上記の点を解決しており、制御表上に必要な
情報を記述しておくことによって、正当性を保障できる
ようにしている。
情報を記述しておくことによって、正当性を保障できる
ようにしている。
第1図は本発明の原理構成図を示す。図中、1aと1bと
は翻訳プログラムの入力となるソース・プログラム、2
は翻訳プログラムの入力となる制御表を定義しているマ
クロ(または制御表)、3aと3bとは翻訳を行なう時の単
位、4は翻訳プログラムである。本発明の場合、制御表
を定義しているマクロ2上に検査フィールドをもうける
ことにある。即ち「*# CHECKST …」又は「*# C
HECKLD …」のようなCHECK文をもうけるようにしてい
る。なお、「*# CHECKST ABC,DEF」はモジュール
「ABC」とモジュール「DEF」とが該当するフィールドを
格納する資格をもつことを表わしている。また「*#
CHECKLD ABC」はモジュール「ABC」が該当するフィー
ルドを参照する資格をもつことを表わしている。
は翻訳プログラムの入力となるソース・プログラム、2
は翻訳プログラムの入力となる制御表を定義しているマ
クロ(または制御表)、3aと3bとは翻訳を行なう時の単
位、4は翻訳プログラムである。本発明の場合、制御表
を定義しているマクロ2上に検査フィールドをもうける
ことにある。即ち「*# CHECKST …」又は「*# C
HECKLD …」のようなCHECK文をもうけるようにしてい
る。なお、「*# CHECKST ABC,DEF」はモジュール
「ABC」とモジュール「DEF」とが該当するフィールドを
格納する資格をもつことを表わしている。また「*#
CHECKLD ABC」はモジュール「ABC」が該当するフィー
ルドを参照する資格をもつことを表わしている。
なお、上記の制御表マクロ2は、その中に上記CHECK
文がもうけられていることから本願にいう利用資格判定
ファイルに該当している。
文がもうけられていることから本願にいう利用資格判定
ファイルに該当している。
従来の場合と同様に例えばソース・プログラム1bと制
御表マクロ2とが翻訳単位3bとして、翻訳プログラム4
に供給されるが、このとき翻訳プログラム4において次
の如きチェックが行われる。即ち、モジュールDEFに対
応するソース・プログラム1b上において、フィールドA1
をストアする「ST 2,A1」旨の記述があるとき、制御表
マクロ2上でモジュールDEFがフィールドA1を格納する
ことが許されているか否かを調べる。この場合には許さ
れており、エラーとなることはない。しかしプログラム
1b上において、フィールドA2をストアする旨の記述があ
るが、制御表マクロ2上においてフィールドA2を格納で
きるのはモジュールABCのみであることから、チェック
の結果はエラーとなる。
御表マクロ2とが翻訳単位3bとして、翻訳プログラム4
に供給されるが、このとき翻訳プログラム4において次
の如きチェックが行われる。即ち、モジュールDEFに対
応するソース・プログラム1b上において、フィールドA1
をストアする「ST 2,A1」旨の記述があるとき、制御表
マクロ2上でモジュールDEFがフィールドA1を格納する
ことが許されているか否かを調べる。この場合には許さ
れており、エラーとなることはない。しかしプログラム
1b上において、フィールドA2をストアする旨の記述があ
るが、制御表マクロ2上においてフィールドA2を格納で
きるのはモジュールABCのみであることから、チェック
の結果はエラーとなる。
第2図は本発明の翻訳プログラムにおけるチェック態
様を説明するフローチャートを示す。上述のように制御
表マクロ2中に格納・参照をチェックするための制御文
(CHECK文)をもうけ、さらに翻訳プログラム4の中で
プログラム1a又は1bを翻訳する時に、プログラム1a又は
1b内で使用しているフィールド(A1、A2、A3)を使用可
能かどうかを検査する。
様を説明するフローチャートを示す。上述のように制御
表マクロ2中に格納・参照をチェックするための制御文
(CHECK文)をもうけ、さらに翻訳プログラム4の中で
プログラム1a又は1bを翻訳する時に、プログラム1a又は
1b内で使用しているフィールド(A1、A2、A3)を使用可
能かどうかを検査する。
プログラムABC 1aは、フィールドA1とA2とを格納、
フィールドA2とA3とに参照を許可してもらうために、マ
クロ2内のCHECK文中モジュール名ABCを定義している。
なお、プログラムDEF 1bはフィールドA1に格納、フィ
ールドA3に参照しか許可されていないので、フィールド
A2の格納・参照はコーディングミスとしてエラーにな
る。
フィールドA2とA3とに参照を許可してもらうために、マ
クロ2内のCHECK文中モジュール名ABCを定義している。
なお、プログラムDEF 1bはフィールドA1に格納、フィ
ールドA3に参照しか許可されていないので、フィールド
A2の格納・参照はコーディングミスとしてエラーにな
る。
第2図図示の場合には、ソース・プログラムを読込ん
で、当該ソース・プログラム中のフィールドが格納系の
命令に対応するか否か、また参照系の命令に対応する
か否かによってチェックが行われる。そしてエラーと
ならない場合に限ぎって、マシン・コードへの変換が行
われる。
で、当該ソース・プログラム中のフィールドが格納系の
命令に対応するか否か、また参照系の命令に対応する
か否かによってチェックが行われる。そしてエラーと
ならない場合に限ぎって、マシン・コードへの変換が行
われる。
本発明によれば、複数のプログラム間で情報をやりと
りする制御表を使用するプログラムの作成ミスをコンパ
イル時に発見できる。更に、障害調査情報およびフィー
ルドの管理情報としても利用できる。
りする制御表を使用するプログラムの作成ミスをコンパ
イル時に発見できる。更に、障害調査情報およびフィー
ルドの管理情報としても利用できる。
第1図は本発明の原理構成図、第2図は翻訳プログラム
におけるチェック態様を表わすフローチャート、第3図
は従来の処理を示す。 図中、1はソース・プログラム、2は制御表マクロ(又
は制御表)、3は翻訳単位、4は翻訳プログラムを表わ
す。
におけるチェック態様を表わすフローチャート、第3図
は従来の処理を示す。 図中、1はソース・プログラム、2は制御表マクロ(又
は制御表)、3は翻訳単位、4は翻訳プログラムを表わ
す。
Claims (1)
- 【請求項1】複数のソース・プログラムから共通に使用
される記憶領域に対して当該記憶領域に格納制御および
参照制御のいずれか一方または両方による制御を行う資
格を記述してなる利用資格判定ファイルが用いられ、 上記ソース・プログラムについての翻訳時に、上記利用
資格判定ファイルを参照し、 上記記憶領域に対する制御を行う所の上記ソース・プロ
グラム上の命令が、当該記憶領域に対する制御資格をも
つか否かをチェックするようにし、 当該チェックの結果で上記命令による制御が正当である
場合に、当該ソース・プログラム上の当該命令に対する
翻訳を行う ようにしたことを特徴とするソース・プログラム翻訳処
理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62032645A JP2590083B2 (ja) | 1987-02-16 | 1987-02-16 | ソース・プログラム翻訳処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62032645A JP2590083B2 (ja) | 1987-02-16 | 1987-02-16 | ソース・プログラム翻訳処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63200236A JPS63200236A (ja) | 1988-08-18 |
JP2590083B2 true JP2590083B2 (ja) | 1997-03-12 |
Family
ID=12364587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62032645A Expired - Fee Related JP2590083B2 (ja) | 1987-02-16 | 1987-02-16 | ソース・プログラム翻訳処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2590083B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6072033A (ja) * | 1983-09-27 | 1985-04-24 | Fujitsu Ltd | 分割コンパイル方式 |
-
1987
- 1987-02-16 JP JP62032645A patent/JP2590083B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS63200236A (ja) | 1988-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102402451B (zh) | 用户定义类型的编译时边界检查 | |
US5377315A (en) | Regeneration of process control flow diagrams for programmable logic controllers | |
US8261251B2 (en) | Modification of array access checking in AIX | |
JP2590083B2 (ja) | ソース・プログラム翻訳処理方法 | |
KR0125605B1 (ko) | 프로그램의 아키덱쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치 | |
JPH0766342B2 (ja) | プログラムテスト装置 | |
JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
Symest | 5.16 Evaluation of NAPSS Expressions Involving Polyalgorithms, Functions, Recursion, and Untyped Variables | |
JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
JPS60179847A (ja) | 実配列および仮配列間の整合性チエツク方式 | |
JPS58169637A (ja) | コンパイル処理方式 | |
Symes | Manipulation of data structures in a numerical analysis problem solving system: NAPSS | |
JP3428253B2 (ja) | シーケンサ | |
Symes | Manipulation of Data Structure in a Numerical Analysis Problem Solving Systems | |
JP3192177B2 (ja) | オブジェクト処理装置 | |
JPS5858648A (ja) | プログラムの未決項目処理方式 | |
JPH01273144A (ja) | ソフトウエア開発支援装置 | |
Welch et al. | Reengineering of legacy systems: Toward an automated approach | |
Sommerville | An experiment in high-level microprogramming | |
JPH02115951A (ja) | 高級言語プログラム保守デバッグ方式 | |
JPH0255811B2 (ja) | ||
JPH07168711A (ja) | プログラム管理方法 | |
JPH07239789A (ja) | データコード処理方式 | |
Perumalla et al. | Source-code Transformations for E cient Reversibility | |
JPS61281340A (ja) | プロローグ言語コンパイル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |