JP4786268B2 - コンパイル装置 - Google Patents
コンパイル装置 Download PDFInfo
- Publication number
- JP4786268B2 JP4786268B2 JP2005265851A JP2005265851A JP4786268B2 JP 4786268 B2 JP4786268 B2 JP 4786268B2 JP 2005265851 A JP2005265851 A JP 2005265851A JP 2005265851 A JP2005265851 A JP 2005265851A JP 4786268 B2 JP4786268 B2 JP 4786268B2
- Authority
- JP
- Japan
- Prior art keywords
- type
- point
- fixed
- point type
- floating
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
"C28x IQMath Library - A Virtual Floating Point Engine"、[online]、テキサス・インスツルメンツ・インコーポレイテッド、[平成17年7月4日検索]、インターネット<URL:http://www.ti.com/iqmath>
本発明の第1実施形態に係るコンパイル装置は、図1に示すように、処理装置1a、入力装置2、出力装置3、及び記憶装置4a等を備える。処理装置1aは、ソースプログラムをオブジェクトコードにコンパイルするために、ソースプログラムの字句を解析して複数のトークンに分割する字句解析部6aと、字句解析後のソースプログラムが文法的に正しいかを解析する構文解析部7aと、構文解析後のソースプログラムからオブジェクトコードを生成するコード生成部51の各機能を実行する。記憶装置4aは、C言語等の高級言語で記述されたソースプログラムと、固定小数点型を含む各データ型の型情報とを格納する。以下の説明においては、ソースプログラムがC言語で記述されている場合を例に説明する。字句解析部6aは、記憶装置4aからソースプログラムを取得し、取得したソースプログラムから型指定子及び即値を検出する検出部61と、型指定子を解析して、型指定子が浮動小数点型であるとき、型指定子によりデータ型が指定される変数及び関数のいずれかを、固定小数点型の型情報にリンクさせて記憶装置4aに格納する型指定子解析部62aと、即値を解析して、即値が接尾語を有しない小数及び浮動小数点型の接尾語を有する小数のいずれかであるとき、即値を固定小数点型の型情報にリンクさせて記憶装置4aに格納する即値解析部63aとを備える。
(b5)ステップS307において、リンク部624は、double型で指定される変数又は関数を、図3に示す型番号“8”の“long_Accum”にリンクさせる。リンクが完了するとステップS308に進む。
本発明の第1実施形態の第1変形例に係るコンパイル装置は、図1に示したコンパイル装置が、構文解析後のソースプログラムに基づいてオブジェクトコードの生成までを行うのに対して、構文解析部7aの構文解析結果を例えばソースプログラム格納領域41に書き戻すことにより、ソースプログラム中の浮動小数点記述を固定小数点記述に変換したプログラムを得ることができる。
本発明の第1実施形態の第2変形例に係るコンパイル装置は、図15に示すように、字句解析部6bが、浮動小数点型から固定小数点型へのデータ型の変換を指示するコンパイラ指示子を検出する指示子検出部74を更に備える。即ち、コンパイル時に指定されるコンパイラオプションで変換フラグを立てるのではなく、コンパイラへのコンパイラ指示子をソースプログラム中に記述しても良い。一例として、C言語においては#pragma指令がコンパイラ指示子として利用できる。
本発明の第1実施形態の第3変形例に係るコンパイル装置は、図16に示すように、字句解析部6cが、固定小数点型の型情報の整数部及び小数部の各ビット数を再定義したコンパイラ指示子を検出する指示子検出部74と、型情報テーブルを更新する型情報更新部75とを備える。具体的には、型情報更新部75は、図17に示すように、型情報テーブルにおける固定小数点型の型情報の整数部及び小数部の各ビット数を更新する。
本発明の第2実施形態に係るコンパイラ60dは、図18に示すように、コンパイルオプションを用いて、ソースプログラム中の浮動小数点型の記述を所望の固定小数点型に変換する。図18に示す例においては、標準(デフォルト)ではソースプログラム中の浮動小数点型の記述を固定小数点型に変換せずにオブジェクトコードを生成する。オプション1においては、ソースプログラム中の浮動小数点型の記述を、対応する(サイズの等しい)固定小数点型に変換する。オプション2においては、ソースプログラム中の浮動小数点型の記述を、精度の高い(サイズの大きい)固定小数点型、例えばlong_Accum型に変換する。オプション3においては、ソースプログラム中の浮動小数点型の記述を、精度の低い(サイズの小さい)固定小数点型、例えばshort_Accum型に変換する。
上記のように、本発明は第1及び第2実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
50a…オプション解析部
61…検出部
62a…型指定子解析部
63a…即値解析部
74…指示子検出部
75…型情報更新部
Claims (3)
- ソースプログラムと、固定小数点型を含む各データ型の型情報を格納する記憶装置と、
前記記憶装置から前記ソースプログラムを取得し、取得した前記ソースプログラムから型指定子及び即値を検出する検出部と、
コンパイルオプションを解析し、浮動小数点型から固定小数点型への型変換が指示されているかを判定するオプション解析部と、
前記オプション解析部により型変換が指示されたと判定され、かつ、前記型指定子を解析して前記型指定子が浮動小数点型であるとき、前記型指定子によりデータ型が指定される変数及び関数のいずれかを、前記固定小数点型の型情報にリンクさせて前記記憶装置に格納する型指定子解析部と、
前記オプション解析部により型変換が指示されたと判定され、かつ、前記即値を解析して前記即値が接尾語を有しない小数及び浮動小数点型の接尾語を有する小数のいずれかであるとき、前記即値を前記固定小数点型の型情報にリンクさせて前記記憶装置に格納する即値解析部とを備え、
前記記憶装置に格納したリンク情報に基づき前記ソースプログラムの構文解析を行い、前記構文解析後のソースプログラムからオブジェクトコードを生成する
ことを特徴とするコンパイル装置。 - 前記オプション解析部は、前記型変換後の固定小数点型のサイズが指定されているかを更に判定し、
前記型指定子解析部は、前記変数及び前記関数を、指定されたサイズを有する固定小数点型の型情報にリンクさせ、
前記即値解析部は、前記即値を、指定されたサイズを有する固定小数点型の型情報にリンクさせる
ことを特徴とする請求項1に記載のコンパイル装置。 - 浮動小数点型から固定小数点型への型変換を指示するコンパイラ指示子を検出する指示子検出部を更に備える
ことを特徴とする請求項1に記載のコンパイル装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005265851A JP4786268B2 (ja) | 2005-09-13 | 2005-09-13 | コンパイル装置 |
US11/531,619 US7716655B2 (en) | 2005-09-13 | 2006-09-13 | Computer system for compiling source program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005265851A JP4786268B2 (ja) | 2005-09-13 | 2005-09-13 | コンパイル装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007079844A JP2007079844A (ja) | 2007-03-29 |
JP4786268B2 true JP4786268B2 (ja) | 2011-10-05 |
Family
ID=37885696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005265851A Expired - Fee Related JP4786268B2 (ja) | 2005-09-13 | 2005-09-13 | コンパイル装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7716655B2 (ja) |
JP (1) | JP4786268B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8136101B2 (en) * | 2005-11-04 | 2012-03-13 | Oracle America, Inc. | Threshold search failure analysis |
JP4645519B2 (ja) * | 2006-04-27 | 2011-03-09 | 株式会社デンソー | 演算処理装置,制御装置およびプログラム |
US8601452B2 (en) * | 2007-03-02 | 2013-12-03 | Oracle International Corporation | Compiler for JAVA and .NET |
US8633936B2 (en) | 2008-04-21 | 2014-01-21 | Qualcomm Incorporated | Programmable streaming processor with mixed precision instruction execution |
US8296744B2 (en) * | 2008-10-03 | 2012-10-23 | Microsoft Corporation | Tree-based directed graph programming structures for a declarative programming language |
JP6137962B2 (ja) * | 2013-06-24 | 2017-05-31 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
GB2517192A (en) * | 2013-08-14 | 2015-02-18 | Micro Focus Ip Dev Ltd | Processing for application program deployment |
CN104461459B (zh) * | 2013-09-23 | 2017-04-19 | 富士通株式会社 | 定点化处理方法及其装置 |
US10514913B2 (en) * | 2017-06-23 | 2019-12-24 | International Business Machines Corporation | Compiler controls for program regions |
US10684852B2 (en) | 2017-06-23 | 2020-06-16 | International Business Machines Corporation | Employing prefixes to control floating point operations |
US10310814B2 (en) | 2017-06-23 | 2019-06-04 | International Business Machines Corporation | Read and set floating point control register instruction |
US10481908B2 (en) | 2017-06-23 | 2019-11-19 | International Business Machines Corporation | Predicted null updated |
US10725739B2 (en) | 2017-06-23 | 2020-07-28 | International Business Machines Corporation | Compiler controls for program language constructs |
US10379851B2 (en) | 2017-06-23 | 2019-08-13 | International Business Machines Corporation | Fine-grained management of exception enablement of floating point controls |
US10740067B2 (en) | 2017-06-23 | 2020-08-11 | International Business Machines Corporation | Selective updating of floating point controls |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56153451A (en) * | 1980-04-30 | 1981-11-27 | Fujitsu Ltd | Attribute conversion system |
US5758349A (en) * | 1995-12-27 | 1998-05-26 | International Business Machines Corporation | Process and system for run-time inheritance and disinheritance of methods and data |
US6560774B1 (en) * | 1999-09-01 | 2003-05-06 | Microsoft Corporation | Verifier to check intermediate language |
US6460177B1 (en) * | 1999-09-22 | 2002-10-01 | Lucent Technologies Inc. | Method for target-specific development of fixed-point algorithms employing C++ class definitions |
US6775680B2 (en) * | 2000-08-08 | 2004-08-10 | International Business Machines Corporation | High level assembler metamodel |
US6701501B2 (en) * | 2000-10-16 | 2004-03-02 | Simon Joshua Waters | Structured algorithmic programming language approach to system design |
US7885792B2 (en) * | 2003-04-15 | 2011-02-08 | The Mathworks, Inc. | Programming Environment |
US7080364B2 (en) * | 2003-04-28 | 2006-07-18 | Intel Corporation | Methods and apparatus for compiling a transcendental floating-point operation |
US7461116B2 (en) * | 2003-09-17 | 2008-12-02 | Agility Design Solutions Inc. | Emulation of a fixed point operation using a corresponding floating point operation |
JP4157016B2 (ja) * | 2003-11-05 | 2008-09-24 | 株式会社東芝 | コンパイラ装置及びコンパイル方法 |
-
2005
- 2005-09-13 JP JP2005265851A patent/JP4786268B2/ja not_active Expired - Fee Related
-
2006
- 2006-09-13 US US11/531,619 patent/US7716655B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7716655B2 (en) | 2010-05-11 |
US20070067759A1 (en) | 2007-03-22 |
JP2007079844A (ja) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4786268B2 (ja) | コンパイル装置 | |
CN1664779B (zh) | 软件开发基础架构 | |
JP4057938B2 (ja) | コンパイラ、コンパイル方法、及びプログラム開発ツール | |
US7559050B2 (en) | Generating software development tools via target architecture specification | |
US7937688B2 (en) | System and method for context-sensitive help in a design environment | |
JP4157016B2 (ja) | コンパイラ装置及びコンパイル方法 | |
US8850414B2 (en) | Direct access of language metadata | |
US20070271553A1 (en) | Method and system for translating assembler code to a target language | |
JP2006243839A (ja) | 命令生成装置及び命令生成方法 | |
JPH0769834B2 (ja) | ソース・プログラムをコンパイルする方法及び装置 | |
US7043720B2 (en) | Mechanism for reformatting a simple source code statement into a compound source code statement | |
US5949993A (en) | Method for the generation of ISA simulators and assemblers from a machine description | |
JP6651974B2 (ja) | 情報処理装置、コンパイル方法及びコンパイラプログラム | |
JP2879099B1 (ja) | 抽象構文木処理方法、抽象構文木処理プログラムを記録したコンピュータ読み取り可能な記録媒体、抽象構文木データを記録したコンピュータ読み取り可能な記録媒体、及び、抽象構文木処理装置 | |
EP1444071B1 (en) | A robot system and a method and a software product for the robot system | |
JP5600301B2 (ja) | システム表現およびハンドリング技術 | |
GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
US8572592B2 (en) | Extended language specification assigning method, program developing method and computer-readable storage medium | |
JP3000878B2 (ja) | アセンブラの処理方法 | |
Wendt | Fast code generation using automatically-generated decision trees | |
CN114327469A (zh) | 一种代码解析方法、装置、设备及介质 | |
JP2004139369A (ja) | 定数アドレス領域を指示するポインタ解析方法 | |
von Manteuffel et al. | Reduze 2 Tutorial | |
JPH05108372A (ja) | コンパイラ最適化処理内容の出力方式 | |
Watson | Barry’s Prolog Reference Manual & User Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080718 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110606 |
|
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: 20110621 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110713 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140722 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |