JP2007265095A - ソースプログラム検証プログラム - Google Patents
ソースプログラム検証プログラム Download PDFInfo
- Publication number
- JP2007265095A JP2007265095A JP2006090123A JP2006090123A JP2007265095A JP 2007265095 A JP2007265095 A JP 2007265095A JP 2006090123 A JP2006090123 A JP 2006090123A JP 2006090123 A JP2006090123 A JP 2006090123A JP 2007265095 A JP2007265095 A JP 2007265095A
- Authority
- JP
- Japan
- Prior art keywords
- macro
- source program
- program
- replacement
- 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
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】ソースプログラムを翻訳する段階にて、前処理指令の実行を必要とするソースプログラム検証プログラムであって、前処理後ソースプログラムでのマクロ置換表示は、マクロの置換の並びの前後にマクロを示す文字を埋め込む手段と、そのマクロを示す文字からマクロ置き換えしたことを示す情報を得る手段を設けたものである。
【選択図】 図6
Description
図9は、プログラムファイルの構成図である。図9に示すように、プログラムファイル内(図略)にはソースプログラムファイル31と複数のインクルードファイル32とが設けられている。ソースプログラムファイル31内には、C言語で記述されたソースプログラム31aが記憶されている。このソースプログラム31aには、複数のマクロ定義(定義名)33と複数の参照命令34が記述されている。そして、各インクルードファイル32内には、各マクロ定義33に対する具体的な定義内容が記憶されている。
また、コンパイラではマクロ置き換え後、ソースプログラムを処理するので、そのソースプログラムにエラーなどを検出したときに、そのエラーがマクロ定義に問題があったとしてもマクロに関する情報が欠乏するため、マクロ置き換えに関する指摘を出力することができない。また、静的解析ツールでも同じことが言える。このため、前処理を行ったソースプログラムからは、マクロ置き換えに関する指摘を出力することができないという問題があった。
しかし、コンパイラや静的解析ツールが何らかの情報をマクロ置き換え後にソースプログラムから得ようとする場合、その都度マクロ置き換え情報を参照する必要があり、効率的ではない。
すなわち、前処理後ソースプログラムでのマクロ置換表示は、置き換えるマクロの置換の並びの前後にマクロを示す文字を埋め込む手段と、そのマクロを示す文字からマクロ定義の情報を得る手段を設けたものである。
図1は、ソースプログラム検証プログラムの構成図である。図1に示すように、ソースプログラム検証プログラム(ソースコード検証プログラム)2は、コンピュータ101のメモリ102上に記憶される。このソースプログラム検証プログラム2の目的は、ソースプログラム1を入力して、前処理後ソースプログラム6を出力することである。このソースプログラム検証プログラム2は幾つかの機能をもっているが、本発明の実施例としてマクロ定義処理部3とマクロ置き換え処理部4に特化して記述する。マクロ定義処理部3では、マクロ名とその置換の並びをマクロ定義テーブル5に出力する。
マクロ置き換え処理部4は、マクロ呼び出しによるマクロ名からマクロ定義テーブル5を走査し、その置換の並びを取り出す。そして、マクロの置換の並びをマクロ使用情報7に出力する。
図1に示すマクロ定義処理部3は、ソースプログラム1からマクロ定義を入力する毎に、マクロ定義テーブル5に1行を追加する。その1行に、ユニークな番号をマクロ番号8に、そのマクロ名をマクロ名9に、そして、その置換の並びを置換の並び10に格納する。
マクロ置き換え処理部4は、処理するマクロ名に対して、マクロ定義テーブル5からそのマクロ名のマクロ番号8と置換の並び10を抽出する。
このように前処理したものを図6に示す。
図6に示すように、if文16の条件式は、flg==TRUEとなっているため、通常に前処理を行った場合は、これは、flg==1 と処理されるだけである。本発明では、マクロ名TRUEのマクロ番号を値2とした場合、if文18の条件式に示す通り、特殊文字19で値2を囲んだマクロ展開前と、次にマクロの置換の並び20と、最後にマクロ展開後の文字列を展開する。
ここで本発明を静的解析ツールに応用した場合、TRUEマクロにより論理値を等式で比較していることが判明し、このコーディングを指摘することができる。
図7、図8は、エディタ画面を示している。
(1)前処理後のソースプログラムを眺めた場合、どこにマクロ呼び出しがあったかを明示的に表現することができる。
(2)コンパイラや静的解析ツールなどに応用した場合、マクロ呼び出しを前処理後ソースプログラムから効率的に得ることができる。
2 ソースコード検証プログラム(ソースプログラム検証プログラム)
3 マクロ定義処理部
4 マクロ置き換え処理部
5 マクロ定義テーブル
6 前処理後ソースプログラム
7 マクロ使用情報
8,12 マクロ番号
9 マクロ名
10,13 置換の並び
11,19 特殊文字
14 マクロ展開前
15 マクロ展開後
16,18 if文
17 TRUEマクロ
20 置換の並び
21 flg変数
22,23 特殊文字
Claims (1)
- ソースプログラムを翻訳する段階にて、前処理指令の実行を必要とするソースプログラム検証プログラムであって、
前記前処理指令の実行段階でのマクロ呼び出しの展開において、その展開前に前記マクロ展開前を示す文字と、
前記マクロの展開後にマクロ展開後を示す文字と、
を埋め込むことを特徴とするソースプログラム検証プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006090123A JP2007265095A (ja) | 2006-03-29 | 2006-03-29 | ソースプログラム検証プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006090123A JP2007265095A (ja) | 2006-03-29 | 2006-03-29 | ソースプログラム検証プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007265095A true JP2007265095A (ja) | 2007-10-11 |
Family
ID=38638007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006090123A Pending JP2007265095A (ja) | 2006-03-29 | 2006-03-29 | ソースプログラム検証プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007265095A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011113147A (ja) * | 2009-11-24 | 2011-06-09 | Nomura Research Institute Ltd | ソース解析プログラム、プリプロセッサ、レキサ、および構文木解析プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63257038A (ja) * | 1987-04-14 | 1988-10-24 | Nec Corp | 原始プログラム変換における対応識別情報付加方式 |
JPH02178841A (ja) * | 1988-12-29 | 1990-07-11 | Nec Corp | 言語処理プリプロセッサ |
JPH11143705A (ja) * | 1997-11-11 | 1999-05-28 | Fujitsu Ltd | ソースプログラムチェック装置および記録媒体 |
JPH11154093A (ja) * | 1997-11-21 | 1999-06-08 | Toshiba Corp | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 |
-
2006
- 2006-03-29 JP JP2006090123A patent/JP2007265095A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63257038A (ja) * | 1987-04-14 | 1988-10-24 | Nec Corp | 原始プログラム変換における対応識別情報付加方式 |
JPH02178841A (ja) * | 1988-12-29 | 1990-07-11 | Nec Corp | 言語処理プリプロセッサ |
JPH11143705A (ja) * | 1997-11-11 | 1999-05-28 | Fujitsu Ltd | ソースプログラムチェック装置および記録媒体 |
JPH11154093A (ja) * | 1997-11-21 | 1999-06-08 | Toshiba Corp | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011113147A (ja) * | 2009-11-24 | 2011-06-09 | Nomura Research Institute Ltd | ソース解析プログラム、プリプロセッサ、レキサ、および構文木解析プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4057938B2 (ja) | コンパイラ、コンパイル方法、及びプログラム開発ツール | |
US9632754B2 (en) | Auto generation and linkage of source code to test cases | |
US20080250231A1 (en) | Program code conversion apparatus, program code conversion method and recording medium | |
JP2009176064A (ja) | ソフトウェアリファクタリング支援装置および方法 | |
JP2007018254A (ja) | 言語処理装置 | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
CN110147238B (zh) | 一种程序编译方法、装置及系统 | |
JP2011013887A (ja) | ソフトウェア開発支援装置 | |
JP2004185508A (ja) | プログラム解析装置およびプログラム | |
JP2007265095A (ja) | ソースプログラム検証プログラム | |
JP2007102380A (ja) | 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置 | |
JP2009258796A (ja) | プログラム開発装置及びプログラム開発方法 | |
JP2010287101A (ja) | ソフトウエアデバッグ装置及び方法 | |
JP5702265B2 (ja) | プログラム自動生成装置およびプログラム自動生成方法 | |
US20170344351A1 (en) | Information processing apparatus, compiling management method, and recording medium | |
JP2006285754A (ja) | プログラムソースコード自動生成装置 | |
JP2008204023A (ja) | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 | |
JPH10293683A (ja) | プログラムの比較解析装置、プログラムの比較解析方法、及びプログラムの比較解析プログラムを記録した機械読み取り可能な記録媒体 | |
JP2007265098A (ja) | マクロ定義情報取得装置 | |
KR100290623B1 (ko) | 데이터베이스의 데이터 제어방법 | |
JP2009042951A (ja) | プログラム中のデータ抽出方法及び装置 | |
JP4371000B2 (ja) | Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ | |
JP2006146731A (ja) | プログラム、記憶媒体、アセンブラ装置、コンパイラ装置、シミュレータ装置及びエミュレータ装置 | |
JP2006268777A (ja) | ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム | |
CN118034708A (zh) | 一种基于静态分析的二进制程序控制流重建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20080627 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100412 |
|
A131 | Notification of reasons for refusal |
Effective date: 20110308 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A521 | Written amendment |
Effective date: 20110428 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110704 |
|
A02 | Decision of refusal |
Effective date: 20110809 Free format text: JAPANESE INTERMEDIATE CODE: A02 |