JPH10207738A - 言語処理システム - Google Patents

言語処理システム

Info

Publication number
JPH10207738A
JPH10207738A JP9027235A JP2723597A JPH10207738A JP H10207738 A JPH10207738 A JP H10207738A JP 9027235 A JP9027235 A JP 9027235A JP 2723597 A JP2723597 A JP 2723597A JP H10207738 A JPH10207738 A JP H10207738A
Authority
JP
Japan
Prior art keywords
program
level language
line number
data name
input
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
JP9027235A
Other languages
English (en)
Inventor
Akiyoshi Endo
明芳 遠藤
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
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP9027235A priority Critical patent/JPH10207738A/ja
Publication of JPH10207738A publication Critical patent/JPH10207738A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 トランスレータを備えた言語処理システムに
於いて、デバッグ対象とする実行可能プログラムに対す
るデータ名・行番号対応表の所在が不明になることを防
止するために、トランスレータが、自身が出力する出力
高級言語プログラムにデータ名・行番号対応表を組み込
むようにしても、言語処理システムが現在備えているコ
ンパイラ,リンカをそのまま使用して入力高級言語プロ
グラムのデータ名,行番号を用いたシンボリックなデバ
ッグを行う。 【解決手段】 トランスレータ10内の高級言語データ
化シンボル情報生成部15が、出力高級言語プログラム
70を記述する高級言語の仕様に従った形式のデータ名
・行番号対応表70aを、プログラムの実行に影響を与
えない形で出力高級言語プログラム70に組み込む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、入力高級言語プロ
グラムに対して一定の変換を施した出力高級言語プログ
ラムを出力するトランスレータを備えた言語処理システ
ムに関し、特に、トランスレータから出力された出力高
級言語プログラムを翻訳,結合することにより生成した
実行可能プログラムを、入力高級言語プログラムのデー
タ名,行番号を用いてデバッグする言語処理システムに
関する。
【0002】
【従来の技術】原始プログラムの開発,改造時、その原
始プログラムが所望の機能を果たすか否かを調べ、必要
なら修正を加えるためにデバッグが行われる。この時、
原始プログラムのデータ名,行番号を用いてデバッグを
行えるようにするため、コンパイラによる翻訳時に、原
始プログラムのデータ名,行番号と目的プログラムのア
ドレスとの対応関係を示す対応表を作成し、原始プログ
ラムのデータ名,行番号を用いて記述されたデバッグ指
示が与えられた場合、上記対応表を用いてデバッグを行
うということが従来から提案されている。この技術によ
れば、原始プログラムのデータ名,行番号を使用した、
いわゆるシンボリックなデバッグが可能になる。
【0003】しかし、上述した従来の技術では、プログ
ラムの記述性向上のため等に一部が拡張された高級言語
を用いて作成したプログラムから実行可能プログラムを
生成する場合や、原始プログラムレベルで最適化を行っ
た後に実行可能プログラムを生成する場合等のように、
コンパイラ,リンカによる翻訳,結合処理に先立ってト
ランスレータによる変換処理を行うことが必要になる場
合に、次のような問題が生じる。
【0004】トランスレータを用いてユーザが入力した
原始プログラム(入力高級言語プログラム)に対して一
定の変換を施した後、トランスレータから出力される原
始プログラム(出力高級言語プログラム)をコンパイラ
を用いて翻訳した場合、コンパイラによって生成される
上記した対応表は、出力高級言語プログラムのデータ
名,行番号と目的プログラムのアドレスとの対応関係を
示すものとなる。このため、上述した従来の技術では、
ユーザが作成した入力高級言語プログラムのデータ名,
行番号を用いたシンボリックなデバッグを行うことがで
きない。
【0005】このような問題を解決するため、例えば、
特開平3−144832号公報や特開平3−24083
7号公報に記載されている技術が従来から提案されてい
る。特開平−144832号公報に記載されている技術
は、プリコンパイラ(トランスレータ)が、入力された
原始プログラムと生成した生成ソースプログラムとの行
番号,名標の対応関係を示す対応表を生成し、リンカ
が、この対応表とオブジェクトプログラムとプログラム
スキーマとデバッガとを結合して実行形式プログラムを
生成し、デバッガが、原始プログラムの行番号,名標を
用いて記述されたデバッグ指示が入力された場合、上記
対応表,プログラムスキーマを利用してプログラムのデ
バッグ処理を行うものである。
【0006】また、特開平3−240837号公報に記
載されている技術は、言語プロセッサ(トランスレー
タ)が、第1の言語で記述されたソースプログラムを第
2の言語で記述されたソースプログラムに変換する際、
第1の言語で記述されたプログラムと第2の言語で記述
されたプログラムとの行番号,ラベル名の対応関係を示
す第1の対応表を作成し、コンパイラが、コンパイル時
に上記第1の対応表に基づいて、第1の言語で記述され
たソースプログラムの行番号,ラベル名とオブジェクト
プログラムのアドレスとの対応関係を示す第2の対応表
を作成し、デバッグ時には、第1の言語で記述されたソ
ースプログラムの行番号,ラベル名を用いたシンボリッ
クなデバッグを第2の対応表を利用して行う。
【0007】また、この他にも、C言語のプリプロセッ
サCPPが出力する#line指示行のような、拡張さ
れた言語仕様を用いる方法がある。#line指示行
は、トランスレータが出力する出力高級言語プログラム
中に生成され、出力高級言語プログラム中の各行に対応
する入力高級言語プログラムのファイル名と行番号とを
示す。#line指示行を解釈することができるコンパ
イラは、出力高級言語プログラム中に生成された#li
neを使用して入力高級言語プログラムと出力高級言語
プログラムとの行番号の対応関係を示すシンボル情報を
生成することができるので、このシンボル情報を利用し
て入力高級言語プログラムの行番号を用いたシンボリッ
クなデバッグを行うことができる。
【0008】
【発明が解決しようとする課題】上述した従来の技術の
内、特開平3−144832号公報,特開平3−240
837号公報に記載されている技術は、トランスレータ
に入力する入力高級言語プログラムとトランスレータか
ら出力される出力高級言語プログラムとの行番号,名標
との対応関係を示す対応表を出力高級言語プログラムと
は別の場所に生成しているため、例えば、別のファイル
に生成するようにした場合は、ファイルをどこに置くに
しても、そのファイルの所在が分からなくなる可能性が
ある。
【0009】トランスレータを用いる場合、実行可能プ
ログラムの作成は、トランスレータによる変換、コンパ
イラによる翻訳、そしてリンカによる結合という段階を
踏んで行われる。ここで、ユーザが、トランスレータに
よる変換やコンパイラによる翻訳の直後に、トランスレ
ータから出力される出力高級言語プログラムやコンパイ
ラから出力される目的プログラムを別の場所の移動した
り、リンカによる結合後に実行可能プログラムを別の場
所に移動することは、複雑な構成を持つプログラムでは
しばしば行われることである。このような状況下では、
実行可能プログラムと対応表との対応が失われる可能性
が高く、ユーザは、個々の実行可能プログラムに対する
対応表の所在が不明にならないように、多大な注意を払
わなければならない。
【0010】このような問題点は、#line指示行の
ような出力高級言語プログラム中に生成される、拡張さ
れた言語仕様を利用することにより解決できる。しか
し、拡張された言語仕様を利用する場合には、コンパイ
ラ,リンカが拡張された言語仕様を受け付けて処理でき
なければならないという問題がある。
【0011】そこで、本発明の目的は、デバッグ対象と
する実行可能プログラムに対するデータ名・行番号対応
表の所在が不明になることを防止するために、トランス
レータが、自身が出力する出力高級言語プログラムにデ
ータ名・行番号対応表を組み込むようにしても、言語処
理システムが現在備えているコンパイラ,リンカをその
まま使用して入力高級言語プログラムのデータ名,行番
号を用いたシンボリックなデバッグを行うことができる
言語処理システムを提供することにある。
【0012】
【課題を解決するための手段】本発明は上記目的を達成
するため、入力高級言語プログラムに対して一定の変換
を施した出力高級言語プログラムを出力するトランスレ
ータと、該トランスレータから出力された出力高級言語
プログラムを翻訳して目的プログラムを生成するコンパ
イラと、該コンパイラで生成された目的プログラムを結
合して実行可能プログラムを生成するリンカと、該リン
カで生成された実行可能プログラムを実行する計算機
と、前記入力高級言語プログラムのデータ名,行番号を
用いて記述されているデバッグ指示が入力された時、該
デバッグ指示と、前記入力高級言語プログラムのデータ
名,行番号と前記出力高級言語プログラムのデータ名,
行番号との対応関係を表すデータ名・行番号対応表と、
前記出力高級言語プログラムのデータ名,行番号と前記
実行可能プログラムのアドレスとの対応関係を示す出力
高級言語・実行可能プログラム対応表とに基づいて前記
実行可能プログラムのデバッグを行うデバッグ処理装置
とを含む言語処理システムに於いて、前記トランスレー
タは、前記出力高級言語プログラムを記述する高級言語
の仕様に従った形式の、前記入力高級言語プログラムの
データ名,行番号と前記出力高級言語プログラムのデー
タ名,行番号との対応関係を示すデータ名・行番号対応
表を、プログラムの実行に影響を与えない形式で前記出
力高級言語プログラムに組み込む高級言語データ化シン
ボル情報生成部を備えている。
【0013】上記した構成に於いては、トランスレータ
内の高級言語データ化シンボル情報生成部が、出力高級
言語プログラムを記述する高級言語の仕様に従った形式
のデータ名・行番号対応表を、出力高級言語プログラム
に対応する実行可能プログラムの実行に影響を与えない
形式で出力高級言語プログラム中に組み込む。
【0014】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0015】図1は本発明の実施例のブロック図であ
り、トランスレータ10と、コンパイラ20と、リンカ
30と、計算機40と、デバッグ処理装置50とから構
成される。
【0016】トランスレータ10は、制御部11と、入
力高級言語プログラム解析部12と、プログラム変換部
13と、出力高級言語プログラム生成部14と、高級言
語データ化シンボル情報生成部15と、データ情報格納
部16と、内部コード格納部17とから構成されてい
る。データ情報格納部16は、その内部にデータ名変更
情報記憶部16aを備え、内部コード格納部17は、そ
の内部に入力行番号記憶部17a,出力行番号記憶部1
7bを備えている。
【0017】制御部11は、トランスレータ10内の各
部12〜15を制御する機能を有する。
【0018】入力高級言語プログラム解析部12は、高
級言語で記述された入力高級言語プログラム60を解析
して下記(a)〜(c)の処理を行う機能を有する。
【0019】(a)入力高級言語プログラム60に対応
する内部コード(トランスレータ10に於ける内部的表
現)を内部コード格納部17に格納する。 (b)入力高級言語プログラム60中に存在するデータ
のデータ名等の、入力高級言語プログラム60中のデー
タに関する情報をデータ情報格納部16に格納する。 (c)内部コードの各位置に対応する入力高級言語プロ
グラム60の行番号を入力行番号記憶部17aに格納す
る。
【0020】プログラム変換部13は、内部コード格納
部17に格納されている内部コードに対して一定の変換
を施す機能,変換後の内部コードの各位置に対応する入
力高級言語プログラム60の行番号を入力行番号記憶部
17aに格納する機能,内部コードの変換処理により既
存のデータ名が他のデータ名に変更された場合に変更前
のデータ名と変更後のデータ名とを対にしてデータ名変
更情報記憶部16aに格納すると共にそのような変更が
内部コードのどの範囲で行われたかを示す情報をデータ
名変更情報記憶部16aに格納する機能を有する。尚、
以下の説明に於いては、変更前,後のデータ名とそのよ
うな変更が内部コードのどの範囲で行われたかを示す情
報の組をデータ名変更情報と呼ぶものとする。
【0021】出力高級言語プログラム生成部14は、内
部コード格納部17に格納されている最終的な内部コー
ドに基づいて出力高級言語プログラム70を生成する機
能,内部コード格納部17に格納されている内部コード
の各位置に対応する出力高級言語プログラム70の行番
号を出力行番号記憶部17bに格納する機能を有する。
【0022】高級言語データ化シンボル情報生成部15
は、データ名変更情報記憶部16a,入力行番号記憶部
17a及び出力行番号記憶部17bの内容に基づいて入
力高級言語プログラム60のデータ名,行番号と出力高
級言語プログラム70のデータ名,行番号との対応関係
を示すデータ名・行番号対応表70aを生成し、それを
出力高級言語プログラム70に組み込む機能を有する。
【0023】コンパイラ20は、出力高級言語プログラ
ム70を翻訳して目的プログラム80を生成する機能,
出力高級言語プログラム70のデータ名,行番号と目的
プログラム80のアドレスとの対応関係を示す出力高級
言語・目的プログラム対応表80bを生成して目的プロ
グラム80に組み込む機能を有する。尚、目的プログラ
ム80中のデータ名・行番号対応表80aは、出力高級
言語プログラム70中のデータ名・行番号対応表70a
と対応するものである。
【0024】リンカ30は、コンパイラ20から出力さ
れた目的プログラム80を結合して実行可能プログラム
90を生成する機能,出力高級言語プログラム70のデ
ータ名,行番号と実行可能プログラム90のアドレスと
の対応関係を示す出力高級言語・実行可能プログラム対
応表90bを生成して実行可能プログラム90に組み込
む機能を有する。尚、実行可能プログラム90中のデー
タ名・行番号対応表90aは、目的プログラム80中の
データ名・行番号対応表80aと対応するものである。
【0025】計算機40は、リンカ30が生成した実行
可能プログラム90を実行する機能を有する。尚、リン
カ30が生成した実行可能プログラム90は、計算機4
0内のメモリ(図示せず)にロードされ、実行されるも
のであり、以下の説明に於いては、メモリ上にロードさ
れた実行可能プログラムを符号90’を用いて表し、そ
れに組み込まれているデータ名・行番号対応表,出力高
級言語・実行可能プログラム対応表をそれぞれ符号90
a’,90b’を用いて表すものとする。
【0026】デバッグ処理装置50は、デバッガラッパ
51と、デバッガ52とを備えている。デバッガラッパ
51は、デバッグ指示事前解析部53と、デバッグ指示
変換部54とから構成されている。
【0027】デバッガラッパ51内のデバッグ指示事前
解析部53は、ユーザからのデバッグ指示が出力高級言
語プログラム70のデータ名,行番号を用いて記述され
ている場合にはそのデバッグ指示をそのままデバッガ5
2に渡し、入力高級言語プログラム60のデータ名,行
番号を用いて記述されている場合にはデバッグ指示変換
部54を用いてデバッグ指示の記述を出力高級言語プロ
グラム70のデータ名,行番号を用いたものに変換した
後、デバッガ52に渡す機能を有する。
【0028】デバッグ指示変換部54は、入力高級言語
プログラム60のデータ名,行番号を用いて記述されて
いるデバッグ指示を、出力高級言語プログラム70のデ
ータ名,行番号を用いたものに変換する機能を有する。
【0029】デバッガ52は、デバッグ指示事前解析部
53から渡されたデバッグ指示と実行可能プログラム9
0’に組み込まれている出力高級言語・実行可能プログ
ラム対応表90b’とに基づいて実行可能プログラム9
0’をデバッグする機能を有する。
【0030】次に本実施例の動作について説明する。
【0031】トランスレータ10に入力高級言語プログ
ラム60が入力されると、制御部11は、入力高級言語
プログラム解析部12を動作させる。
【0032】これにより、入力高級言語プログラム解析
部12は、先ず、入力高級言語プログラム60に対応す
る内部コードを内部コード格納部17に格納し、次い
で、内部コードの各位置に対応する入力高級言語プログ
ラム60の行番号を入力行番号記憶部17aに格納し、
更に、入力高級言語プログラム60中に存在するデータ
名等のデータに関する情報をデータ情報格納部16に格
納する。
【0033】今、例えば、入力高級言語プログラム60
として、図2に示すFORTRAN77言語で記述され
たプログラムが入力されたとすると、入力高級言語プロ
グラム解析部12は、図2に示す入力高級言語プログラ
ム60に対応する内部コードを内部コード格納部17に
格納し、次いで、内部コードの各位置に対応する入力高
級言語プログラム60の行番号を入力行番号記憶部17
aに格納し、更に、入力高級言語プログラム60中に存
在するデータ名A,B,C等のデータに関するデータ情
報格納部16に格納することになる。
【0034】入力高級言語プログラム解析部12の処理
が終了すると、制御部11は、プログラム変換部13を
動作させる。
【0035】これにより、プログラム変換部13は、内
部コード格納部17に格納されている内部コードに対し
て一定の変換を施す。例えば、トランスレータ10が原
始プログラムレベルでの最適化を行うものであれば、最
適化のために必要となる変換を施す。
【0036】その後、プログラム変換部13は、内部コ
ード格納部17に格納されている変換後の内部コードの
各位置に対応する入力高級言語プログラム60の行番号
を入力行番号記憶部17aに格納する。更に、内部コー
ドの変換処理に於いてデータ名の変更を行った場合に
は、変更前,後のデータ名とそのような変更が内部コー
ドのどの範囲で行われたかを示す情報とから構成される
データ名変更情報をデータ名変更情報記憶部16aに格
納する。例えば、内部コード上の位置αから位置βまで
の範囲でデータ名Cをデータ名Wに変更する処理を行っ
たとすると、プログラム変換部13は、データ名C,W
と、内部コード上の位置αから位置βの範囲を示す情報
とから構成されるデータ名変更情報をデータ名変更情報
記憶部16aに格納することになる。
【0037】プログラム変換部13の処理が終了する
と、制御部11は、出力高級言語プログラム生成部14
を動作させる。
【0038】これにより、出力高級言語プログラム生成
部14は、内部コード格納部17に格納されている最終
的な内部コードに基づいて、出力高級言語プログラム7
0を生成し、出力する。
【0039】その後、出力高級言語プログラム生成部1
4は、内部コード格納部17に格納されている最終的な
内部コードの各位置に対応する出力高級言語プログラム
70の行番号を出力行番号記憶部17bに格納する。
【0040】出力高級言語プログラム生成部14の処理
が終了すると、制御部11は、高級言語データ化シンボ
ル情報生成部15を動作させる。
【0041】これにより、高級言語データ化シンボル情
報生成部15は、図3の流れ図に示す処理を開始する。
【0042】先ず、入力高級言語プログラム60の行番
号「1」に対応する出力高級言語プログラム70の行番
号を求めるために、入力行番号に「1」を設定する(S
1)。
【0043】次いで、内部コード格納部17内の入力行
番号記憶部17a,出力行番号記憶部17bの内容に基
づいて入力高級言語プログラム60の行番号「1」と対
応する出力高級言語プログラム70の行番号を求め、そ
のリストを作成する(S2)。このS2の処理を詳しく
説明すると、入力高級言語プログラム60の行番号
「1」と対応して入力行番号記憶部17aに格納されて
いる内部コードの位置を求め、更に、求めた内部コード
の位置と対応して出力行番号記憶部17bに格納されて
いる出力高級言語プログラム70の行番号を求めること
により、入力高級言語プログラム60の行番号「1」に
対応する出力高級言語プログラム70の行番号を求め、
そのリストを作成する。
【0044】その後、入力行番号を+1して「2」にし
(S4)、前述したと同様の処理を行うことにより入力
高級言語プログラム60の行番号「2」に対応する出力
高級言語プログラム70の行番号を求める(S2)。以
下、入力高級言語プログラム60の最終行まで、前述し
た処理を繰り返し行い、最終行まで前述した処理を行う
と(S3がYES)、入力高級言語プログラム60と出
力高級言語プログラム70との行番号の対応関係を表現
する高級言語データをデータ名・行番号対応表70aの
一部として出力高級言語プログラム70に組み込む(S
5)。
【0045】次いで、高級言語データ化シンボル情報生
成部15は、データ名変更情報記憶部16aからデータ
名変更情報を1つ取り出す(S6)。
【0046】その後、取り出したデータ名変更情報と出
力行番号記憶部17bの内容とに基づいて、変更前,後
のデータ名と、そのような変更が出力高級言語プログラ
ム70のどの範囲で行われたのかを示す行番号とからな
るリストを作成する(S7)。ここで、データ名の変更
が行われた範囲を示す出力高級言語プログラム70に於
ける行番号は、データ名変更情報に含まれている内部コ
ードの位置を示す情報に対応して出力行番号記憶部17
bに格納されている行番号を求めることにより行う。
【0047】次いで、データ名変更情報記憶部16aに
格納されている次のデータ名変更情報を1つ取り出し
(S9)、前述したと同様の処理を行う(S7)。以
下、データ名変更情報記憶部16aに格納されている全
てのデータ名変更情報に対して前述したと同様の処理を
行い、データ名変更情報記憶部16aに格納されている
全てのデータ名変更情報に対して前述した処理を行うと
(S8がYES)、変更前,後のデータ名とそのような
変更が行われている出力高級言語プログラム70の行番
号を示す高級言語データをデータ名・行番号対応表70
aの一部として出力高級言語プログラム70に組み込む
(S10)。
【0048】ここで、データ名・行番号対応表70a
は、実際のプログラムの実行時には使用されないが、出
力高級言語プログラム70を記述する出力高級言語の仕
様を満たし(データ名・行番号対応表70aを記述する
ための仕様の拡張を含まない)、且つプログラムの一部
としてコンパイラ20に受け入れられるものであること
が必要である。
【0049】図4は出力高級言語プログラム70の一例
を示した図であり、FORTRAN77言語で記述され
ている。
【0050】この図4に示す出力高級言語プログラム7
0には、サブルーチン副プログラムSUB1$TRAN
Sが作成されている。このサブルーチン副プログラムS
UB1$TRANSがデータ名・行番号対応表70aと
なっており、プログラムの実行中に呼ばれることはな
い。
【0051】サブルーチン副プログラムSUB1$TR
ANS中で整数型初期値付き配列LINESが行番号の
対応を、文字型初期値付き配列SYMがデータ名の対応
を表している。
【0052】ここで、初期値として与えられたLINE
Sの値の内、LINES(1:11,1)の値、即ち、
先頭から順に1,2,3,4,7,5,8,11,1
2,14,15は、入力高級言語プログラム60の行番
号「1」〜「11」が、出力高級言語プログラム70の
上記した数値で表される行番号に対応していることを示
している。また、LINES(6,1:3)、即ち5,
6,9は、入力高級言語プログラム60の行番号「6」
が出力高級言語プログラム70の行番号「5」,
「6」,「9」に対応していることを表している。更
に、LINES(7,1:2)、即ち、8,10は、入
力高級言語プログラム60の行番号「7」が、出力高級
言語プログラム70の行番号「8」,「10」に対応し
ていることを表している。同様に、LINES(8,
1:2)、即ち11,13は、入力高級言語プログラム
60の行番号「8」が、出力高級言語プログラム70の
行番号「11」,「13」に対応していることを表して
いる。
【0053】また、SYMとSYM LINESの値の
内、 'C’と 'W’、及び8と10は、入力高級言語プ
ログラム60の 'C’が出力高級言語プログラム70で
は、第8行目〜第10行目で、 'W’としても使われて
いることを表している。
【0054】トランスレータ10が出力高級言語プログ
ラム70を出力すると、コンパイラ20は、それを翻訳
して目的プログラム80を生成する。その後、コンパイ
ラ20は、出力高級言語プログラム70のデータ名,行
番号と目的プログラム80のアドレスとの対応関係を示
す出力高級言語・目的プログラム対応表80bを生成し
て目的プログラム80に組み込む。尚、目的プログラム
80中のデータ名・行番号対応表80aは、出力高級言
語プログラム70中のデータ名・行番号対応表70aと
対応するものである。
【0055】リンカ30は、コンパイラ20から出力さ
れた目的プログラム80を結合して実行可能プログラム
90を生成する。その際、リンカ30は、出力高級言語
・目的プログラム対応表80bの代わりに、出力高級言
語プログラム70のデータ名,行番号と実行可能プログ
ラム90のアドレスとの対応関係を示す出力高級言語・
実行可能プログラム対応表90bを実行可能プログラム
90に組み込む。尚、データ名・行番号対応表90a
は、目的プログラム80中のデータ名・行番号対応表8
0aに対応するものである。
【0056】リンカ30が生成した実行可能プログラム
90は、計算機40上のメモリにロードされ実行され
る。
【0057】デバッグ処理装置50は、ユーザからデバ
ッグ指示が入力されると、先ず、デバッグ指示事前解析
部53を動作させる。
【0058】これにより、デバッグ指示事前解析部53
は、図5の流れ図に示すように、ユーザが入力したデバ
ッグ指示が、入力高級言語プログラム60のデータ名,
行番号を用いて記述されているか、それとも出力高級言
語プログラム70のデータ名,行番号を用いて記述され
ているかを調べる(S11)。ここで、デバッグ指示
が、入力高級言語プログラム60,出力高級言語プログ
ラム70の内の何れのデータ名,行番号を用いて記述さ
れているかを容易に判定できるようにするため、既存の
デバッグ指示の記述形式を拡張し、デバッグ指示にその
記述が入力高級言語プログラムのデータ名,行番号を用
いたものなのか、出力高級言語プログラムのデータ名,
行番号を用いたものなのかを示す情報を記述できるよう
にすることが考えられる。
【0059】そして、S11に於いて、デバッグ指示が
出力高級言語プログラム70のデータ名,行番号を用い
て記述されていると判断した場合は、デバッグ指示をそ
のままデバッガ52に渡す(S12)。
【0060】また、S11に於いて、デバッグ指示が入
力高級言語プログラム60のデータ名,行番号を用いて
記述されていると判断した場合は、デバッグ指示をデバ
ッグ指示変換部54に渡し、デバッグ指示変換部54か
らデバッグ指示が返却されるのを待つ(S13)。
【0061】デバッグ指示変換部54は、デバッグ指示
事前解析部53からデバッグ指示が渡されると、図6の
流れ図に示すように、デバッガ52に対して実行可能プ
ログラム90’中のデータ名・行番号対応表90a’を
要求することにより、データ名・行番号対応表90a’
を得る(S21)。
【0062】その後、デバッグ指示変換部54は、S2
1で取得したデータ名・行番号対応表90a’に基づい
て、デバッグ指示事前解析部53から渡された、出力高
級言語プログラム70のデータ名,行番号を用いて記述
されているデバッグ指示を、入力高級言語プログラム6
0のデータ名,行番号を用いたものに変換する(S2
2)。そして、デバッグ指示の変換が完了すると、変換
後のデバッグ指示をデバッグ指示事前解析部53に返却
する(S23)。
【0063】デバッグ指示事前解析部53は、デバッグ
指示変換部54から変換後のデバッグ指示が返却される
と、それをデバッガ52に渡す(図5,S14)。
【0064】デバッガ52は、デバッグ指示事前解析部
53から出力高級言語プログラム70のデータ名,行番
号を用いて記述されたデバッグ指示が渡されると、実行
可能プログラム90’中の出力高級言語・実行可能プロ
グラム対応表90b’の内容に基づいて、デバッグ指示
中のデータ名,行番号に対応する実行可能プログラム9
0’のアドレスを求め、それに従って実行可能プログラ
ム90’に対するデバッグを行う。
【0065】
【発明の効果】以上説明したように本発明は、トランス
レータ内の高級言語データ化シンボル情報生成部が、出
力高級言語プログラムを記述する高級言語の仕様に従っ
た形式のデータ名・行番号対応表を、プログラムの実行
に影響を与えない形式で出力高級言語プログラム中に組
み込むようにしているので、デバッグ対象とする実行可
能プログラムに対するデータ名・行番号対応表の所在が
不明になることを防止できるという効果があると共に、
言語処理システムが現在備えているコンパイラ,リンカ
をそのまま使用して入力高級言語プログラムのデータ
名,行番号を用いたシンボリックなデバッグを行うこと
ができるという効果がある。更に、言語処理システムが
現在備えているコンパイラ,リンカをそのまま使用する
ことができるので、他の言語処理システムへのトランス
レータの移植を容易に行うことができる効果もある。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】入力高級言語プログラム60の一例を示す図で
ある。
【図3】高級言語データ化シンボル情報生成部15の処
理例を示す流れ図である。
【図4】出力高級言語プログラム70の一例を示す図で
ある。
【図5】デバッグ指示事前解析部53の処理例を示す流
れ図である。
【図6】デバッグ指示変換部54の処理例を示す流れ図
である。
【符号の説明】
10…トランスレータ 11…制御部 12…入力高級言語プログラム解析部 13…プログラム変換部 14…出力高級言語プログラム生成部 15…高級言語データ化シンボル情報生成部 16…データ情報格納部 16a…データ名変更情報記憶部 17…内部コード格納部 17a…入力行番号記憶部 17b…出力行番号記憶部 20…コンパイラ 30…リンカ 40…計算機 50…デバッグ処理装置 51…デバッガラッパ 52…デバッガ 53…デバッグ指示事前解析部 54…デバッグ指示変換部 60…入力高級言語プログラム 70…出力高級言語プログラム 70a…データ名・行番号対応表 80…目的プログラム 80a…データ名・行番号対応表 80b…出力高級言語・目的プログラム対応表 90,90’…実行可能プログラム 90a,90a’…データ名・行番号対応表 90b,90b’…出力高級言語・実行可能プログラム
対応表

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 入力高級言語プログラムに対して一定の
    変換を施した出力高級言語プログラムを出力するトラン
    スレータと、 該トランスレータから出力された出力高級言語プログラ
    ムを翻訳して目的プログラムを生成するコンパイラと、 該コンパイラで生成された目的プログラムを結合して実
    行可能プログラムを生成するリンカと、 該リンカで生成された実行可能プログラムを実行する計
    算機と、 前記入力高級言語プログラムのデータ名,行番号を用い
    て記述されているデバッグ指示が入力された時、該デバ
    ッグ指示と、前記入力高級言語プログラムのデータ名,
    行番号と前記出力高級言語プログラムのデータ名,行番
    号との対応関係を表すデータ名・行番号対応表と、前記
    出力高級言語プログラムのデータ名,行番号と前記実行
    可能プログラムのアドレスとの対応関係を示す出力高級
    言語・実行可能プログラム対応表とに基づいて前記実行
    可能プログラムのデバッグを行うデバッグ処理装置とを
    含む言語処理システムに於いて、 前記トランスレータは、 前記出力高級言語プログラムを記述する高級言語の仕様
    に従った形式の、前記入力高級言語プログラムのデータ
    名,行番号と前記出力高級言語プログラムのデータ名,
    行番号との対応関係を示すデータ名・行番号対応表を、
    プログラムの実行に影響を与えない形式で前記出力高級
    言語プログラムに組み込む高級言語データ化シンボル情
    報生成部を備えたことを特徴とする言語処理システム。
  2. 【請求項2】 前記デバッグ処理装置は、 前記入力高級言語プログラムのデータ名,行番号を用い
    て記述されているデバッグ指示が入力された時、前記入
    力高級言語プログラムに対応する実行可能プログラムに
    組み込まれているデータ名・行番号対応表に基づいて、
    前記入力されたデバッグ指示の記述を、前記出力高級言
    語プログラムのデータ名,行番号を用いたものに変換す
    るデバッグ指示変換部と、 該デバッグ指示変換部によって変換された後のデバッグ
    指示と、前記出力高級言語・実行可能プログラム対応表
    とに基づいて前記実行可能プログラムのデバッグを行う
    デバッガとを備えたことを特徴とする請求項1記載の言
    語処理システム。
  3. 【請求項3】 前記デバッグ指示変換部は、前記出力高
    級言語プログラムのデータ名,行番号を用いて記述され
    ているデバッグ指示が入力された時、入力されたデバッ
    グ指示をそのままの状態で前記デバッガに渡す構成を備
    えたことを特徴とする請求項2記載の言語処理システ
    ム。
