JPH0778087A - コンパイラ装置 - Google Patents
コンパイラ装置Info
- Publication number
- JPH0778087A JPH0778087A JP22272593A JP22272593A JPH0778087A JP H0778087 A JPH0778087 A JP H0778087A JP 22272593 A JP22272593 A JP 22272593A JP 22272593 A JP22272593 A JP 22272593A JP H0778087 A JPH0778087 A JP H0778087A
- Authority
- JP
- Japan
- Prior art keywords
- common symbol
- program
- section
- common
- attribute definition
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【目的】 計算機におけるコンパイラの処理に関し、複
数の目的プログラムから実行形式プログラムを生成する
場合の、共通シンボルの属性定義を省略できるコンパイ
ラ装置を目的とする。 【構成】 オブジェクト生成部1は、原始プログラム2
中の共通シンボルに関して、共通シンボルセクション7
を生成し、各該共通シンボルに関するデータ領域と属性
定義情報とを設定し、実行形式プログラム生成部4は、
目的プログラム3の共通シンボルセクション7がある場
合に、共通シンボル管理部6が選択する共通シンボルセ
クション7を使用して、実行形式プログラムを生成し、
共通シンボル管理部6は、各該共通シンボルごとに、複
数の共通シンボルセクション7の該属性定義情報の、す
べての項目間に互いに矛盾がない場合に、すべての該属
性定義情報をマージした結果を持つ該共通シンボルセク
ション7を選択するように構成する。
数の目的プログラムから実行形式プログラムを生成する
場合の、共通シンボルの属性定義を省略できるコンパイ
ラ装置を目的とする。 【構成】 オブジェクト生成部1は、原始プログラム2
中の共通シンボルに関して、共通シンボルセクション7
を生成し、各該共通シンボルに関するデータ領域と属性
定義情報とを設定し、実行形式プログラム生成部4は、
目的プログラム3の共通シンボルセクション7がある場
合に、共通シンボル管理部6が選択する共通シンボルセ
クション7を使用して、実行形式プログラムを生成し、
共通シンボル管理部6は、各該共通シンボルごとに、複
数の共通シンボルセクション7の該属性定義情報の、す
べての項目間に互いに矛盾がない場合に、すべての該属
性定義情報をマージした結果を持つ該共通シンボルセク
ション7を選択するように構成する。
Description
【0001】
【産業上の利用分野】本発明は、計算機におけるコンパ
イラの処理に係り、特に複数の目的プログラムを結合編
集して実行形式プログラムを生成する場合の、共通シン
ボルの処理を効率よく行えるようにしたコンパイラ装置
に関する。
イラの処理に係り、特に複数の目的プログラムを結合編
集して実行形式プログラムを生成する場合の、共通シン
ボルの処理を効率よく行えるようにしたコンパイラ装置
に関する。
【0002】
【従来の技術と発明が解決しようとする課題】計算機に
おける、原始プログラムから目的プログラムを生成し、
複数の目的プログラムについて、いわゆる結合編集の処
理を行うことにより、一つの実行形式プログラムを生成
するコンパイラの処理を行うコンパイラ装置がある。
おける、原始プログラムから目的プログラムを生成し、
複数の目的プログラムについて、いわゆる結合編集の処
理を行うことにより、一つの実行形式プログラムを生成
するコンパイラの処理を行うコンパイラ装置がある。
【0003】そのような結合編集処理では、処理対象の
複数の目的プログラムの各原始プログラムで宣言された
共通シンボルについて、各同一の共通シンボルは同一の
ただ1組のデータを示すものとして処理し、各共通シン
ボルについては、それら複数の目的プログラムが実行形
式プログラム上で同一のデータにアクセスできるよう
に、実行形式プログラムを生成することはよく知られて
いるとおりである。
複数の目的プログラムの各原始プログラムで宣言された
共通シンボルについて、各同一の共通シンボルは同一の
ただ1組のデータを示すものとして処理し、各共通シン
ボルについては、それら複数の目的プログラムが実行形
式プログラム上で同一のデータにアクセスできるよう
に、実行形式プログラムを生成することはよく知られて
いるとおりである。
【0004】その処理のためにコンパイラのオブジェク
ト生成部は、解析部が原始プログラムの共通シンボル宣
言文(例えばFORTRAN プログラミング言語の場合には、
図4(a)又は(b)に例示するCOMMON文)を解析した場合
に、生成する目的プログラムのデータとデータ属性情報
を設定する例えばデータセクションに、データ属性情報
の一部として共通シンボルとプログラム内のデータ名と
を対応付けて、COMMON文を示す情報を設定しておく。
ト生成部は、解析部が原始プログラムの共通シンボル宣
言文(例えばFORTRAN プログラミング言語の場合には、
図4(a)又は(b)に例示するCOMMON文)を解析した場合
に、生成する目的プログラムのデータとデータ属性情報
を設定する例えばデータセクションに、データ属性情報
の一部として共通シンボルとプログラム内のデータ名と
を対応付けて、COMMON文を示す情報を設定しておく。
【0005】図4のCOMMON文の例は、(a)と(b)がそれぞ
れ個別の目的プログラムが生成されるべきプログラム単
位の各部分を示し、(a) の原始プログラムでは、プログ
ラム内のデータ名「A」のデータに共通シンボル「BL
K」を定義し、(b)の原始プログラムでは、プログラム内
のデータ名「B」のデータに共通シンボル「BLK 」を定
義している。
れ個別の目的プログラムが生成されるべきプログラム単
位の各部分を示し、(a) の原始プログラムでは、プログ
ラム内のデータ名「A」のデータに共通シンボル「BL
K」を定義し、(b)の原始プログラムでは、プログラム内
のデータ名「B」のデータに共通シンボル「BLK 」を定
義している。
【0006】COMMON文は、このような両原始プログラム
から生成された目的プログラムを結合編集する場合に、
共通シンボル「BLK 」を仲介として、一方のプログラム
で指示するデータ名「A」のデータと他方のプログラム
で指示するデータ名「B」のデータとを同一のデータと
して扱うように実行形式プログラムを生成する必要があ
ることを示す。
から生成された目的プログラムを結合編集する場合に、
共通シンボル「BLK 」を仲介として、一方のプログラム
で指示するデータ名「A」のデータと他方のプログラム
で指示するデータ名「B」のデータとを同一のデータと
して扱うように実行形式プログラムを生成する必要があ
ることを示す。
【0007】なお、図4のプログラム例において、公知
のように「REAL A(1000)」等は「データ名Aのデータが
実数型、一次元配列で配列要素数1000」を示すデータ属
性定義である。
のように「REAL A(1000)」等は「データ名Aのデータが
実数型、一次元配列で配列要素数1000」を示すデータ属
性定義である。
【0008】又、「PARTITION P=(プロセッサ数=2,分割
範囲=1:1000,分割方法=均等)」及び「LOCATE A(P)」
は、マルチプロセッサの環境において、LOCATE文で「デ
ータAを割り付け方法Pに従ってプロセッサに割り付
け」、割り付け方法P はPARTITION文の「P=」により
「2個のプロセッサに、要素1から1000までを、均等
に」であることを示すデータ属性定義であり、これによ
り、配列データA は要素1〜500と要素501 〜1000とに分
けて2つのプロセッサで分担して処理するように目的プ
ログラムが生成されることになる。
範囲=1:1000,分割方法=均等)」及び「LOCATE A(P)」
は、マルチプロセッサの環境において、LOCATE文で「デ
ータAを割り付け方法Pに従ってプロセッサに割り付
け」、割り付け方法P はPARTITION文の「P=」により
「2個のプロセッサに、要素1から1000までを、均等
に」であることを示すデータ属性定義であり、これによ
り、配列データA は要素1〜500と要素501 〜1000とに分
けて2つのプロセッサで分担して処理するように目的プ
ログラムが生成されることになる。
【0009】次に、複数の目的プログラムを結合編集し
て実行形式プログラムを生成する場合に、実行形式プロ
グラム生成部の処理では、目的プログラムに共通シンボ
ルの情報があり、2以上の異なる目的プログラムに同一
の共通シンボルがある場合には、それらのプログラムで
同一の共通シンボルに対応しているデータを同一の記憶
領域のデータとしてアクセスするように実行形式プログ
ラムを生成する。
て実行形式プログラムを生成する場合に、実行形式プロ
グラム生成部の処理では、目的プログラムに共通シンボ
ルの情報があり、2以上の異なる目的プログラムに同一
の共通シンボルがある場合には、それらのプログラムで
同一の共通シンボルに対応しているデータを同一の記憶
領域のデータとしてアクセスするように実行形式プログ
ラムを生成する。
【0010】そのために、実行形式プログラム生成部は
該当する共通シンボルについて、例えば入力順で前位に
ある一つの目的プログラムの当該共通シンボルに対応す
るデータ名について準備されているデータを無条件に選
択して、結合対象の全プログラムが、それぞれ共通シン
ボルに対応する各データ名によって、その選択した同じ
データにアクセスするようにアクセス先を調整するよう
に結合編集処理を進める。
該当する共通シンボルについて、例えば入力順で前位に
ある一つの目的プログラムの当該共通シンボルに対応す
るデータ名について準備されているデータを無条件に選
択して、結合対象の全プログラムが、それぞれ共通シン
ボルに対応する各データ名によって、その選択した同じ
データにアクセスするようにアクセス先を調整するよう
に結合編集処理を進める。
【0011】従って、結合対象のすべての目的プログラ
ムで、同一のデータ属性定義がされている場合には問題
がないが、誤って互いに矛盾した属性が定義されていた
場合に、不都合な処理結果となる恐れがある(図4の例
の(a)と(b)から生成した目的プログラムを結合する場合
に場合、partition文等は(a)のみにあって(b) には無い
ので正しく結合できるか保証されない)。
ムで、同一のデータ属性定義がされている場合には問題
がないが、誤って互いに矛盾した属性が定義されていた
場合に、不都合な処理結果となる恐れがある(図4の例
の(a)と(b)から生成した目的プログラムを結合する場合
に場合、partition文等は(a)のみにあって(b) には無い
ので正しく結合できるか保証されない)。
【0012】又、結合編集対象のプログラムが、メイン
プログラムとサブプログラムの関係にある場合等におい
て、共通シンボルで結合されるべき変数に対して、プロ
グラムごとに異なる属性定義をしてプログラムを作成し
たいことがある。
プログラムとサブプログラムの関係にある場合等におい
て、共通シンボルで結合されるべき変数に対して、プロ
グラムごとに異なる属性定義をしてプログラムを作成し
たいことがある。
【0013】たとえば、メインプログラムでは使用され
るがサブプログラムでは使用されないデータ属性につい
ては、プログラミングの容易さの観点からサブプログラ
ムでは意識しない(従って定義しない)でよいようにし
たい。
るがサブプログラムでは使用されないデータ属性につい
ては、プログラミングの容易さの観点からサブプログラ
ムでは意識しない(従って定義しない)でよいようにし
たい。
【0014】或いは、サブプログラムでは、サブプログ
ラム単位で目的プログラム生成処理を可能にするために
必要な基本的なデータ属性のみを定義し、メインプログ
ラムで、より詳細な属性を定義することができれば、1
個のサブプログラムを種々の異なるデータ属性の詳細定
義をするプログラムに共通に使用できるので、サブプロ
グラムを汎用的な部品として作成できるようになる。
ラム単位で目的プログラム生成処理を可能にするために
必要な基本的なデータ属性のみを定義し、メインプログ
ラムで、より詳細な属性を定義することができれば、1
個のサブプログラムを種々の異なるデータ属性の詳細定
義をするプログラムに共通に使用できるので、サブプロ
グラムを汎用的な部品として作成できるようになる。
【0015】従って、結合編集処理に際し共通シンボル
を介してデータを同一化する場合に、関連するプログラ
ムのデータ属性定義間について矛盾の無いことをチェッ
クすると共に、各プログラムでデータ属性定義の省略が
できることが望まれる。
を介してデータを同一化する場合に、関連するプログラ
ムのデータ属性定義間について矛盾の無いことをチェッ
クすると共に、各プログラムでデータ属性定義の省略が
できることが望まれる。
【0016】本発明は、共通シンボルについて属性定義
の省略を可能にしたコンパイラ装置を目的とする。
の省略を可能にしたコンパイラ装置を目的とする。
【0017】
【課題を解決するための手段】図1は、本発明の構成を
示すブロック図である。図はコンパイラ装置の構成であ
って、オブジェクト生成部1が所定のプログラミング言
語で記述された原始プログラム2を解析して目的プログ
ラム3を生成し、実行形式プログラム生成部4が複数の
目的プログラム3を結合編集して実行形式プログラム5
を生成する装置であって、共通シンボル管理部6を有す
る。
示すブロック図である。図はコンパイラ装置の構成であ
って、オブジェクト生成部1が所定のプログラミング言
語で記述された原始プログラム2を解析して目的プログ
ラム3を生成し、実行形式プログラム生成部4が複数の
目的プログラム3を結合編集して実行形式プログラム5
を生成する装置であって、共通シンボル管理部6を有す
る。
【0018】オブジェクト生成部1は、原始プログラム
2中の共通シンボルに関する所定の宣言について、目的
プログラム3内に共通シンボルセクション7を生成し、
共通シンボルセクション7に、各該共通シンボルに関す
るデータ領域と属性定義情報とを設定する。
2中の共通シンボルに関する所定の宣言について、目的
プログラム3内に共通シンボルセクション7を生成し、
共通シンボルセクション7に、各該共通シンボルに関す
るデータ領域と属性定義情報とを設定する。
【0019】実行形式プログラム生成部4は、該結合編
集の対象の目的プログラム3に共通シンボルセクション
7がある場合に、共通シンボル管理部6が選択する共通
シンボルセクション7を使用して、当該共通シンボルに
関わる該実行形式プログラムの生成を処理する。
集の対象の目的プログラム3に共通シンボルセクション
7がある場合に、共通シンボル管理部6が選択する共通
シンボルセクション7を使用して、当該共通シンボルに
関わる該実行形式プログラムの生成を処理する。
【0020】共通シンボル管理部6は、各該共通シンボ
ルごとに、当該共通シンボルを有する複数の目的プログ
ラム3の共通シンボルセクション7について、すべての
該共通シンボルセクション7の当該共通シンボルに関す
る該属性定義情報を各項目ごとに比較し、すべての該項
目間に互いに矛盾がない場合に、すべての該属性定義情
報をマージした結果を属性定義情報に持つ該共通シンボ
ルセクション7を選択して、実行形式プログラム生成部
4に通知する。
ルごとに、当該共通シンボルを有する複数の目的プログ
ラム3の共通シンボルセクション7について、すべての
該共通シンボルセクション7の当該共通シンボルに関す
る該属性定義情報を各項目ごとに比較し、すべての該項
目間に互いに矛盾がない場合に、すべての該属性定義情
報をマージした結果を属性定義情報に持つ該共通シンボ
ルセクション7を選択して、実行形式プログラム生成部
4に通知する。
【0021】
【作用】本発明のコンパイラ装置により、共通シンボル
を定義したプログラムを実行形式プログラムにするよう
に結合編集する際に、プログラム間の属性定義の矛盾が
チェックされ、矛盾が無い限り、複数の属性定義をマー
ジした結果の、最も定義項目の多い属性定義をしたプロ
グラムのデータが、当該共通シンボルに対応するデータ
として選択される。
を定義したプログラムを実行形式プログラムにするよう
に結合編集する際に、プログラム間の属性定義の矛盾が
チェックされ、矛盾が無い限り、複数の属性定義をマー
ジした結果の、最も定義項目の多い属性定義をしたプロ
グラムのデータが、当該共通シンボルに対応するデータ
として選択される。
【0022】従って、共通シンボルに関して、プログラ
ム間の属性定義の矛盾が検出されて適当な処置が可能に
なると共に、結合編集するプログラムのうちの少なくと
も1個のプログラムに完全な属性定義があれば、その属
性定義に矛盾した定義にならない範囲で、他のプログラ
ムでは属性定義を省略したり、複数の異なる属性定義と
のマージが可能なように定義をすることができるように
なる。
ム間の属性定義の矛盾が検出されて適当な処置が可能に
なると共に、結合編集するプログラムのうちの少なくと
も1個のプログラムに完全な属性定義があれば、その属
性定義に矛盾した定義にならない範囲で、他のプログラ
ムでは属性定義を省略したり、複数の異なる属性定義と
のマージが可能なように定義をすることができるように
なる。
【0023】
【実施例】図2(a) は、本発明の共通シンボルセクショ
ンを持つ目的プログラムの概念的な構成を示し、目的プ
ログラムの従来からの構成のデータセクションと実行部
セクションとの間に、データセクションに続けて共通シ
ンボルセクションが追加される。
ンを持つ目的プログラムの概念的な構成を示し、目的プ
ログラムの従来からの構成のデータセクションと実行部
セクションとの間に、データセクションに続けて共通シ
ンボルセクションが追加される。
【0024】公知のように、データセクションはデータ
に関する属性とデータ本体の情報を設定する部分であ
り、実行部セクションは処理手順の情報を設定する部分
であるが、本発明によりCOMMON文に係るデータに関する
情報は、データセクションと区別して共通シンボルセク
ションに置かれるようになる。
に関する属性とデータ本体の情報を設定する部分であ
り、実行部セクションは処理手順の情報を設定する部分
であるが、本発明によりCOMMON文に係るデータに関する
情報は、データセクションと区別して共通シンボルセク
ションに置かれるようになる。
【0025】共通シンボルセクションには、通常のデー
タの場合に各データ名についてデータセクションに設定
される内容とほぼ同様に、各共通シンボルについて、デ
ータの属性定義情報とデータ本体 (必要な初期値を持
つ) が設定される。
タの場合に各データ名についてデータセクションに設定
される内容とほぼ同様に、各共通シンボルについて、デ
ータの属性定義情報とデータ本体 (必要な初期値を持
つ) が設定される。
【0026】共通シンボルセクションに設定される各属
性定義情報は、例えば図2(b) のように属性情報の長さ
等の制御情報と、共通シンボル名等の共通シンボル情報
とに続いて属性定義情報が設定されるようにする。
性定義情報は、例えば図2(b) のように属性情報の長さ
等の制御情報と、共通シンボル名等の共通シンボル情報
とに続いて属性定義情報が設定されるようにする。
【0027】属性定義情報は複数の項目からなり、例え
ば先頭から順に基本属性1、基本属性2、....基本属性
m、付加属性1、付加属性2、....付加属性nのよう
に、各項目位置を各特定の種類の属性定義に対応させ
る。
ば先頭から順に基本属性1、基本属性2、....基本属性
m、付加属性1、付加属性2、....付加属性nのよう
に、各項目位置を各特定の種類の属性定義に対応させ
る。
【0028】ここで各基本属性は、定義が必須である
(省略値として定まる場合を含む) 属性であって、実
数、整数等のデータ型、配列か単純変数か、配列の構成
と大きさ、その他である。又、付加属性は、任意に定義
する属性であって、例えば前記図4(a)のプログラムの
「PARTITION」は、その一例である。
(省略値として定まる場合を含む) 属性であって、実
数、整数等のデータ型、配列か単純変数か、配列の構成
と大きさ、その他である。又、付加属性は、任意に定義
する属性であって、例えば前記図4(a)のプログラムの
「PARTITION」は、その一例である。
【0029】オブジェクト生成部1は、原始プログラム
2を解析して目的プログラム3を生成する場合に、原始
プログラム2に共通シンボルを宣言するCOMMON文を識別
すると、目的プログラム3に共通シンボルセクション7
を設ける。
2を解析して目的プログラム3を生成する場合に、原始
プログラム2に共通シンボルを宣言するCOMMON文を識別
すると、目的プログラム3に共通シンボルセクション7
を設ける。
【0030】オフジェクト生成部1は共通シンボルセク
ション7に、COMMON文で指定された共通シンボルとロー
カルなデータ名との対応(図4(a)の例のBLKとA) に従っ
て、ローカルデータ名のデータについて定義されている
属性に従うデータの情報を共通シンボルセクションに生
成すると共に、前記図2の形式で属性定義情報を設定す
る。
ション7に、COMMON文で指定された共通シンボルとロー
カルなデータ名との対応(図4(a)の例のBLKとA) に従っ
て、ローカルデータ名のデータについて定義されている
属性に従うデータの情報を共通シンボルセクションに生
成すると共に、前記図2の形式で属性定義情報を設定す
る。
【0031】オフジェクト生成部1は属性定義情報を、
図2(b)の各項目に、各項目位置によって定まる内容を
順次設定していって、有効情報を設定した最後の項目ま
での長さの情報として生成し、途中に該当する定義の無
い項目があれば、それらの項目には例えば所定のnull記
号を設定しておく。
図2(b)の各項目に、各項目位置によって定まる内容を
順次設定していって、有効情報を設定した最後の項目ま
での長さの情報として生成し、途中に該当する定義の無
い項目があれば、それらの項目には例えば所定のnull記
号を設定しておく。
【0032】実行形式プログラム生成部4は、複数の目
的プログラムを指定されて、それらの結合編集を行って
実行形式プログラムを生成する場合に、目的プログラム
に共通シンボルセクションがあれば、それらの共通シン
ボルをしらべて、複数の異なる目的プログラムの共通シ
ンボルセクションに同一の共通シンボルがある場合に
は、その処理を共通シンボル管理部6に依頼する。
的プログラムを指定されて、それらの結合編集を行って
実行形式プログラムを生成する場合に、目的プログラム
に共通シンボルセクションがあれば、それらの共通シン
ボルをしらべて、複数の異なる目的プログラムの共通シ
ンボルセクションに同一の共通シンボルがある場合に
は、その処理を共通シンボル管理部6に依頼する。
【0033】その場合に共通シンボル管理部6は後述の
ようにして、同一の共通シンボルを持つ複数の共通シン
ボルセクションから、1つの共通シンボルセクションを
選択して、実行形式プログラム生成部4に選択結果を通
知するか、又は複数の共通シンボルセクション間で属性
定義に矛盾があることを検出し、その結果選択不成功と
して実行形式プログラム生成部4に通知する。
ようにして、同一の共通シンボルを持つ複数の共通シン
ボルセクションから、1つの共通シンボルセクションを
選択して、実行形式プログラム生成部4に選択結果を通
知するか、又は複数の共通シンボルセクション間で属性
定義に矛盾があることを検出し、その結果選択不成功と
して実行形式プログラム生成部4に通知する。
【0034】この通知を受けて、実行形式プログラム生
成部4は選択された共通シンボルセクションの当該共通
シンボルに対応するデータ情報を、その共通シンボルで
関係付けられるすべてのデータ名によってアクセスされ
るべきデータとして、結合編集を進める。
成部4は選択された共通シンボルセクションの当該共通
シンボルに対応するデータ情報を、その共通シンボルで
関係付けられるすべてのデータ名によってアクセスされ
るべきデータとして、結合編集を進める。
【0035】図3は、本発明の共通シンボル管理部の処
理の流れの一例を示す図であり、この場合の処理対象の
共通シンボルセクションは前記例のような構成に設定さ
れ、図2(b)に例示したような構成の属性定義情報を持
っているものとする。
理の流れの一例を示す図であり、この場合の処理対象の
共通シンボルセクションは前記例のような構成に設定さ
れ、図2(b)に例示したような構成の属性定義情報を持
っているものとする。
【0036】図3において、共通シンボル管理部6は実
行形式プログラム生成部4から共通シンボルセクション
と共通シンボルを指定して処理要求を受けて起動し、処
理ステップ10で処理対象の共通シンボルセクションから
それぞれ指定の共通シンボルに関する属性定義情報を取
り出す。
行形式プログラム生成部4から共通シンボルセクション
と共通シンボルを指定して処理要求を受けて起動し、処
理ステップ10で処理対象の共通シンボルセクションから
それぞれ指定の共通シンボルに関する属性定義情報を取
り出す。
【0037】それらの取り出した属性定義情報の先頭の
項目(前記図2(b)の「基本属性1」の項目)から順次
処理するものとし、処理ステップ11でそれらすべての属
性定義情報について同じ項目があればその内容が同一か
比較する。
項目(前記図2(b)の「基本属性1」の項目)から順次
処理するものとし、処理ステップ11でそれらすべての属
性定義情報について同じ項目があればその内容が同一か
比較する。
【0038】処理ステップ12で、前記比較処理で同じ項
目のある属性定義情報が複数個あったか識別し、複数個
あった場合は処理ステップ13でそれらの内容がすべて一
致したか識別し、一致した場合には処理ステップ14で次
の項目があるか識別し、次の項目があれば処理ステップ
11に戻る。
目のある属性定義情報が複数個あったか識別し、複数個
あった場合は処理ステップ13でそれらの内容がすべて一
致したか識別し、一致した場合には処理ステップ14で次
の項目があるか識別し、次の項目があれば処理ステップ
11に戻る。
【0039】従って、複数の属性定義情報に同じ項目が
あり、それらの内容が一致する限り、処理ステップ11か
ら処理ステップ14までの以上の処理を繰り返して、順次
各項目を調べる。
あり、それらの内容が一致する限り、処理ステップ11か
ら処理ステップ14までの以上の処理を繰り返して、順次
各項目を調べる。
【0040】このようにして処理を進め、処理ステップ
12で何れか1個の属性定義情報にしか現処理対象の項目
が無いことが検出されるか、又は処理ステップ14で何れ
の属性定義情報の項目も終わったことが検出されること
により、比較のための繰り返し処理を成功裏に終わる。
12で何れか1個の属性定義情報にしか現処理対象の項目
が無いことが検出されるか、又は処理ステップ14で何れ
の属性定義情報の項目も終わったことが検出されること
により、比較のための繰り返し処理を成功裏に終わる。
【0041】即ち、上記の何れかであるということは、
すべての項目について全属性定義情報間で定義内容の一
致が有る場合か、又は属性定義情報間で項目数が異なる
場合には、項目数の多い属性定義情報間で定義が一致
し、項目数の少ない属性定義情報ではその項目について
定義をしていない場合である。
すべての項目について全属性定義情報間で定義内容の一
致が有る場合か、又は属性定義情報間で項目数が異なる
場合には、項目数の多い属性定義情報間で定義が一致
し、項目数の少ない属性定義情報ではその項目について
定義をしていない場合である。
【0042】なお、各プログラムごとのデータ属性定義
については、オブジェクト生成部1が目的プログラム生
成処理中でチェックしているので、基本属性について各
個のプログラムでは正しい定義がされている筈であるの
で、上記処理で成功するということは、基本属性の全項
目は全属性定義情報間で一致したことになる。
については、オブジェクト生成部1が目的プログラム生
成処理中でチェックしているので、基本属性について各
個のプログラムでは正しい定義がされている筈であるの
で、上記処理で成功するということは、基本属性の全項
目は全属性定義情報間で一致したことになる。
【0043】以上のように成功した場合には、処理ステ
ップ15で、繰り返し比較処理の最後回まで項目が終わら
なかった属性定義情報の一つを選択する。即ち最も長い
項目数の属性定義情報が選ばれ、その属性定義情報の各
項目に対応する項目を持つ他の属性定義情報について
は、すべて対応する項目の定義内容は一致しているの
で、選択された属性定義情報は、結局全属性定義情報を
マージした結果に等しい。
ップ15で、繰り返し比較処理の最後回まで項目が終わら
なかった属性定義情報の一つを選択する。即ち最も長い
項目数の属性定義情報が選ばれ、その属性定義情報の各
項目に対応する項目を持つ他の属性定義情報について
は、すべて対応する項目の定義内容は一致しているの
で、選択された属性定義情報は、結局全属性定義情報を
マージした結果に等しい。
【0044】以上の後、共通シンボル管理部6は処理ス
テップ16で、選択した属性定義情報を持つ共通シンボル
セクションを選択結果として実行形式プログラム生成部
4に通知して処理を終わる。
テップ16で、選択した属性定義情報を持つ共通シンボル
セクションを選択結果として実行形式プログラム生成部
4に通知して処理を終わる。
【0045】又、前記比較処理の繰り返し中に処理ステ
ップ13で、或る項目の定義内容で不一致があることを検
出した場合には、共通シンボルセクションの選択不成功
として、処理ステップ17に進み、実行形式プログラム生
成部4に対し定義エラーのあることを通知して処理を終
わる。
ップ13で、或る項目の定義内容で不一致があることを検
出した場合には、共通シンボルセクションの選択不成功
として、処理ステップ17に進み、実行形式プログラム生
成部4に対し定義エラーのあることを通知して処理を終
わる。
【0046】以上の処理により、図4(a)と(b)とに例示
したようなプログラムの目的プログラムを結合編集する
場合に、(b)にも(a)と同様のPARTITON文及びLOCATE文が
記述されている場合と同様に正常に結合処理が行われ
る。
したようなプログラムの目的プログラムを結合編集する
場合に、(b)にも(a)と同様のPARTITON文及びLOCATE文が
記述されている場合と同様に正常に結合処理が行われ
る。
【0047】又、図4(b)のプログラムは、言うまでも
無く、(a)のプログラムがPARTITON文及びLOCATE文が無
いような単純なデータ属性定義になっている場合は、勿
論図に示す同じ記述内容のままで対応でき、別の付加属
性が定義された場合にも、同様に対応できる可能性があ
る。
無く、(a)のプログラムがPARTITON文及びLOCATE文が無
いような単純なデータ属性定義になっている場合は、勿
論図に示す同じ記述内容のままで対応でき、別の付加属
性が定義された場合にも、同様に対応できる可能性があ
る。
【0048】
【発明の効果】以上の説明から明らかなように本発明に
よれば、共通シンボルを定義したプログラムを実行形式
プログラムにするように結合編集する際において、プロ
グラム間の属性定義の矛盾がチェックされ、矛盾が無い
限り、複数の属性定義をマージした結果の、最も定義項
目の多い属性定義をしたプログラムのデータが、当該共
通シンボルに対応するデータとして選択されるので、共
通シンボルに関して、プログラム間の属性定義の矛盾が
検出されて適当な処置が可能になると共に、結合編集す
るプログラムのうちの少なくとも1個のプログラムに完
全な属性定義があれば、その属性定義に矛盾した定義に
ならない範囲で、他のプログラムでは属性定義を省略し
たり、複数の異なる属性定義とのマージが可能なように
定義をすることができるという著しい工業的効果があ
る。
よれば、共通シンボルを定義したプログラムを実行形式
プログラムにするように結合編集する際において、プロ
グラム間の属性定義の矛盾がチェックされ、矛盾が無い
限り、複数の属性定義をマージした結果の、最も定義項
目の多い属性定義をしたプログラムのデータが、当該共
通シンボルに対応するデータとして選択されるので、共
通シンボルに関して、プログラム間の属性定義の矛盾が
検出されて適当な処置が可能になると共に、結合編集す
るプログラムのうちの少なくとも1個のプログラムに完
全な属性定義があれば、その属性定義に矛盾した定義に
ならない範囲で、他のプログラムでは属性定義を省略し
たり、複数の異なる属性定義とのマージが可能なように
定義をすることができるという著しい工業的効果があ
る。
【図1】 本発明の構成を示すブロック図
【図2】 共通シンボルセクションを説明する図
【図3】 本発明の処理の流れ図
【図4】 プログラム例を示す図
1 オブジェクト生成部 2 原始プログラム 3 目的プログラム 4 実行形式プログラム生成部 5 実行形式プログラム 6 共通シンボル管理部 7 共通シンボルセクション 10〜17 処理ステップ
Claims (1)
- 【請求項1】 オブジェクト生成部(1) が所定のプログ
ラミング言語で記述された原始プログラム(2)を解析し
て目的プログラム(3)を生成し、実行形式プログラム生
成部(4) が複数の該目的プログラムを結合編集して実行
形式プログラムを生成する装置であって、 共通シンボル管理部(6)を有し、 該オブジェクト生成部(1)は、該原始プログラム(2)中の
共通シンボルに関する所定の宣言について、該目的プロ
グラム(3)内に共通シンボルセクション(7)を生成し、該
共通シンボルセクションに、各該共通シンボルに関する
データ領域と属性定義情報とを設定し、 該実行形式プログラム生成部(4)は、該結合編集の対象
の目的プログラム(3)に該共通シンボルセクション(7)が
ある場合に、該共通シンボル管理部(6)が選択する該共
通シンボルセクションを使用して、当該共通シンボルに
関わる該実行形式プログラムの生成を処理し、 該共通シンボル管理部(6) は、各該共通シンボルごと
に、当該共通シンボルを有する複数の該目的プログラム
(3)の該共通シンボルセクション(7)について、すべての
該共通シンボルセクションの当該共通シンボルに関する
該属性定義情報を各項目ごとに比較し、すべての該項目
間に互いに矛盾がない場合に、すべての該属性定義情報
をマージした結果を属性定義情報に持つ該共通シンボル
セクションを選択して、該実行形式プログラム生成部
(4) に通知するように構成されていることを特徴とする
コンパイラ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22272593A JPH0778087A (ja) | 1993-09-08 | 1993-09-08 | コンパイラ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22272593A JPH0778087A (ja) | 1993-09-08 | 1993-09-08 | コンパイラ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0778087A true JPH0778087A (ja) | 1995-03-20 |
Family
ID=16786929
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22272593A Pending JPH0778087A (ja) | 1993-09-08 | 1993-09-08 | コンパイラ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0778087A (ja) |
-
1993
- 1993-09-08 JP JP22272593A patent/JPH0778087A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100426239C (zh) | 依赖关系图参数范围的划分 | |
| US5146594A (en) | Method of producing object program based on interprocedural dataflow analysis of a source program | |
| US20030093420A1 (en) | Method and system for retrieving sharable information using a hierarchically dependent directory structure | |
| JPH05197697A (ja) | ソフトウエア・システム構築装置及び方法 | |
| JP2000242501A (ja) | 情報処理装置、情報処理方法及びプログラム書込み装置 | |
| JPH0432416B2 (ja) | ||
| US4979109A (en) | Method of controlling a data dictionary directory system in a data base system | |
| JP2000347872A (ja) | 例外を正規制御フローとして処理する方法及び装置 | |
| JP2005332387A (ja) | メモリ命令をグループ化及び管理する方法及びシステム | |
| CN110489401A (zh) | 一种数据库对象的部署方法及装置 | |
| JPH086812A (ja) | 情報処理プログラムのデバッグ方法およびそのためのデバッガ | |
| US5062039A (en) | Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces | |
| JP2574985B2 (ja) | ディジタルデータ処理システムとエラー処理方法 | |
| CN110162299A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
| JP3489216B2 (ja) | ファイルシステム | |
| JPH0778087A (ja) | コンパイラ装置 | |
| US8069193B2 (en) | Method and system for utilizing a generic scalar function to allow a column function to operate on row data | |
| JP2841363B2 (ja) | 外部モジュール獲得方式 | |
| JPH0784797A (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
| JPH08212081A (ja) | メモリ割り付け方法、並びにコンパイル方法およびコンパイラ | |
| JPH04287121A (ja) | タプルスペース方式 | |
| JP3120434B2 (ja) | プログラム動作解析方法 | |
| JP2809073B2 (ja) | 配列のメモリ割り付け方式 | |
| JPH0644129A (ja) | 情報処理装置 | |
| JP2003085013A (ja) | Pdmシステム、システム接続用プログラム作成方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020402 |