JPH05334096A - 言語翻訳プログラム及びその出力結果を用いるデバッグ装置 - Google Patents

言語翻訳プログラム及びその出力結果を用いるデバッグ装置

Info

Publication number
JPH05334096A
JPH05334096A JP4140356A JP14035692A JPH05334096A JP H05334096 A JPH05334096 A JP H05334096A JP 4140356 A JP4140356 A JP 4140356A JP 14035692 A JP14035692 A JP 14035692A JP H05334096 A JPH05334096 A JP H05334096A
Authority
JP
Japan
Prior art keywords
variable name
variable
address
program
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
Application number
JP4140356A
Other languages
English (en)
Inventor
Yoshiharu Maruyama
吉晴 丸山
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom 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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP4140356A priority Critical patent/JPH05334096A/ja
Publication of JPH05334096A publication Critical patent/JPH05334096A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明は、言語翻訳プログラム及びその出力
結果を用いるデバッグ装置に係わり、予約語に対して任
意の変数名を与える定義文を記述可能なプログラム言語
で記述されたソースプログラムのデバッグを、上記任意
の変数名を用いてデバッグできるようにすることを目的
とする。 【構成】 プリプロセス部230pは、入力ソースプロ
グラム内の全ての#def-ine 文を基にそれらの各#defi
ne文で定義されているPC識別子と、そのPC識別子に
置き換えられる変数名とが対応付けられた別名定義ファ
イル270aを作成する。デバッガ230dは、上記#
define文で定義されている変数名をパラメータとするデ
バッグ用コマンドを入力すると、その変数名の絶対アド
レスを別名定義ファイル270a及びPC識別子/絶対
アドレス変換テーブル270bを参照して得、その変数
名を有する変数の表示・書き換え等の上記デバッグ用コ
マンドで指定されたデバッグ処理を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソースプログラムを計
算機が実行可能な目的プログラムに翻訳する言語翻訳プ
ログラム、及びその言語翻訳プログラムの出力結果を基
に上記ソースプログラムのデバッグを行うデバッグ装置
に関する。
【0002】
【従来の技術】計算機の動作アルゴリズムを記述するプ
ログラム言語は、プログラムの作成効率を向上するため
に、最近では、一部のハードウエアを制御する部分を除
いては、人間の使っている言語の水準に近い高水準言語
が多く用いられるようになってきている。
【0003】この傾向は、マイクロコンピュータを内蔵
することにより、制御手順をプログラミングにより設定
できるシーケンサであり、生産ラインの制御や産業ロボ
ットなどの自動化機器の作業手順を決めるプログラムコ
ントローラ(以下、PCと略称して述べる)においても
同様であり、最近では、PC用のプログラムもC言語等
の高級言語(高水準言語)で作成するようになってきて
いる。
【0004】図12は、C言語で記述されたソースプロ
グラム(以下、Cソースファイルと表現する)を目的プ
ログラム(Object Program) に翻訳する従来のCコンパ
イラ(C言語用の言語翻訳プログラム)の動作を説明す
るフローチャートである。
【0005】コンパイラは、一般に、その機能に応じ
て、プリプロセス部、解析部、及びコード生成部の3つ
のフェーズに分かれており、各フェーズは上記の順序で
実行される。そして、上記各フェーズは、それぞれ中間
ファイルを生成し、それら各中間ファイルが、次に実行
されるフェーズの入力となっている方式のものが多い。
【0006】次に、上記図12のフローチャートを参照
しながら、従来のCコンパイラの動作を説明する。ま
ず、プリプロセス部は(Cプリプロセッサ)は、入力さ
れるCソースファイル(入力Cソースファイル)に含ま
れる#include 命令により、その#include命令により
指定されている別のCソースファイルを読み込み、それ
らのCソースファイルの内容全体を入力Cソースファイ
ルの上記#include 文が記述された行に挿入するファイ
ル結合処理を行う(S1)。
【0007】すなわち、入力Cソースファイル内の#in
clude 文が、その#include 文により指定されたCソー
スファイルに変換される。次に、プリプロセス部は、入
力Cソースファイルに含まれるif文等の条件コンパイル
命令について、それら各条件コンパイル命令の指定する
条件に基づき、入力ソースファイルの一部を無効にする
(S2)。そして、最後にプリプロセス部は、入力Cソ
ースファイルに含まれる、#include 命令のマクロ定義
に従って、入力Cソースファイル内のある字句を(マク
ロ・テンプレートもしくはマクロ名)を上記define命令
により定義された字句(マクロ拡張もしくは置換文字
列)に置き換える(S3)。
【0008】以上のようにして、プリプロセス部が作成
した中間ファイル(拡張ソースコードファイル)は、解
析部に渡される。解析部は、上記拡張ソースコードファ
イルについて、構文規則に基づいて構文解析を行い、次
にその構文解析によって得られた結果についてさらに意
味解析を行う(S4)。
【0009】解析部は、上記意味解析部において、上記
拡張ソースコードファイルから内部メモリに領域が割り
当てられる変数各を全てリストアップし、図13に示す
ような形式の変数シンボルテーブル(変数シンボルマッ
プ)100を作成する(S5)。尚、このときまでの段
階では、上記変数シンボルテーブル100は、変数名及
びそのデータ長は登録されているが、相対アドレスはま
だ未登録のままである。
【0010】続いて、解析部は、上記構文解析処理によ
り作成された構文を、さらに最適なコード生成ができる
ような構文に変更した後、上記Cソースファイル(ソー
スプログラム)をアセンブリ言語で記述されたプログラ
ム(アセンブリ言語プログラム)に翻訳し、そのアセン
ブリ言語プログラムと上記変数シンボルテーブル100
を含む中間ファイルをコード生成部へ渡す(S6)。
【0011】コード生成部は、上記中間ファイルの内容
を読み出し、まずその中間ファイル内に格納されている
上記変数シンボルテーブル100に登録されている各変
数に、CPUの主メモリロード用の相対アドレスを割り
付け(S7)、次に上記アセンブリ言語プログラムを上
記中間ファイルから読み出し、そのアセンブリ言語プロ
グラムを計算機が実行可能なコードから成るリロケータ
ブル(relocatable)な目的プログラム( オブジェクトプ
ログラム)に翻訳する(S8)。
【0012】次に、上述のような従来のCコンパイラに
より作成されるリロケータブルな目的プログラムを、従
来のデバッガ(Debugger) を用いてデバッグ(Debug)す
る場合の動作の一例を図14のフローチャートを参照し
ながら説明する。尚、同図のフローチャートに示す処理
を行うデバッガは、シンボリックデバッガ(SymbolicDe
bugger)である。
【0013】このシンボリックデバッガ(以下、デバッ
ガと略称する)は、周知のように、上記目的プログラム
を計算機上で実際に実行させながら、ソースプログラム
で使用されている変数名の値を、プログラム実行中また
はプログラム実行終了後に、メモリダンプ(memory dum
p)できる機能を備えているデバッグ装置である。
【0014】続いて、上記従来のデバッガにより行われ
る、ソースプログラムで使用されている変数名に対する
デバッグ処理を、図14のフローチャートを参照しなが
ら説明する。
【0015】デバッガは、ユーザがキーボード等の入力
装置を介して入力したある変数名に対するあるデバッグ
処理を指定するデバッグコマンドを、取得すると(S1
1)、上記Cコンパイラにより作成された変数シンボル
テーブル100を検索し、上記変数名を捜し出す(S1
2)。
【0016】デバッガは、上記検索に成功すると(S1
3,YES)、変数シンボルテーブル100から上記変
数名の相対アドレスを読み出し、その相対アドレスを基
に上記変数名の主メモリ上でのアドレス(絶対アドレ
ス)を求め(S15)、上記デバッグコマンドにより指
定された所定のデバッグ操作(例えば、メモリ参照、書
き換え等)を行う(S16)。
【0017】一方、デバッガは、変数名の検索に失敗す
ると(S13,NO)、CRTディスプレイ等の表示装
置に該当するエラーメッセージを出力(表示)する(S
14)。
【0018】
【発明が解決しようとする課題】上述したように、C言
語等の高級言語においては、#define文等によりソース
プログラムで使用しているキーワード(文字列)を、コ
ンパイラにより別のキーワードや定数、あるいはよく使
用する文字や式に置き換えることができる。
【0019】しかし、一般には、ある変数名を#define
文によって別の変数名に置き換えることはあまり意味を
なさない為、行われない。しかし、PC(プログラマブ
ル・コントローラ)の分野においては、そのような#de
fine文による変数名の書き換え操作は、しばしば行われ
る。すなわち、入出力リレーやタイマ等に対し、予めP
C内の主メモリ上での絶対アドレスを割り当て、それら
の入出力リレーやタイマ等をソースプログラム上では変
数名で参照するようにし、それらの変数名にある別の変
数名の値や定数等を代入する等のメモリ操作を行う。
【0020】これは、PCの分野では、入出力リレーや
タイマ等のシーケンス制御に用いられる部品の絶対アド
レスが、プラント完成時において初めて決定されるとい
う特殊性があるからである。このため、ソースプログラ
ムを作成する際には、上記入出力リレーやタイマ等に対
してはそれらの部品名に対応する変数名を用いて記述
し、#define文によりそれらの変数名を絶対アドレスを
容易に知れるようなキーワード(PC識別子)に置き換
えて記述しておくようにしている。
【0021】このような方法をとることにより、ソース
プログラムの作成・保守が容易になると共に、プラント
完成時において上記のような部品の絶対アドレスがソー
スプログラム中での記述と異なるようになった場合で
も、ソースプログラムにおいて該当#define文のPC識
別子を変更するだけで対処できる。すなわち、プラント
のシステム設計時において、予め複数のPC識別子にプ
ラント完成時において割り当てられる可能性の高い絶対
アドレスをテーブル等により割り当てておくことによ
り、ソースプログラム内の#define文において記述され
たPC識別子を別のPC識別子に変更するだけで、予め
仮に割り当てていた絶対アドレスを正しい絶対アドレス
に変更させることが容易にできる。
【0022】図15に、そのようなメモリ操作を行って
いるC言語で記述されたソースプログラムの一例を示
す。同図に示すソースプログラム110の例では、#de
fine文によりPCの主メモリ上での絶対アドレスを示す
キーワード(PC識別子)である「WB0000」に「InSw
itch」という変数名を割り当てる処理を行っている。
尚、上記PC識別子は、Cコンパイラでは予約語として
取り扱われる。
【0023】従来のCコンパイラでは、上述したように
プリプロセス部において、#define文により定義された
変数名(同図(a)に示すソースプログラム100にお
いては「InSwitch」)を絶対アドレスを示すPC識別子
(上記ソースプログラム100においては「WB000
0」)に置き換えてしまうため、#define文により定義
された変数名は、デバッガのデバッグ情報となる変数シ
ンボルテーブルに登録されない(その変数名とそのアド
レス情報は変数シンボルテーブルに登録されない)。ま
た、PC識別子(ソースプログラム100においては、
「WB0000」) は、Cコンパイラでは予約語として取り
扱われるため、PC識別子についても変数シンボルテー
ブルにそのアドレス情報は登録されない。
【0024】したがって、従来は、デバッグ時におい
て、ソースプログラムで使用した変数名(上記ソースプ
ログラム100においては「InSwitch」)を指定して、
その変数名の内容を参照したり(メモリ参照)、書き換
えたり(メモリ書き換え)する等のデバッグ処理を行う
ことはできなかった。
【0025】このため、PCの分野においては、C言語
でソースプログラムを作成した場合、そのソースプログ
ラムをデバッグする際、入出力リレーやタイマ等の部品
のようにPCの主メモリ上に予め絶対アドレスが割り当
てられるものについてその値の参照・書き換え等のデバ
ッグ操作を行うときには、その絶対アドレスで直接指定
する必要があった。
【0026】したがって、上記入出力リレーやタイマ等
の値の部品の参照・書き換え等のデバッグ操作を行う場
合、その絶対アドレスを知る必要があった。このため、
それらのデバッグ操作は、煩雑なものとなり、デバッグ
の作業効率を低下させる一因となっていた。
【0027】本発明は、C言語における#define文等の
ような既に予約語として定義されているキーワードをあ
る変数名に置き換える定義文の記述が可能なプログラミ
ング言語で記述されたソースプログラムのデバッグにお
いて、コンパイルの際、上記キーワードに置き換えられ
る上記定義文で定義された変数名を用いて、それらの変
数名を有する変数の参照・書き換え等のデバッグ操作を
行えるようにすることを目的とする。
【0028】
【課題を解決するための手段】図1は、請求項1記載の
第1の発明の原理ブロック図である。この第1の発明
は、予約語に対して任意の変数名を与える定義文を記述
することが可能な言語で記述されたソースプログラム
を、計算機が実行可能なコードから成る目的プログラム
に翻訳する言語翻訳プログラムを前提にし、以下に示す
各手段1,2,3を有する。
【0029】ファイル作成手段1は、前記ソースプログ
ラム内に記述されている全ての前記定義文に基づいて、
それらの各定義文で定義されている予約語と変数名との
対応関係を記憶する別名定義ファイルを作成する。
【0030】変数名置き換え手段2は、前記ソースプロ
グラム内の前記定義文によって定義されている変数名
を、その定義文によって定義されている予約語に置き換
える。シンボルマップ作成手段3は、前記ソースプログ
ラム内の前記定義文によって定義されている変数名以外
の各変数名に対して相対アドレスを割り付け、上記各変
数名とその各変数名に割り付けられた相対アドレスとの
対応関係を記憶する変数シンボルマップを作成する。
【0031】上記ファイル作成手段1、上記変数名置き
換え手段2、及び上記シンボルマップ作成手段3は、例
えばマイクロプロセッサ及びそのマイクロプロセッサに
より実行されるプログラムによって実現される。
【0032】次に、図2は請求項2記載の第2の発明の
原理ブロック図である。この第2の発明も、上記第1の
発明と同様に予約語に対して任意の変数名を与える定義
文を記述することが可能な言語で記述されたソースプロ
グラムを、計算機が実行可能なコードから成る目的プロ
グラムに翻訳する言語翻訳プログラムを前提にする。そ
して、以下の手段11,12,及び13を有する。
【0033】ファイル作成手段11は、前記ソースプロ
グラム内に記述されている全ての前記定義文に基づい
て、それらの各定義文で定義されている予約語に割り付
けられているアドレスと変数名との対応関係を記憶する
別名定義ファイルを作成する。
【0034】変数名置き換え手段12及びシンボルマッ
プ作成手段13は、それぞれ前記第1の発明の変数置き
換え手段2及びシンボルマップ作成手段3と同等の機能
を有する。
【0035】この第2の発明の各手段11,12,13
も、上記第1の発明と同様に、例えばマイクロプロセッ
サ及びそのマイクロプロセッサによって実行されるプロ
グラムにより実現される。
【0036】続いて、図3は、請求項3記載の第3の発
明の原理ブロック図である。この第3の発明は、前記第
1の発明である請求項1記載の言語翻訳プログラムによ
り翻訳された目的プログラムをデバッグするデバッグ装
置を前提にし、以下の各手段21,22,23及び24
を有する。
【0037】変数検索手段21は、ある変数名をパラメ
ータとするデバッグ用コマンドが入力されたとき、その
変数名が前記別名定義ファイルまたは前記変数シンボル
マップのいずれに登録されているかを検索する。
【0038】第1のアドレス出力手段22は、変数名検
索手段21の検索結果に基づいて、前記別名定義ファイ
ルを参照して前記定義文によって前記変数名に置き換え
られた予約語を見つけ、その予約語に割り付けられてい
るアドレスを出力する。
【0039】第2のアドレス出力手段23は、変数名検
索手段21の検索結果に基づいて、前記シンボルマップ
から前記変数名の翻訳アドレス、その相対アドレスまた
は、その変数名を有する変数の絶対アドレスを取り出し
て出力する。
【0040】デバッグ処理出力24は、第1のアドレス
出力手段22または前記第2のアドレス出力手段24か
ら入力されるアドレスの内容に対して、前記入力デバッ
グコマンドによって指定された処理を行う。
【0041】これらの各手段21,22,23,24
は、例えばマイクロプロセッサ及びそのマイクロプロセ
ッサにより実行されるプログラムによって実現される。
そして、最後に図4は、請求項4記載の第4の発明の原
理ブロック図である。
【0042】この第4の発明は、請求項2記載の第3の
発明の言語翻訳プログラムにより翻訳された目的プログ
ラムをデバッグするデバッグ装置を前提にする。そし
て、以下の各手段31,32,33,34を有する。
【0043】変数名検索手段31は、ある変数名をパラ
メータとするデバッグ用コマンドが入力されたとき、そ
の変数名が前記別名定義ファイルまたは前記変数シンボ
ルマップのいずれに登録されているかを検索する。
【0044】第1のアドレス出力手段32は、変数名検
索出力31の検索結果に基づいて、前記別名定義ファイ
ルを参照して前記定義文によって前記変数名に置き換え
られた予約語に割り付けられているアドレスを出力す
る。
【0045】第2のアドレス出力手段33及びデバッグ
処理手段34は、それぞれ上記第3の発明のデバッグ装
置が有する同一名称の手段33及び手段34と同等の機
能を有する。
【0046】この第4の発明のデバッグ装置の各手段3
1,32,33及び34も、例えば、上記第3の発明の
デバッグ装置と同様に、マイクロプロセッサ及びそのマ
イクロプロセッサにより実行されるプログラムによって
実現される。
【0047】
【作用】第1の発明によれば、ファイル作成手段1は、
入力されるソースプログラムから前記定義文を全て抜き
出し、それらの各定義文毎に各定義文によって定義され
ている予約語とその予約語に与えられる変数名とを対応
付けて別名定義ファイルに登録する。
【0048】続いて、変数名置き換え手段2は、上記入
力ソースプログラムのステートメントを先頭から順に読
み出し、そのソースプログラム内の定義文によって定義
されている変数名を、その定義文によって定義されてい
る予約語に置き換えていく。
【0049】次に、シンボルマップ作成手段3は、変数
名置き換え手段2等によって一部変更されたソースプロ
グラムを入力し、そのソースプログラムから上記定義文
によって定義されている変数名以外の変数名を抽出し、
それらの変数名に対してソースプログラム内での相対ア
ドレスを割り付け、それらの変数名とそれらの変数名に
割り付けられた上記相対アドレスとが対応付けられた変
数シンボルマップを作成する。
【0050】そして、この結果、入力ソースプログラム
内の上記定義文によって予約語に置き換えられる変数名
については、その変数名がソースプログラム内において
置き換えられる予約語とが対応付けられた別名定義ファ
イルが自動的に作成されると共に、上記定義文によって
定義されていない変数名については、従来の言語翻訳プ
ログラムと同様に、変数シンボルマップが作成される。
【0051】第2の発明の作用は、変数名置き換え手段
12が、入力ソースプログラム内の上記定義文によって
定義されている変数名を、その定義文によって定義され
ている予約語の代わりに、その予約語に予め割り付けら
れている絶対アドレスと対応付けて別名定義ファイル内
に登録する動作のみが異なる。
【0052】そして、この結果、入力ソースプログラム
内の上記定義文によって定義されている変数名がその定
義文によってソースプログラム内で置き換えられる予約
語に割り付けられる絶対アドレスと対応付けられた別名
定義ファイルと上記第1の発明と同様な構成の変数シン
ボルマップとが自動的に作成される。
【0053】また、第3の発明によれば、利用者が前記
第1の発明の言語翻訳プログラムによって作成された目
的プログラムをデバッグするために、ある変数名に対す
るデバッグ操作を指示するデバッグコマンドを入力する
と、変数名検索手段21は、そのデバッグコマンドによ
り指定されている変数名が、上記第1の発明の言語翻訳
プログラムによって作成された別名定義ファイルまたは
変数シンボルマップのいずれの方に登録されているか検
索する。
【0054】変数名検索手段21は、上記変数名が別名
定義ファイルに登録されていることを見い出すと、第1
のアドレス出力手段22を起動させる。第1のアドレス
出力手段22は、起動されると、上記デバッグコマンド
により指定された変数名に対応する予約語を別名定義フ
ァイルから読み出し、その予約語に割り付けられている
絶対アドレス(このアドレスは、その予約語の現在のメ
モリ上の配置アドレスに等しい)を、予め作成されてい
る所定のテーブルを検索する等の処理を行って見つけ出
し、その予約語の絶対アドレスを、デバッグ処理手段2
4に出力する。
【0055】一方、変数名検索手段21は、上記変数名
が変数シンボルマップに登録されているのを見い出す
と、第2のアドレス出力手段22を起動させる。第2の
アドレス出力手段22は、起動されると、上記変数名の
相対アドレスを上記変数シンボルマップから読み出し、
その相対アドレスまたは上記変数名の現在のメモリ上の
配置アドレス(絶対アドレス)をデバッグ処理手段24
に出力する。
【0056】デバッグ処理手段24は、第1のアドレス
出力手段22または第2のアドレス出力手段23からア
ドレスを入力すると、そのアドレスを基に上記予約語の
値または通常の変数名(定義文で定義されていない変数
名)の値の表示や書き換え等の上記デバッグコマンドに
より指定されたデバッグ処理を行う。
【0057】したがって、利用者はソースプログラム内
において定義文によって定義され、言語翻訳プログラム
のプリプロセス部によって上記定義文によって定義され
た予約語に置き換えられるソースプログラム内の変数名
を有する変数に係わるデバッグ操作を、その変数名を直
接指定して行うことができる。
【0058】また、第4の発明は、上記第3の発明とほ
ぼ同様の動作を行うが、第1のアドレス出力手段32の
動作が、第3の発明の第1のアドレス出力手段22と少
し異なる。
【0059】すなわち、第1のアドレス出力手段32
は、変数名検索手段31から起動されると、別名定義フ
ァイルから、利用者が入力したデバッグ用コマンドに指
定されている変数名に対応する絶対アドレスを読み出
し、その絶対アドレス(このアドレスは、上記定義文に
よって定義されている予約語の現在のメモリ上のアドレ
スに等しい)をデバッグ処理手段34に出力する。
【0060】このように、前記第2の発明の言語翻訳プ
ログラムが作成する別名定義ファイルには、定義文で定
義されている変数名がその変数名に対応する予約語の絶
対アドレスと対応付けられているため、第1のアドレス
出力手段32は、別名定義ファイルを参照するだけで、
直ちに定義文で定義されている変数名に割り付けられて
いるアドレスを得ることができる。
【0061】したがって、第4の発明においても、利用
者はソースプログラム内において定義文によって定義さ
れ、言語翻訳プログラムのプリプロセス部によって上記
定義文によって定義された予約語に置き換えられるソー
スプログラム内の変数名を有する変数に係わるデバッグ
操作を、その変数名を直接指定して行うことができる。
【0062】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。図5は、本発明の一実施例のシステム構成を
示す図である。
【0063】同図において、入力ソースファイル210
は、ユーザの作成したC言語によって記述されたPC
(プログラマブル・コントローラ)用の入力ソースプロ
グラムを格納するファイルである。
【0064】入力装置220は、キーボード等から成
り、ユーザがスクリーンエディタを起動して上記ソース
プログラムを作成したり、後述するデバッガ230dの
起動及びそのデバッグ部230dに対するデバッグ用コ
マンドを入力するため等に用いられる。
【0065】表示装置240は、例えばCRTディスプ
レイ等の各種表示装置から成り、上記スクリーンエディ
タの画面表示や、上記デバッガ230dの出力を表示す
る。中間ファイル250pは、後述するプリプロセス部
230pが上記入力ソースプログラムから生成する拡張
ソースコード等から成るファイルである。
【0066】中間ファイル250kは、後述するプリプ
ロセス部230kが、上記中間ファイル250p内に格
納されている拡張ソースコードを基に生成するアセンブ
リ言語によってに記述されたプログラム(アセンブリ語
プログラム)等から成るファイルである。
【0067】オブジェクトファイル250cは、後述す
るコード生成部250cが、上記中間ファイル250k
に格納されている上記アセンブリ語プログラムを基に生
成する計算機が実行可能なコードから成る目的プログラ
ム(リロケータブルなオブジェクトプログラム)を格納
するファイルである。
【0068】別名定義ファイル270は、前記プリプロ
セス部230pが上記入力ソースプログラム内の#defi
ne文に基づき作成する、PC識別子とそれに対応する変
数名とが1対1に対応付けられたファイルである。この
別名定義ファイル270の詳細な内部構成は後述する。
【0069】ソースファイル群280は、前記入力ソー
スプログラム内の#include 文によってその入力ソース
プログラム内に組み込まれる複数のソースプログラムを
格納しているファイルである。
【0070】CPU230は、マイクロプロセッサ等か
ら成り、プリプロセス部230p、解析部230k、コ
ード生成部230c、及びデバッグ部230d等の複数
の機能ブロックから成っている。上記各機能ブロックの
内、プリプロセス部230p、解析部230k、及びコ
ード生成部230cは、Cコンパイラを構成している。
また、デバッガ230dは、ユーザが上記入力ソースプ
ログラムのデバッグを行うために用いるルーチン(rout
ine)であり、ユーザが前記入力装置220から入力する
起動コマンドにより起動され、ユーザが入力装置220
から入力する各種デバッグコマンド(メモリ参照、メモ
リ書き換え、レジスタ表示、ブレークポイントの設定
等)を入力して、それらのデバッグコマンドによって指
定される処理を実行する。
【0071】別名定義ファイル270aは、本実施例の
特徴をなすファイルであり、プリプロセス部230pに
より上記入力ソースプログラム内の#define文に基づき
作成される、PC識別子とそれに対応する変数名とが1
対1に対応付けられたファイルである。この別名定義フ
ァイル270aの内部構成の詳細は後述する。
【0072】PC識別子/絶対アドレス変換テーブル2
70bは、解析部230k及びコード生成部230cに
より作成される、上記入力ソースプログラム内で用いら
れる各PC識別子の絶対アドレスを格納しているテーブ
ルである。このPC識別子/絶対アドレス変換テーブル
270bの内部構成の詳細も後述する。
【0073】変数シンボルテーブル270cは、前述し
た変数シンボルテーブル100と同様な構成のテーブル
であり、入力ソースプログラム内で用いられている#de
fine文で定義されている変数以外の全ての変数につい
て、そのデータ長並びに相対アドレスを格納する。
【0074】尚、上記PC識別子/絶対アドレス変換テ
ーブル270bは、プリプロセス部230pによりいっ
たん中間ファイル250pに格納された後、中間ファイ
ル250kを経てコード生成部230cによりオブジェ
クトファイル250c内に格納される。また、変数シン
ボルテーブル270cは、解析部230kによりその一
部(変数名及びデータ長)が作成されていったん中間フ
ァイル250kに格納された後、コード生成部230c
により各変数に相対アドレスが割り付けられて完成し、
オブジェクトファイル250c内に格納される。
【0075】メモリ290は、ROM(リード・オンリ
・メモリ)及びRAM(ランダム・アクセス・メモリ)
等から成り、CPU230が上記プリプロセス部230
p、解析部230k、及びコード生成部230cから成
るCコンパイラを実行させるために必要なプログラム、
CPU230がデバッガ230dを実行させるために必
要なプログラム、CPU230が入力装置220や表示
装置240を制御するためのプログラム等を格納してい
る。また、CPU230が、上記Cコンパイラやデバッ
ガ230dを実行するときに使用する作業領域も有して
いる。
【0076】次に、前記プリプロセス部230pによっ
て作成される上記別名定義ファイル270aの内部構成
を図6に示す。同図に示すように別名定義ファイル27
0内には入力ソースプログラム内において#define文に
よって変数名が定義されている全てのPC識別子PID
i (i=0,1,2,・・・)について、その定義され
た変数名VNi (i=0,1,2,・・・)が1対1に
対応付けられて格納されている。また、そのデータ長L
i (i=0,1,2,・・・)も対応付けられて格納さ
れている。
【0077】続いて、予め設定されている上記PC識別
子/絶対アドレス変換テーブル270bの内部構成を図
7に示す。同図に示すように、上記変換テーブル270
b内には、上述した入力ソースプログラムにおいて使用
可能な全てのPC識別子PIDi (i=0,1,2,・
・・)について、その割り当てられた絶対アドレスAA
i (i=0,1,2,・・・)が1対1に対応付けて
格納されている。
【0078】尚、変換シンボルテーブル290aは、前
述した従来の変数シンボルテーブルと同様な内部構成と
なっているので、その内部構成についての説明は省略す
る。ところで、上記入力ソースファイル210、中間フ
ァイル250p、中間ファイル250K、オブジェクト
ファイル250c、及びソース群ファイル280は、同
一の記憶媒体にまとめて、または複数の記憶媒体に分散
されて格納される。また、上記記憶媒体として、磁気デ
ィスクや光磁気ディスクまたは磁気テープ等が用いられ
る。
【0079】続いて、上記構成の実施例の動作を説明す
る。まず、プリプロセス部230p、解析部230k、
及びコード生成部230cから成るCコンパイラの動作
を、図8のフローチャートを参照しながら説明する。こ
のCコンパイラは、利用者が入力装置220からCコン
パイル命令のコマンドを入力することにより、CPU2
30により起動される。
【0080】CPU230は、まず、プリプロセス部2
30pを起動する。プリプロセス部230pは、入力ソ
ースファイル210から入力ソースプログラムをメモリ
290に読み出し、その入力ソースプログラム内の#in
clude 文が記述された行を、その#include 文により指
定されたソースファイルに置き換える(S22)。プリ
プロセス部220pは、この処理を、ソースファイル群
280から#include 文によって指定されたソースファ
イルを読み出すことにより行う。
【0081】続いて、プリプロセス部230pは、上記
入力ソースプログラム内の#if文等の条件コンパイル命
令について、その条件コンパイル命令により指定されて
いる条件に基づき、上記入力ソースプログラム内の一部
を無効にする(S22)。
【0082】次に、プリプロセス部230pは、入力ソ
ースプログラム内の各#define文の指示に応じて、各#
define文におけるPC識別子PIDi (i=0,1,
2,・・・)を定義された変数名VNi (i=0,1,
2,・・・)に置き換えると共に(SC23)、その字
句の置き換えが行われたPC識別子PIDi (i=0,
1,2,・・・)と変数名VNi (i=0,1,2,・
・・)とを、別名定義ファイル270a内に図6に示す
ような形式で対応付けて登録する。また、このとき、変
数名のデータ長Li (i=0,1,2,・・・)も登録
する(SC24)。
【0083】このように、本実施例では、#define文に
ついては単に、入力ソースプログラム内のPC識別子P
IDi (i=0,1,2,・・・)を指定された変数名
VN i (i=0,1,2,・・・)に置き換えるだけで
なく、入力ソースプログラム内の置き換えられた全ての
PC識別子PIDi (i=0,1,2,・・・)を、そ
の置き換わった変数名VNi (i=0,1,2,・・
・)に対応付けて別名定義ファイル270aに登録して
おく。
【0084】以上のようにして、プリプロセス部230
pは、入力ソースファイル210に格納されている入力
ソースプログラムから、拡張ソースコードと別名定義フ
ァイル270aとから成る中間ファイル250pを生成
する。
【0085】続いて、CPU230は、解析部230k
を起動させる。解析部230kは、中間ファイル250
pから拡張ソースコードをメモリ290に読み出し、所
定の構文規則に基づいて構文解析を行い、次にその構文
解析によって得られた結果についてさらに意味解析を行
う(S25)。
【0086】次に、解析部230kは、上記意味解析に
おいて、上記拡張ソースコードからメモリ290上に領
域が割り当てられる変数名を全てリストアップし、それ
らの変数名について前記図13に示す変数シンボルテー
ブル100と同様な形式の変数シンボルテーブル270
cを作成する(S26)。
【0087】さらに、解析部230kは、上記構文解析
処理により得られた構文を、より最適なコードが生成で
きるような構文に変更する。そしてその構文からアセン
ブリ言語で記述されたアセンブリ言語プログラムを生成
し、そのアセンブリ言語プログラムと上記変数シンボル
テーブル270c、及び上記中間ファイルから読み出し
た別名定義ファイル270aとから成る中間ファイル2
50kを作成する(S27)以上のようにして、解析部
230kの処理が終了すると、CPU230は、次に、
コード生成部230cを起動させる。
【0088】コード生成部230cは中間ファイル25
0kから上記アセンブリ言語プログラム、変数シンボル
テーブル270C、及び別名定義ファイル270aを読
み出してメモリ290上にロードし、まず上記アセンブ
リ言語プログラム内の変数について相対アドレスを設定
するメモリ割り付けを行い、そのメモリ割り付けの結果
を基に、変数シンボルテーブル270c内の全ての変数
について対応する相対アドレスを登録し、変数シンボル
テーブル270cを完成させる(S28)。
【0089】続いて、コード生成部230cは上記アセ
ンブリ言語プログラムをアセンブルし、CPU230が
実行可能なコードから成るリロケータブルなオブジェク
ト・プログラム(Object Program )を生成する。そし
て、コード生成部230cは、そのオブジェクト・プロ
グラム、上記のようにして完成された変数シンボルテー
ブル270c、及びメモリ290上にロードしてある別
名定義ファイル270aから成るオブジェクト・ファイ
ル250cを生成する(S29)。
【0090】このようにして、入力ソースプログラムが
Cコンパイラによりコンパイルされて、対応するオブジ
ェクト・プログラムが生成され、また、さらにそのオブ
ジェクト・プログラムをデバッガ230dによりデバッ
グする際の補助情報となる別名定義ファイル270a及
び変数シンボルテーブル270cも生成される。
【0091】次に、上述のようにしてCコンパイラによ
り作成されたオブジェクト・プログラムを、デバッガ2
30dを用いてデバッグする動作の本発明に係わる要部
を説明する。
【0092】まず、利用者はデバッグをしようとするオ
ブジェクト・プログラムをメモリ290上の所定領域に
ロードした値、入力装置220からデバッガ230dを
起動させるためのコマンドを入力する。このことによ
り、CPU230は、デバッガ230dを起動させ、デ
バッガ230dはデバッグ・コマンドの入力待ちとな
る。
【0093】この状態において、あるソースプログラム
をデバッグするために、実際にそのソースプログラムの
オブジェクト・プログラム(以後、単にプログラムと記
述した場合、オブジェクト・プログラムを指す)を実行
させて、プログラムの実行途中またはプログラムの実行
終了後のある変数(上記ソースプログラムで用いられて
いる変数)の値を表示装置240に表示させたい場合に
は、利用者は、ブレーク・ポイント設定用のデバッグ・
コマンドを入力して、CPU230の主メモリ(メモリ
290の一部または全部)上にロードされている上記オ
ブジェクト・プログラムの上記ある変数のロードアドレ
スにブレークポイントを設定する(但し、プログラムの
実行終了後の上記ある変数の値を見たいのであれば、ブ
レーク・ポイントを設定する必要は無い)。
【0094】続いて、利用者は、上記プログラムを実行
させるためのデバッグ・コマンドを入力装置220から
入力する。このことにより、デバッガ230dは、メモ
リ290上にロードされている上記プログラムを実行さ
せる。
【0095】そして、このデバッガ230dにより実行
させられたプログラムは、所定のブレーク・ポイントで
停止する(ブレーク・ポイントを予め設定していた場合
のとき、ブレーク・ポイントを設定していなければ、プ
ログラムは最後まで実行される)。
【0096】次に、上記ブレーク・ポイントでの停止ま
たは上記プログラムの実行終了後、利用者が、ある変数
の値を表示装置240に表示させてデバッグ処理する場
合の動作を、図9のフローチャートを参照しながら説明
する。
【0097】利用者が、入力装置220から上記ソース
プログラム内で用いられているある変数名(#define文
によりPC識別子に置き換えられた変数名も含む)を有
する変数の値を表示するようにを指示するデバッグ・コ
マンドを入力すると 、デバッガ230dは、そのデバ
ッグ・コマンドをCPU230の特に図示していない入
力インタフェースを介して入力する(S31)。
【0098】そして、デバッガ230dは、上記デバッ
グ・コマンドを入力すると、まず、そのデバッグ・コマ
ンドにより指定されている変数名が変数シンボルテーブ
ル270c内に登録されているかどうか検索する(S3
2)。
【0099】そして、デバッガ230dは、上記検索に
成功すると(S33,YES)、変数シンボルテーブル
270cからその変数名に対応する相対アドレス及びデ
ータ長を読み出し、上記プログラムのメモリ290上の
格納先頭アドレスを基に、上記変数名を有する変数の相
対アドレスをメモリ290上の絶対アドレスに変換する
(S34)。そして、デバッガ230dはメモリ290
上の上記絶対アドレスから始まる所定データ長の変数の
値を、CPU230の特に図示していない出力インタフ
ェースを介して表示装置240に表示させる(S3
8)。
【0100】このように、利用者は、ソースプログラム
で用いられている通常の変数名(#define文によりPC
識別子を置き換えた変数名以外の通常の変数名)をパラ
メータとするデバッグコマンドを用いて、それらの変数
名を有する変数の値の表示や書き換え等のデバッグ操作
を従来のデバッガ(デバッグ装置)と同様に行うことが
できる。
【0101】一方、デバッガ230dは、上記検索処理
S32において変数名の検索に成功しなかった場合には
(S33,NO)、次に別名定義ファイル270aに上
記指定変数名が登録されているかどうかを検索する(S
35)。そして、そのデバッガ230dは、その検索に
成功すれば(S36,YES)、別名定義ファイルから
上記変数名VNi (i=0,1,2,・・・)に対応す
るPC識別子PIDi(i=0,1,2,・・・)とそ
のデータ長Li (i=0,1,2,・・・)を読み出
し、次にPC識別子/絶対アドレス変換テーブル270
bを参照して、上記PC識別子PIDi (i=0,1,
2,・・・)を絶対アドレスに変換する(S37)。そ
して、デバッガ230dは、その絶対アドレスを基に上
記変数名VNi (i=0,1,2,・・・)を有する変
数の値の表示(メモリ・ダンプ)や、その値の書き換え
等の当該処理をおこなう(S38)。
【0102】このように、本実施例では、ソースプログ
ラムにある変数名で記述していた入出力リレーやタイマ
等について、その変数名を#define文により所定の絶対
アドレスが予め割り付けられているPC識別子に置き換
ええるようにした場合でも、その変数名を用いてデバッ
グすることができる。したがって、ソースプログラム作
成者は、上記変数名を、プログラム完成後、だいぶ時間
が経過しても対応する入出力リレーやタイマ等を直ちに
思い出すことができるような名称にしておくことによ
り、ソースプログラム作成のみならず、ソースプログラ
ムの保守も容易になる。また、ソースプログラムの保守
は、必ずしもソースプログラム作成者が行うとは限らな
いので、ソースプログラム作成者以外の人がソースプロ
グラムのデバッグを行う場合にも、そのデバッグ作業が
容易になる。
【0103】一方、デバッガ230dは、上記検索処理
S36において検索が不成功に終わった場合には、利用
者が指定した変数名が、ソースプログラム内で用いられ
ていない不正の変数名であるものと判断して、その旨を
示すエラーメッセージをCPU230の表示インタフェ
ースを介して表示装置240に出力する(S38)。こ
のことにより、表示装置240には上記エラーメッセー
ジが表示され、利用者はその表示を見て自分が不正な変
数名を用いてデバッグ・コマンドを入力したことを直ち
に知ることができる。
【0104】尚、上記実施例では、別名定義ファイル2
70aの1レコードを〔変数名,データ長,PC識別
子〕の構成としているが(図6参照)、図10に示すよ
うに1レコードの構成を〔変数名,データ長,絶対アド
レス〕という形式にしてもよい(絶対アドレスは、PC
識別子の絶対アドレスを示す)。このようなレコード構
成の別名定義ファイルは、プリプロセス部230pが、
前記図8に示すフローチャートの処理S24で、PC識
別子PIDi (i=0,1,2,・・・)をPC識別子
/絶対アドレス変換テーブル270bを参照して対応す
る絶対アドレスAADi (i=0,1,2,・・・)に
変換することにより容易に作成できる。
【0105】別名定義ファイルをこのような構成とした
場合、デバッガ230dは、#define文によりPC識別
子に置き換えられた変数名を、その別名定義ファイルを
参照するだけで、直ちにその変数名を有する変数のアド
レスを取得できるため(上記実施例の場合には、別名定
義ファイル270a以外にPC識別子/絶対アドレス変
換テーブル270cの参照も必要)、上記実施例よりも
当該絶対アドレスを高速に取得でき、デバッグの処理速
度が向上するという利点が生じる。
【0106】次に、図11は本発明の他の実施例のシス
テム構成図である。この実施例は、上述した前記図5に
示すシステムにさらに通信装置300を付加した構成と
なっている。
【0107】この通信装置300は、RS−232C等
の通信インタフェースを有し、この通信インタフェース
を介して特に図示していないターゲットマシン(例え
ば、PC(プログラマブル・コントローラ)に接続さ
れ、CPU230とターゲットマシンとの間のデータ伝
送を制御する。そして、入力装置220からオブジェク
ト・プログラムのロードを指示するロードコマンドが入
力された場合、CPU230の制御によりオブジェクト
ファイル250Cに格納されているオブジェクト・プロ
グラムをターゲットマシンの主メモリにロードする。ま
た、ターゲットマシンのデバッグ時においては、入力装
置220から入力されるデバッグコマンドのターゲット
マシンとの間での送信、応答を制御する。
【0108】このような構成とすることにより、この実
施例では、ソフトプログラムのデバッグ時にそのオブジ
ェクト・プログラムをメモリ290ではなく、ターゲッ
トマシンの主メモリにロードして、直接ターゲットマシ
ン上でそのオブジェクト・プログラムを実行させながら
デバッグを行うことが可能になる。したがって、図11
に示すデバッグ装置側でターゲットマシン上でのオブジ
ェクト・プログラムの動作をエシュレートする必要が無
くなり、デバッグ装置側の負荷が軽減される。
【0109】また、上記実施例ではC言語で記述された
ソースプログラムをコンパイルするCコンパイラを取り
上げたが、本発明は、Cコンパイラに限定されるもので
はなく、予約語に対して任意の変数名を与える定義文を
記述可能なあらゆるプログラム言語をコンパイル対象と
する全てのコンパイラ及びそのコンパイラの出力結果を
用いてデバッグ処理を行う全てのデバッガ(デバッグ装
置)に適用可能なものである。
【0110】
【発明の効果】第1の発明及び第2の発明によれば、予
約語をある変数名に置き換える定義文が記述されたソー
スプログラムをコンパイルする際、従来は不可能であっ
た変数名とその予約語(第1の発明が対応)、またはそ
の変数名とその予約語に予め割り付けられているアドレ
ス(第2の発明が対応)とが対応付けられたファイル
(テーブル)を自動的に作成できる。
【0111】また、第3または第4の発明によれば、上
記定義文によってある予約語に置き換えられた変数名を
パラメータとするデバッグ・コマンドが入力されたと
き、その変数名を有する変数のアドレスを、上記第1ま
たは第2の発明によって作成された上記ファイル(テー
ブル)を参照して求め、その変数に対して上記デバッグ
・コマンドによって指定された当該処理を行うので、従
来は不可能であった上記定義文で定義される特殊な変数
名を用いたデバッグ操作が可能になる。したがって、上
記のような特殊な変数名を有する変数に係わるデバッグ
操作を、それらの変数に実際に割り付けられているアド
レスを知らなくても行うことができるようになるため、
デバッグ操作が容易になり、デバッグの作業効率が従来
よりも著しく向上する。
【図面の簡単な説明】
【図1】本発明の原理ブロック図(その1)である。
【図2】本発明の原理ブロック図(その2)である。
【図3】本発明の原理ブロック図(その3)である。
【図4】本発明の原理ブロック図(その4)である。
【図5】本発明の一実施例のシステム構成図である。
【図6】別名定義ファイルの内部構成図である。
【図7】PC識別子/絶対アドレス変換テーブルの内部
構成図である。
【図8】本発明の一実施例のCコンパイラの動作を説明
するフローチャートである。
【図9】本発明の一実施例のデバッガの動作を説明する
フローチャートである。
【図10】別名定義ファイルの他の構成例を示す図であ
る。
【図11】本発明の他の実施例のシステム構成図であ
る。
【図12】従来のCコンパイラの動作を説明するフロー
チャートである。
【図13】変数シンボルテーブルの一構成例を示す図で
ある。
【図14】従来のデバッガの動作を説明するフローチャ
ートである。
【図15】Cコンパイラのプリプロセス部により行われ
る#define文に対する処理を説明する図である。
【符号の説明】
1,11 ファイル作成手段 2,12 変数名置き換え手段 3,13 シンボルマップ作成手段 21,31 変数名検索手段 22,32 第1のアドレス出力手段 23,33 第2のアドレス出力手段 24,34 デバッグ処理手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 予約語に対して任意の変数名を与える定
    義文を記述することが可能な言語で記述されたソースプ
    ログラムを、計算機が実行可能なコードから成る目的プ
    ログラムに翻訳する言語翻訳プログラムであって、 前記ソースプログラム内に記述されている全ての前記定
    義文に基づいて、それらの各定義文で定義されている予
    約語と変数名との対応関係を記憶する別名定義ファイル
    を作成するファイル作成手段(1)と、 前記ソースプログラム内の前記定義文によって定義され
    ている変数名を、その定義文によって定義されている予
    約語に置き換える変数名置き換え手段(2)と、 前記ソースプログラム内の前記定義文によって定義され
    ている変数名以外の各変数名に対して相対アドレスを割
    り付け、上記各変数名とその各変数名に割り付けられた
    相対アドレスとの対応関係を記憶する変数シンボルマッ
    プを作成するシンボルマップ作成手段(3)と、 を有することを特徴とする言語翻訳プログラム。
  2. 【請求項2】 予約語に対して任意の変数名を与える定
    義文を記述することが可能な言語で記述されたソースプ
    ログラムを、計算機が実行可能なコードから成る目的プ
    ログラムに翻訳する言語翻訳プログラムであって、 前記ソースプログラム内に記述されている全ての前記定
    義文に基づいて、それらの各定義文で定義されている予
    約語に割り付けられているアドレスと変数名との対応関
    係を記憶する別名定義ファイルを作成するファイル作成
    手段(11)と、 前記ソースプログラム内の前記定義文によって定義され
    ている変数名を、その定義文によって定義されている予
    約語に置き換える変数名置き換え手段(12)と、 前記ソースプログラム内の前記定義文によって定義され
    ている変数名以外の各変数名に対して相対アドレスを割
    り付け、上記各変数名とその各変数名に割り付けられた
    相対アドレスとの対応関係を記憶する変数シンボルマッ
    プを作成するシンボルマップ作成手段(13)と、 を有することを特徴とする言語翻訳プログラム。
  3. 【請求項3】 請求項1記載の言語翻訳プログラムによ
    り翻訳された目的プログラムをデバッグするデバッグ装
    置であって、 ある変数名をパラメータとするデバッグ用コマンドが入
    力されたとき、その変数名が前記別名定義ファイルまた
    は前記変数シンボルマップのいずれに登録されているか
    を検索する変数名検索手段(21)と、 該変数名検索手段(21)の検索結果に基づいて、前記
    別名定義ファイルを参照して前記定義文によって前記変
    数名に置き換えられた予約語を見つけ、その予約語に割
    り付けられているアドレスを出力する第1のアドレス出
    力手段(22)と、 前記変数名検索手段(21)の検索結果に基づいて、前
    記変数シンボルマップから前記変数名の相対アドレスを
    取り出し、その相対アドレスまたはメモリ上の 絶対アドレスを出力する第2のアドレス出力手段(2
    3)と、前記第1のアドレス出力手段(22)または前
    記第2のアドレス出力手段(23)から入力されるアド
    レスの内容に対して、前記入力デバッグコマンドによっ
    て指定された処理を行うデバッグ処理手段(24)と、 を有することを特徴とするデバッグ装置。
  4. 【請求項4】 請求項2記載の言語翻訳プログラムによ
    り翻訳された目的プログラムをデバッグするデバッグ装
    置であって、 ある変数名をパラメータとするデバッグ用コマンドが入
    力されたとき、その変数名が前記別名定義ファイルまた
    は前記変数シンボルマップのいずれに登録されているか
    を検索する変数名検索手段(31)と、 該変数名検索手段(31)の検索結果に基づいて、前記
    別名定義ファイルを参照して前記定義文によって前記変
    数名に置き換えられた予約語に割り付けらているアドレ
    スを出力する第1のアドレス出力手段(32)と、 前記変数名検出手段(31)の検索結果に基づいて、前
    記変数シンボルマップから前記変数名の相対アドレスを
    取り出し、その相対アドレスまたはメモリ上の絶対アド
    レスを出力する第2のアドレス出力手段(33)と、 前記第1のアドレス出力手段(32)または前記第2の
    アドレス出力手段(33)から入力されるアドレスの内
    容に対して、前記入力デバッグコマンドによって指定さ
    れた処理を行うデバッグ処理手段(34)と、 を有することを特徴とするデバッグ装置。
JP4140356A 1992-06-01 1992-06-01 言語翻訳プログラム及びその出力結果を用いるデバッグ装置 Pending JPH05334096A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4140356A JPH05334096A (ja) 1992-06-01 1992-06-01 言語翻訳プログラム及びその出力結果を用いるデバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4140356A JPH05334096A (ja) 1992-06-01 1992-06-01 言語翻訳プログラム及びその出力結果を用いるデバッグ装置

Publications (1)

Publication Number Publication Date
JPH05334096A true JPH05334096A (ja) 1993-12-17

Family

ID=15266924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4140356A Pending JPH05334096A (ja) 1992-06-01 1992-06-01 言語翻訳プログラム及びその出力結果を用いるデバッグ装置

Country Status (1)

Country Link
JP (1) JPH05334096A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957419B2 (en) 2002-03-15 2005-10-18 International Business Machines Corporation Facilitating the use of aliases during the debugging of applications
JP5079166B1 (ja) * 2011-07-01 2012-11-21 三菱電機株式会社 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
WO2013005350A1 (ja) * 2011-07-01 2013-01-10 三菱電機株式会社 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
US8769517B2 (en) 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
WO2021181801A1 (ja) * 2020-03-13 2021-09-16 オムロン株式会社 ロボット制御システムおよび制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957419B2 (en) 2002-03-15 2005-10-18 International Business Machines Corporation Facilitating the use of aliases during the debugging of applications
US8769517B2 (en) 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
JP5079166B1 (ja) * 2011-07-01 2012-11-21 三菱電機株式会社 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
WO2013005350A1 (ja) * 2011-07-01 2013-01-10 三菱電機株式会社 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
US8832670B2 (en) 2011-07-01 2014-09-09 Mitsubishi Electric Corporation Programmable controller and programming tool for communication with legacy equipment
WO2021181801A1 (ja) * 2020-03-13 2021-09-16 オムロン株式会社 ロボット制御システムおよび制御方法

Similar Documents

Publication Publication Date Title
Fischer et al. The POE language-based editor project
US7627851B2 (en) Modification method for modifying a source code
JPH0760326B2 (ja) 第二プログラム可能論理制御器上で使用するための第一プログラム可能論理制御器上で使用するためのプログラム可能論理制御器ハードウエア形態及び対応する制御プログラムの変換方法
JP2007511834A (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
JPH05334096A (ja) 言語翻訳プログラム及びその出力結果を用いるデバッグ装置
KR20090011974A (ko) 컴파일 대상 파일 추출 방법
KR100417655B1 (ko) 최적화과정을참조하면서동작검증을행하도록디버그정보를생성하는디버그정보생성장치및프로그래머가최적화과정을의식하면서동작검증을할수있는디버그장치로이루어지는프로그램개발시스템
GB2420638A (en) Method of substituting code fragments in Internal Representation
JPH0756745A (ja) 言語処理プログラムのコンパイラ処理方式
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH0390933A (ja) ソフトウェアプログラム自動生成方式
CN109814869B (zh) 应用于机器人的解析方法、系统及计算机可读存储介质
JP2607975B2 (ja) デバック方式
JP3044953B2 (ja) 言語処理システムのシンボル処理方式
JPH07105014A (ja) 言語処理システムのシンボル処理方式
Haberman System development environments
KR19990030244A (ko) 2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법
JPH06119203A (ja) デバック行削除装置
JP2751423B2 (ja) プログラムデバッグ処理方式
JPH02100732A (ja) プログラム文法チェック方式
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH08161179A (ja) 一文実行方法
JPH0488531A (ja) コード最適化方式
JPH05210411A (ja) ロボットプログラム翻訳方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010619