JP5910197B2 - 組み込み用プログラム開発装置、コンパイル方法およびコンパイラプログラム - Google Patents
組み込み用プログラム開発装置、コンパイル方法およびコンパイラプログラム Download PDFInfo
- Publication number
- JP5910197B2 JP5910197B2 JP2012057118A JP2012057118A JP5910197B2 JP 5910197 B2 JP5910197 B2 JP 5910197B2 JP 2012057118 A JP2012057118 A JP 2012057118A JP 2012057118 A JP2012057118 A JP 2012057118A JP 5910197 B2 JP5910197 B2 JP 5910197B2
- Authority
- JP
- Japan
- Prior art keywords
- assembly language
- variable
- language
- compiler
- assembly
- 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.)
- Active
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Description
ld.bs _sc,g0
として、上位側バイトを符号拡張してロードすることが正しいため、命令変更の対象となり、命令変更(ニーモニック変更)が行われる。
st.b g1,_uc
として、下位側バイトのみを書き込むことが正しいため、命令変換の対象になり、命令変更(ニーモニック変更)が行われる。
ld.w _si1,g2
または、
ld _si1,g2
として、2バイトのデータをロードすることが正しいと判断され、命令変更の対象になり得る。ただしこの場合、プログラマが意図して1バイト目のみをロードしている可能性もあるため、ワーニングメッセージを出力するだけに留めるだけにしてもよい。なお、変更候補の命令が複数ある場合は、予めデフォルトで置き換える命令を決めておいてもよい。
ld.w _ui1,g3
または、
ld _ui1,g3
として、2バイトのデータをロードすることが正しいと判断され、命令変更の対象になり得る。ただし、(c)の場合と同様に、プログラマが意図して1バイト目のみをロードしている可能性があるため、ここも、ワーニングメッセージを出力するだけに留めるだけにしてもよい。
5 CPU
6 記憶装置
11 コンパイラ
12 アセンブラ
21 ソースプログラム
111a 構文解析部(読み込み手段)
111b アセンブリ言語検出部(アセンブリ言語検出手段)
111c 変数検出部(変数検出手段)
111d 比較部(比較手段)
111e 変更部(変更手段)
113 コード生成部(アセンブリ言語コード生成手段)
S1 ニーモニックを取り出す(アセンブリ言語検出ステップ)
S2 C言語側で宣言された変数を使っている命令か(変数検出ステップ)
S3 C言語命令対応テーブルを使って命令の比較(比較ステップ)
S7 C言語命令対応テーブルを元に正しい命令に変更(変更ステップ)
Claims (6)
- ソースプログラムを読み込む読み込み手段およびアセンブリ言語コードを生成するアセンブリ言語コード生成手段を備えたコンパイラと、前記アセンブリ言語コードを読み込みオブジェクトファイルを生成するアセンブラと、を有する組み込み用プログラム開発装置において、
前記ソースプログラムが、前記コンパイラにてアセンブリ言語に変換されるコンパイル言語および前記アセンブリ言語で構成されており、
前記コンパイラが、
前記読み込み手段が読み込んだ前記ソースプログラムから前記アセンブリ言語部分を検出するアセンブリ言語検出手段と、
前記アセンブリ言語検出手段が検出した前記アセンブリ言語部分から前記コンパイル言語で宣言されている変数と同じ変数を検出する変数検出手段と、
前記変数検出手段が検出した前記変数について、前記コンパイル言語上と前記アセンブリ言語上でのサイズまたは符号のうち少なくともいずれか一方を比較する比較手段と、
前記コンパイル言語の変数宣言に対する前記アセンブリ言語上の不正な命令と正しい命令の対応テーブルを備え、前記比較手段が比較した結果、前記サイズまたは符号のうち少なくともいずれか一方が異なる場合は、前記対応テーブルに基づいて前記アセンブリ言語を変更する変更手段と、
を備えていることを特徴とする組み込み用プログラム開発装置。 - 前記変数が、ポインタ変数であることを特徴とする請求項1に記載の組み込み用プログラム開発装置。
- ソースプログラムからアセンブリ言語コードを生成するコンパイル方法において、
前記ソースプログラムが、アセンブリ言語に変換されるコンパイル言語および前記アセンブリ言語で構成されており、
前記ソースプログラムから前記アセンブリ言語部分を検出するアセンブリ言語検出ステップと、
前記アセンブリ言語検出ステップで検出した前記アセンブリ言語部分から前記コンパイル言語で宣言されている変数と同じ変数を検出する変数検出ステップと、
前記変数検出ステップで検出した前記変数について、前記コンパイル言語上と前記アセンブリ言語上でのサイズまたは符号のうち少なくともいずれか一方を比較する比較ステップと、
前記比較ステップで比較した結果、前記サイズまたは符号のうち少なくともいずれか一方が異なる場合は、前記コンパイル言語の変数宣言に対する前記アセンブリ言語上の不正な命令と正しい命令の対応テーブルに基づいて前記アセンブリ言語を変更する変更ステップと、
を順次実行することを特徴とするコンパイル方法。 - 前記変数が、ポインタ変数であることを特徴とする請求項3に記載のコンパイル方法。
- ソースプログラムからアセンブリ言語コードを生成するコンパイラとしてコンピュータを機能させるコンパイラプログラムにおいて、
前記ソースプログラムが、前記コンパイラにてアセンブリ言語に変換されるコンパイル言語および前記アセンブリ言語で構成されており、
前記コンパイラが、
前記ソースプログラムから前記アセンブリ言語部分を検出するアセンブリ言語検出手段と、
前記アセンブリ言語検出手段が検出した前記アセンブリ言語部分から前記コンパイル言語で宣言されている変数と同じ変数を検出する変数検出手段と、
前記変数検出手段が検出した前記変数について、前記コンパイル言語上と前記アセンブリ言語上でのサイズまたは符号のうち少なくともいずれか一方を比較する比較手段と、
前記コンパイル言語の変数宣言に対する前記アセンブリ言語上の不正な命令と正しい命令の対応テーブルを備え、前記比較手段が比較した結果、前記サイズまたは符号のうち少なくともいずれか一方が異なる場合は、前記対応テーブルに基づいて前記アセンブリ言語を変更する変更手段と、
して前記コンピュータを機能させることを特徴とするコンパイラプログラム。 - 前記変数が、ポインタ変数であることを特徴とする請求項5に記載のコンパイラプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012057118A JP5910197B2 (ja) | 2012-03-14 | 2012-03-14 | 組み込み用プログラム開発装置、コンパイル方法およびコンパイラプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012057118A JP5910197B2 (ja) | 2012-03-14 | 2012-03-14 | 組み込み用プログラム開発装置、コンパイル方法およびコンパイラプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013191038A JP2013191038A (ja) | 2013-09-26 |
JP5910197B2 true JP5910197B2 (ja) | 2016-04-27 |
Family
ID=49391202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012057118A Active JP5910197B2 (ja) | 2012-03-14 | 2012-03-14 | 組み込み用プログラム開発装置、コンパイル方法およびコンパイラプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5910197B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58169637A (ja) * | 1982-03-31 | 1983-10-06 | Fujitsu Ltd | コンパイル処理方式 |
JP2004118494A (ja) * | 2002-09-26 | 2004-04-15 | Hitachi Software Eng Co Ltd | 異種言語プログラム間インターフェイスのチェックプログラム及びチェック方法 |
JP2008020972A (ja) * | 2006-07-11 | 2008-01-31 | Hitachi Ltd | ソフトウエア解析システム |
-
2012
- 2012-03-14 JP JP2012057118A patent/JP5910197B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013191038A (ja) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8453128B2 (en) | Method and system for implementing a just-in-time compiler | |
US7725883B1 (en) | Program interpreter | |
EP1728155B1 (en) | Method and system for performing link-time code optimization without additional code analysis | |
US10713024B2 (en) | Load module compiler | |
JP5893038B2 (ja) | ユーザ定義型のコンパイル時境界検査 | |
US8843920B2 (en) | Systems and methods for deferring software implementation decisions until load time | |
CN110825386B (zh) | 代码的编译方法和装置、存储介质 | |
Hummel et al. | Annotating the Java bytecodes in support of optimization | |
US9235389B2 (en) | Method of providing embedded software development tool for supporting embedded software development environment based on native building, and apparatus thereof | |
JP2007304840A (ja) | コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム | |
Hong et al. | Improving simd parallelism via dynamic binary translation | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
JP2008305337A (ja) | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム | |
JP5910197B2 (ja) | 組み込み用プログラム開発装置、コンパイル方法およびコンパイラプログラム | |
El-Shobaky et al. | Automatic vectorization using dynamic compilation and tree pattern matching technique in Jikes RVM | |
JP3840149B2 (ja) | コンパイラ、演算処理システム及び演算処理方法 | |
JP2007226589A (ja) | プログラム変換システム | |
JP5891976B2 (ja) | コンパイル実行・管理方法、装置、及びプログラム | |
Sharma et al. | Can we run in parallel? Automating loop parallelization for TornadoVM | |
JP2009258796A (ja) | プログラム開発装置及びプログラム開発方法 | |
US20040045018A1 (en) | Using address space bridge in postoptimizer to route indirect calls at runtime | |
KR20040044655A (ko) | 자바 가상머신에서 루프 문 처리를 위해 바이트코드를생성 및 수행하는 방법 | |
JP2007114934A (ja) | コンパイラシステム | |
Quinlan et al. | Rose user manual: A tool for building source-to-source translators draft user manual (version 0.9. 11.115) | |
Tian et al. | Inside the Intel 10.1 Compilers: New Threadizer and New Vectorizer for Intel Core2 Processors. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151013 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160314 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5910197 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |