JPH04340629A - 言語処理装置 - Google Patents
言語処理装置Info
- Publication number
- JPH04340629A JPH04340629A JP3140807A JP14080791A JPH04340629A JP H04340629 A JPH04340629 A JP H04340629A JP 3140807 A JP3140807 A JP 3140807A JP 14080791 A JP14080791 A JP 14080791A JP H04340629 A JPH04340629 A JP H04340629A
- Authority
- JP
- Japan
- Prior art keywords
- language processing
- program
- processing device
- intermediate code
- error notification
- 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
- 230000006870 function Effects 0.000 claims abstract description 27
- 238000007689 inspection Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、言語処理装置に関し、
特に、ユーザが特定の検査を追加可能にした言語処理装
置に関するものである。
特に、ユーザが特定の検査を追加可能にした言語処理装
置に関するものである。
【0002】
【従来の技術】従来、この種の言語処理装置の詳細は、
例えば、1977年にアディソン・ウェスリー・パブリ
ッシング・カンパニーより発行されたエイ・ブイ・エイ
ホ(A.V.Ahao)及びジェイ・ディ・ウルマン(
J.D.UlIman)著作の「コンパイラ設計の原理
(Principles of Compiler
Design)」に記載されているように、主とし
て言語処理の字句解析部及び構文解析部において対象と
する言語仕様に合致していない又は実行結果がプログラ
マの予期しない結果となる場合にエラーというメッセー
ジを通知し、言語仕様のうち特定の機能を使用した時警
告を通知する場合は、これらの字句解析部又は構文解析
部の処理の内部を機能毎に修正しているため、容易に警
告する機能を盛り込むことができなかった。
例えば、1977年にアディソン・ウェスリー・パブリ
ッシング・カンパニーより発行されたエイ・ブイ・エイ
ホ(A.V.Ahao)及びジェイ・ディ・ウルマン(
J.D.UlIman)著作の「コンパイラ設計の原理
(Principles of Compiler
Design)」に記載されているように、主とし
て言語処理の字句解析部及び構文解析部において対象と
する言語仕様に合致していない又は実行結果がプログラ
マの予期しない結果となる場合にエラーというメッセー
ジを通知し、言語仕様のうち特定の機能を使用した時警
告を通知する場合は、これらの字句解析部又は構文解析
部の処理の内部を機能毎に修正しているため、容易に警
告する機能を盛り込むことができなかった。
【0003】
【発明が解決しようとする課題】上述した従来の言語処
理装置の言語仕様の特定機能利用によるエラーの通知は
、対象とするエラーの内容に合わせて言語処理プログラ
ムの各中間処理を修正しているため、エラーの内容を変
更、追加又は削除したい場合に容易に修正できない。 さらに、利用者に合わせてあるいは利用者自らエラーの
検出を追加できない欠点がある。そこで、本発明の目的
は、容易に検査内容を追加することのできる言語処理装
置を得ることである。
理装置の言語仕様の特定機能利用によるエラーの通知は
、対象とするエラーの内容に合わせて言語処理プログラ
ムの各中間処理を修正しているため、エラーの内容を変
更、追加又は削除したい場合に容易に修正できない。 さらに、利用者に合わせてあるいは利用者自らエラーの
検出を追加できない欠点がある。そこで、本発明の目的
は、容易に検査内容を追加することのできる言語処理装
置を得ることである。
【0004】
【課題を解決するための手段】本発明の言語処理装置は
、言語処理装置が起動されたときの起動パラメータリス
トを判別し、どの検査プログラムを起動するかを抽出す
る検査プログラム識別手段と、言語処理の中間コード生
成部以後において、抽出された起動すべき検査プログラ
ムを実際に起動する検査プログラム起動手段と、起動さ
れるべき検査プログラムが検査するために必要な情報が
格納されている中間コードを得る中間コード操作手段と
、起動されるべき検査プログラムが検査結果をエラー通
知文としてエラー通知文リスト中に言語処理装置が自ら
出力するエラー通知と共に出力させるエラー通知出力手
段を有している。
、言語処理装置が起動されたときの起動パラメータリス
トを判別し、どの検査プログラムを起動するかを抽出す
る検査プログラム識別手段と、言語処理の中間コード生
成部以後において、抽出された起動すべき検査プログラ
ムを実際に起動する検査プログラム起動手段と、起動さ
れるべき検査プログラムが検査するために必要な情報が
格納されている中間コードを得る中間コード操作手段と
、起動されるべき検査プログラムが検査結果をエラー通
知文としてエラー通知文リスト中に言語処理装置が自ら
出力するエラー通知と共に出力させるエラー通知出力手
段を有している。
【0005】
【作用】検査プログラムは、検査プログラム起動手段で
起動され、中間コード操作手段で中間コードの情報が取
得され、その解析結果からエラー通知出力手段でエラー
が出力される。
起動され、中間コード操作手段で中間コードの情報が取
得され、その解析結果からエラー通知出力手段でエラー
が出力される。
【0006】
【実施例】以下、本発明の一実施例について図面を参照
して説明する。図1は、本発明の言語処理装置を示すブ
ロック図で、言語処理装置101は入力として原始プロ
グラム113を受け取り、目的プログラム115を生成
する。本発明は、現在の言語処理装置を改良して、言語
処理装置101から独立した外部の検査プログラム11
7により、従来に比して容易に検査の追加を行うことを
意図したものである。
して説明する。図1は、本発明の言語処理装置を示すブ
ロック図で、言語処理装置101は入力として原始プロ
グラム113を受け取り、目的プログラム115を生成
する。本発明は、現在の言語処理装置を改良して、言語
処理装置101から独立した外部の検査プログラム11
7により、従来に比して容易に検査の追加を行うことを
意図したものである。
【0007】先に述べた「コンパイラ設計の原理」に記
載されているように、標準的なコンパイラの構造は、入
力された原始プログラム113を字句解析部107で要
素に分解し、構文解析部108が構文を解析及び検査し
た後、中間コード生成部109が解析された結果を用い
て中間コード114を生成する。さらに生成された中間
コード114をコードの最適化部110で効率がよくな
るように修正し、その結果からコード生成部111が機
械語命令を生成し目的プログラム115とする。エラー
通知生成部112は、字句解析部107、構文解析部1
08、中間コード生成部109、最適化部110、コー
ド生成部111及び制御部106といった言語処理装置
内の各処理において検出されたエラーを利用者に通知す
るための処理を行う。言語処理装置101の制御部10
6は、これらの各中間処理を順に呼び出し、制御してい
る。
載されているように、標準的なコンパイラの構造は、入
力された原始プログラム113を字句解析部107で要
素に分解し、構文解析部108が構文を解析及び検査し
た後、中間コード生成部109が解析された結果を用い
て中間コード114を生成する。さらに生成された中間
コード114をコードの最適化部110で効率がよくな
るように修正し、その結果からコード生成部111が機
械語命令を生成し目的プログラム115とする。エラー
通知生成部112は、字句解析部107、構文解析部1
08、中間コード生成部109、最適化部110、コー
ド生成部111及び制御部106といった言語処理装置
内の各処理において検出されたエラーを利用者に通知す
るための処理を行う。言語処理装置101の制御部10
6は、これらの各中間処理を順に呼び出し、制御してい
る。
【0008】本発明では、最初に、検査プログラム識別
手段102で、言語処理装置を起動するときに与えられ
る起動パラメータリストを判別し、起動すべき外部の検
査プログラム117を抽出する。この検査プログラム1
17の機能は、原始プログラムの解析結果の情報が格納
されている中間コード114を利用し、検査することで
ある。中間コード生成部109の直後で、検査プログラ
ム起動手段103は、検査プログラムで検査を行わせる
ために、外部の検査プログラム117を起動する。この
とき、起動された検査プログラム117は、言語処理の
中間過程で生成され、原始プログラム113の解析結果
の情報が含まれている中間コード114を言語処理装置
101の中間コード操作手段104を用いて取得し、解
析を行う。この解析の結果として、言語処理装置101
中のエラー通知出力手段105によりエラー通知を出力
させる。これら、検査プログラムは、様々な種類の検査
を行うことが可能である。
手段102で、言語処理装置を起動するときに与えられ
る起動パラメータリストを判別し、起動すべき外部の検
査プログラム117を抽出する。この検査プログラム1
17の機能は、原始プログラムの解析結果の情報が格納
されている中間コード114を利用し、検査することで
ある。中間コード生成部109の直後で、検査プログラ
ム起動手段103は、検査プログラムで検査を行わせる
ために、外部の検査プログラム117を起動する。この
とき、起動された検査プログラム117は、言語処理の
中間過程で生成され、原始プログラム113の解析結果
の情報が含まれている中間コード114を言語処理装置
101の中間コード操作手段104を用いて取得し、解
析を行う。この解析の結果として、言語処理装置101
中のエラー通知出力手段105によりエラー通知を出力
させる。これら、検査プログラムは、様々な種類の検査
を行うことが可能である。
【0009】図2は、検査プログラム識別手段102の
一実施例を説明するフローチャートである。図2におい
て、検査プログラムの識別手段は起動パラメータリスト
118を取得する手続き201から開始する。ここで、
起動パラメータリスト118は、言語処理装置101を
起動するときに利用者によって設定されるものであり、
目的プログラムリストを出力する、最適化を行う、又各
種の選択的な処理を行わせるための内容を示している。 手続き202でこのパラメータリストを解析し、パラメ
ータの起動すべき検査プログラムのファイル名を示して
いる文字列を抜き出す。手続き203はその検査プログ
ラムの指定がパラメータリスト中にあるか否かを判定し
ており、指定されている場合、手続き204がこれらを
起動プログラム表205へ登録する。ここで、パラメー
タリスト中に起動すべき検査プログラムが複数指定され
ている場合、起動プログラム表205に複数のエントリ
が存在することとなる。この起動プログラム表205は
、後ほど検査プログラム起動手段103によって参照さ
れる。図2の例では、起動プログラム表205中のch
eckpgmというファイル名を持つ検査プログラムが
登録されている。
一実施例を説明するフローチャートである。図2におい
て、検査プログラムの識別手段は起動パラメータリスト
118を取得する手続き201から開始する。ここで、
起動パラメータリスト118は、言語処理装置101を
起動するときに利用者によって設定されるものであり、
目的プログラムリストを出力する、最適化を行う、又各
種の選択的な処理を行わせるための内容を示している。 手続き202でこのパラメータリストを解析し、パラメ
ータの起動すべき検査プログラムのファイル名を示して
いる文字列を抜き出す。手続き203はその検査プログ
ラムの指定がパラメータリスト中にあるか否かを判定し
ており、指定されている場合、手続き204がこれらを
起動プログラム表205へ登録する。ここで、パラメー
タリスト中に起動すべき検査プログラムが複数指定され
ている場合、起動プログラム表205に複数のエントリ
が存在することとなる。この起動プログラム表205は
、後ほど検査プログラム起動手段103によって参照さ
れる。図2の例では、起動プログラム表205中のch
eckpgmというファイル名を持つ検査プログラムが
登録されている。
【0010】図3は、検査プログラム起動手段103の
一実施例を説明するフローチャートである。図3におい
て、始めの手続き301で先の検査プログラム識別手段
102が設定した起動プログラム表205からエントリ
を一つづつ取り出し、次に続く手続き302でこの起動
プログラム表205から正しく取り出した検査プログラ
ムが存在するか否か調べる。手続き303では、手続き
301で起動プログラム表205から取り出した検査プ
ログラムを実際に起動する。この図3の例では、che
ckprgと言うファイル名を持つ検査プログラムが起
動される。
一実施例を説明するフローチャートである。図3におい
て、始めの手続き301で先の検査プログラム識別手段
102が設定した起動プログラム表205からエントリ
を一つづつ取り出し、次に続く手続き302でこの起動
プログラム表205から正しく取り出した検査プログラ
ムが存在するか否か調べる。手続き303では、手続き
301で起動プログラム表205から取り出した検査プ
ログラムを実際に起動する。この図3の例では、che
ckprgと言うファイル名を持つ検査プログラムが起
動される。
【0011】図4は、中間コード操作手段104の構成
例を説明するブロックである。図4において、中間コー
ド操作手段104は、言語処理の中間処理で生成され、
原始プログラムの解析結果を含む中間コード114に対
する各種操作関数を含んでいる。図4における例では、
処理開始を宣言する処理開始関数401、中間コードを
一つ読み出す中間コード読出関数402、現在読み出し
た中間コードの次の中間コードに位置付ける次中間コー
ド位置付け関数403、特定の中間コードを読み出す特
定中間コード読出関数404、特定の中間コードを検索
し位置付ける特定中間コード検索関数405、さらに中
間コード操作処理の終了を宣言する処理終了関数406
が操作関数として含まれている。検査プログラム起動手
段103で起動される検査プログラム117は、これら
の操作関数を呼び出し、中間コードを読み出すことによ
って、原始プログラムの解析結果を取得し、所定の検査
を行うことができる。
例を説明するブロックである。図4において、中間コー
ド操作手段104は、言語処理の中間処理で生成され、
原始プログラムの解析結果を含む中間コード114に対
する各種操作関数を含んでいる。図4における例では、
処理開始を宣言する処理開始関数401、中間コードを
一つ読み出す中間コード読出関数402、現在読み出し
た中間コードの次の中間コードに位置付ける次中間コー
ド位置付け関数403、特定の中間コードを読み出す特
定中間コード読出関数404、特定の中間コードを検索
し位置付ける特定中間コード検索関数405、さらに中
間コード操作処理の終了を宣言する処理終了関数406
が操作関数として含まれている。検査プログラム起動手
段103で起動される検査プログラム117は、これら
の操作関数を呼び出し、中間コードを読み出すことによ
って、原始プログラムの解析結果を取得し、所定の検査
を行うことができる。
【0012】図5は、エラー通知出力手段105の構成
例を示すブロック図である。図5においてエラー通知出
力手段105は、言語処理の字句解析部107、構文解
析部108又は中間コード生成部109などの処理で検
出されるエラーを出力し利用者に通知するエラー通知文
リストを出力するための各種操作関数を含んでいる。図
5における例では、エラー通知文出力処理の開始を宣言
する処理開始関数501、出力するエラー通知文の種別
番号などを設定するエラー通知番号設定関数502、エ
ラー通知文中に利用者の理解を促進するために埋め込む
文字列を設定する埋め込み文字設定関数503、改行を
促進する行終了関数504、出力するエラー通知文リス
トの行及びページの制御を行う行/頁制御関数505、
さらにエラー通知文出力処理の終了を宣言する処理終了
関数506が操作関数として含まれている。検査プログ
ラム起動手段103で起動される検査プログラム117
は、これらの操作関数を呼び出し、中間コード114を
読み出すことによって行われた所定の検査の結果をエラ
ー通知文リスト116に出力することができる。
例を示すブロック図である。図5においてエラー通知出
力手段105は、言語処理の字句解析部107、構文解
析部108又は中間コード生成部109などの処理で検
出されるエラーを出力し利用者に通知するエラー通知文
リストを出力するための各種操作関数を含んでいる。図
5における例では、エラー通知文出力処理の開始を宣言
する処理開始関数501、出力するエラー通知文の種別
番号などを設定するエラー通知番号設定関数502、エ
ラー通知文中に利用者の理解を促進するために埋め込む
文字列を設定する埋め込み文字設定関数503、改行を
促進する行終了関数504、出力するエラー通知文リス
トの行及びページの制御を行う行/頁制御関数505、
さらにエラー通知文出力処理の終了を宣言する処理終了
関数506が操作関数として含まれている。検査プログ
ラム起動手段103で起動される検査プログラム117
は、これらの操作関数を呼び出し、中間コード114を
読み出すことによって行われた所定の検査の結果をエラ
ー通知文リスト116に出力することができる。
【0013】
【発明の効果】以上説明したように本発明は、字句解析
部又は構文解析部において従来より検査している言語仕
様に適合していないなどの検査以外に、対象とする言語
仕様の特定の機能を使ったか否かの検査を行いたい場合
、その検査を従来の言語処理装置の中で行わず独立した
処理とし、それを呼び出す手段及び処理が必要な中間コ
ード取得の手段ならびに検査結果を出力する手段を設け
たので、容易に検査内容を追加できる言語処理装置を得
ることができる。
部又は構文解析部において従来より検査している言語仕
様に適合していないなどの検査以外に、対象とする言語
仕様の特定の機能を使ったか否かの検査を行いたい場合
、その検査を従来の言語処理装置の中で行わず独立した
処理とし、それを呼び出す手段及び処理が必要な中間コ
ード取得の手段ならびに検査結果を出力する手段を設け
たので、容易に検査内容を追加できる言語処理装置を得
ることができる。
【図1】本発明の言語処理装置の一実施例を示すブロッ
ク図。
ク図。
【図2】図1の検査プログラム識別手段を説明するため
のフローチャート。
のフローチャート。
【図3】図1の検査プログラム起動手段を説明するため
のフローチャート。
のフローチャート。
【図4】図1の中間コード操作手段を説明するためのブ
ロック図。
ロック図。
【図5】図1のエラー通知出力手段を説明するためのブ
ロック図。
ロック図。
101 言語処理装置、102 検査プロ
グラム識別手段、103 検査プログラム起動手
段、104 中間コード操作手段、105
エラー通知出力手段、106 制御部、107
字句解析部、108 構文解析部、10
9 中間コード生成部、110 最適化部
、111 コード生成部、112 エラー
通知生成部、113 原始プログラム、114
中間コード、115 目的プログラム、1
16 エラー通知文リスト、117 検査
プログラム、118 起動パラメータリスト。
グラム識別手段、103 検査プログラム起動手
段、104 中間コード操作手段、105
エラー通知出力手段、106 制御部、107
字句解析部、108 構文解析部、10
9 中間コード生成部、110 最適化部
、111 コード生成部、112 エラー
通知生成部、113 原始プログラム、114
中間コード、115 目的プログラム、1
16 エラー通知文リスト、117 検査
プログラム、118 起動パラメータリスト。
Claims (1)
- 【請求項1】 原始プログラムを入力し目的プログラ
ムを生成する言語処理装置が、この言語処理処理装置が
対象とする言語仕様のうち特定の機能のいくつかを使用
している原始プログラムを入力したとき、エラー通知を
利用者に知らせるような機能を持つ外部の検査プログラ
ムを起動する場合において、前記言語処理装置の起動パ
ラメータリストを判別して、どの検査プログラムを起動
するかを抽出する検査プログラム識別手段と、抽出され
た起動すべき検査プログラムを実際に起動する検査プロ
グラム起動手段と、起動されるべき検査プログラムが、
検査を行うために、言語処理の中間コード生成部で生成
され、必要な情報が格納されている中間コードを得る中
間コード操作手段と、前記起動されるべき検査プログラ
ムが検査結果をエラー通知文としてエラー通知文リスト
中に言語処理装置が自ら出力するエラー通知と共に出力
させるエラー通知出力手段を含むことを特徴とする言語
処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3140807A JPH04340629A (ja) | 1991-05-17 | 1991-05-17 | 言語処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3140807A JPH04340629A (ja) | 1991-05-17 | 1991-05-17 | 言語処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04340629A true JPH04340629A (ja) | 1992-11-27 |
Family
ID=15277199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3140807A Pending JPH04340629A (ja) | 1991-05-17 | 1991-05-17 | 言語処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04340629A (ja) |
-
1991
- 1991-05-17 JP JP3140807A patent/JPH04340629A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1130518B1 (en) | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof | |
EP0785510A1 (en) | Program debugging system for debugging a program having a graphical user interface | |
US20080127113A1 (en) | Method and system for implementing watchpoints | |
EP0753814A2 (en) | Determining dynamic properties of programs | |
CN106371997B (zh) | 一种代码检查方法及装置 | |
CN111459495B (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
JP2008191963A (ja) | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム | |
JPH0748182B2 (ja) | プログラム・エラー検出方法 | |
US5987248A (en) | Debugging information display device | |
CN113434395A (zh) | 测试用例的自动化生成方法、装置、设备及介质 | |
CN114036072B (zh) | 一种支持自动化检测程序缺陷的方法和系统 | |
US5822589A (en) | Method for locating errors in a computer program | |
CN112631944A (zh) | 基于抽象语法树的源码检测方法及装置、计算机存储介质 | |
CN115495745B (zh) | 一种基于风险函数的工业软件源代码静态检测方法及系统 | |
US6611924B1 (en) | Reducing code size of debug output statements | |
US6546526B2 (en) | Active trace debugging for hardware description languages | |
CN113127367B (zh) | Android动态权限申请的缺陷检测方法 | |
JPH04340629A (ja) | 言語処理装置 | |
CN115237753A (zh) | 固件排错方法、系统、终端设备及存储介质 | |
Turner et al. | A suite of tools for the state-based testing of object-oriented programs | |
US7318221B2 (en) | Windows™ F-language interpreter | |
JPH06168111A (ja) | デバッグ文の自動作成方式 | |
JP2002288004A (ja) | プログラムソース処理装置、プログラムソース処理方法、およびプログラムソース処理プログラム | |
CN112148581A (zh) | 代码规范检查方法、装置、系统及存储介质 | |
CN110825650B (zh) | 单元测试覆盖精度检测方法及装置 |