JP9027235A 1997-01-27 1997-01-27 言語処理システム Pending JPH10207738A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9027235A JPH10207738A (ja) 1997-01-27 1997-01-27 言語処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9027235A JPH10207738A (ja) 1997-01-27 1997-01-27 言語処理システム

Publications (1)

Publication Number Publication Date
JPH10207738A true JPH10207738A (ja) 1998-08-07

Family

ID=12215421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9027235A Pending JPH10207738A (ja) 1997-01-27 1997-01-27 言語処理システム

Country Status (1)

Country Link
JP (1) JPH10207738A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141173A (ja) * 2005-11-22 2007-06-07 Matsushita Electric Ind Co Ltd コンパイルシステム、デバッグシステムおよびプログラム開発システム
JP2011175365A (ja) * 2010-02-23 2011-09-08 Nec Corp デバッグ装置、デバッグ方法及びデバッグ処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141173A (ja) * 2005-11-22 2007-06-07 Matsushita Electric Ind Co Ltd コンパイルシステム、デバッグシステムおよびプログラム開発システム
JP2011175365A (ja) * 2010-02-23 2011-09-08 Nec Corp デバッグ装置、デバッグ方法及びデバッグ処理プログラム

Similar Documents

Publication Publication Date Title
JP3041222B2 (ja) ソース・コード作成システム及び方法
US7454746B2 (en) Function call translation
US10013244B2 (en) Apparatus and method to compile a variadic template function
US5404531A (en) Method and apparatus for compiler processing on program related to data transfer and calculation, and method of managing memory
US7080370B1 (en) Method and apparatus for compiling source programs using one or more libraries
JPH10207738A (ja) 言語処理システム
JP3327674B2 (ja) プログラム翻訳装置及び方法
Toeppe et al. Automatic code generation requirements for production automotive powertrain applications
JP3328056B2 (ja) 構文解析木からの情報抽出装置
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP3085956B2 (ja) オブジェクト指向言語の翻訳処理装置
JP2008071065A (ja) インライン展開を行うコンパイル装置、方法、プログラム、記憶媒体
JP3210203B2 (ja) プログラム試験方法及びsqlシミュレータ
JP3327662B2 (ja) プログラム翻訳装置及びプログラム翻訳方法
JP3014409B2 (ja) 自然言語自動翻訳装置
KR20020021083A (ko) 최적의 컴퓨터 데이터 필드 변환 루틴을 생성하는 시스템
JP3424596B2 (ja) シンボル参照情報のキャッシュ方法ならびに装置
JP2501394B2 (ja) 手続き呼び出し翻訳装置
JP2001154850A (ja) コンピュータプログラムのコンパイル方法
JPH1195995A (ja) データフロー解析装置、データフロー解析方法及びそのためのコンピュータプログラムを記録した記録媒体
JPH10312312A (ja) 仕様によって動作が変わるc言語の計算機プログラム検査処理方法およびプログラム記憶媒体
JPH05120025A (ja) ソースプログラムのインライン展開方法
JPH0612259A (ja) コンパイラ処理方式
JPH04287230A (ja) インライン展開の引数結合方法
JPH05224908A (ja) プログラム生産システム