JP2006243838A - プログラム開発装置 - Google Patents
プログラム開発装置 Download PDFInfo
- Publication number
- JP2006243838A JP2006243838A JP2005055020A JP2005055020A JP2006243838A JP 2006243838 A JP2006243838 A JP 2006243838A JP 2005055020 A JP2005055020 A JP 2005055020A JP 2005055020 A JP2005055020 A JP 2005055020A JP 2006243838 A JP2006243838 A JP 2006243838A
- Authority
- JP
- Japan
- Prior art keywords
- function
- instruction
- source program
- program
- built
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- 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
- G06F8/44—Encoding
- G06F8/443—Optimisation
Abstract
【解決手段】 ソースプログラム中の最適化対象となるプログラム記述を定義した動作定義と、最適化後の命令列を記述したインライン節とを含む複合組込関数をソースプログラムの一部として記憶するソースプログラム記憶領域60と、複合組込関数をソースプログラム記憶領域から読み出し、複合組込関数を構文解析して動作定義及びインライン節を検出する解析部12と、ソースプログラム中の動作定義に一致するプログラム記述をインライン節中の命令列に最適化し、ソースプログラムからオブジェクトコードを生成するコード生成部13aとを備える。
【選択図】 図1
Description
本発明の第1実施形態に係るプログラム開発装置は、図1に示すように、中央演算処理装置(CPU)1a、入力装置2、出力装置3、主記憶装置4、補助記憶装置5、及び記憶装置6等を備える。CPU1aは、C言語等の高級言語で記述されたソースプログラムをオブジェクトコード(機械語)に翻訳するコンパイラ10aの機能を実現する。以下の説明においては、ソースプログラムがC言語で記述されている場合を例に説明する。また、コンパイラ10aは、解析部12及びコード生成部13aを備える。更に、記憶装置6には、例えば、ソースプログラム記憶領域60、組込関数定義記憶領域62、複合組込関数定義記憶領域63、及びオブジェクトコード記憶領域64等が備えられる。ソースプログラム記憶領域60には、ソースプログラム中の最適化対象となるプログラム記述を定義した動作定義と、最適化後の命令列を記述したインライン節とを含む複合組込関数がソースプログラムの一部として記憶される。コンパイラ10aの解析部12は、複合組込関数をソースプログラム記憶領域60から読み出し、複合組込関数を構文解析して動作定義及びインライン節を検出する。コンパイラ10aのコード生成部13aは、ソースプログラム中の動作定義に一致するプログラム記述をインライン節中の命令列に最適化し、ソースプログラムからオブジェクトコードを生成する。
本発明の第1実施形態の第1変形例として図14に示すように、プログラム開発装置が、中間コードを生成せずに、ソースプログラムから直接オブジェクトコードを生成する構成でも良い。
本発明の第1実施形態の第2変形例として図17に示すように、図1に示した中間コード最適化部132が、最適化に使用した複合組込関数の履歴を作成し、履歴に存在する複合組込関数を優先的に使用しても良い。また、複合組込関数だけでなく、最適化に使用した組込関数の履歴を作成し、履歴に存在する組込関数を優先的に使用しても良い。尚、最適化に使用した複合組込関数の履歴は、例えば図1に示す複合組込関数定義記憶領域63に格納される。最適化に使用した組込関数の履歴は、例えば組込関数定義記憶領域62に格納される。
本発明の第1実施形態の第3変形例として、図21に示すように、図1に示した中間コード最適化部132が、ソースデバッグ情報を選択的に出力する構成でも良い。ここで、「デバッグ情報」としては、例えば行番号が利用できる。
本発明の第2実施形態に係るプログラム開発装置は、図25に示すように、超長命令語(VLIW)型の拡張命令(以下において「VLIW命令」という。)を生成可能な命令生成部700aを更に備える点が図1と異なる。即ち、図25に示すプログラム開発装置は、図3に示すコプロセッサ723がVLIW型である場合に適用される。VLIW命令においては命令語長を長くすることで、一度に複数命令を同時実行することが可能となる。ここで、「VLIW命令」とは、図3に示すプロセッサコア710及びコプロセッサ723で同時に実行される命令の組み合わせを1つの命令とした長命令を意味する。命令生成部700aは、ソースプログラム記憶領域60に格納されたソースプログラムからVLIW命令を自動的に生成する。更に、命令生成部700aは、VLIW命令をインライン節に含む複合組込関数を生成してソースプログラム記憶領域60に格納する。
本発明の第2実施形態の変形例に係るプログラム開発装置として、図35に示すように、ソースプログラムを入力としてソースプログラムレベルでデータフローグラフを作成しても良い。即ち、図35に示すプログラム開発装置は、図25に示したコンパイラ71aを備えていない。また、図35に示すデータフローグラフ作成部71bは、ソースプログラム記憶領域60からソースプログラムを読み出し、ソースプログラムからデータフローグラフを作成する。
上記のように、本発明は第1及び第2実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
12…解析部
13a、13b…コード生成部
60…ソースプログラム記憶領域
700a…命令生成部
701a、701b…並列化命令検出部
72…VLIW命令定義部
73…複合組込関数生成部
723…コプロセッサ
Claims (5)
- ソースプログラム中の最適化対象となるプログラム記述を定義した動作定義と、前記最適化後の命令列を記述したインライン節とを含む複合組込関数を前記ソースプログラムの一部として記憶するソースプログラム記憶領域と、
前記複合組込関数を前記ソースプログラム記憶領域から読み出し、前記複合組込関数を構文解析して前記動作定義及び前記インライン節を検出する解析部と、
前記ソースプログラム中の前記動作定義に一致するプログラム記述を前記インライン節中の命令列に最適化し、前記ソースプログラムからオブジェクトコードを生成するコード生成部
とを備えることを特徴とするプログラム開発装置。 - 前記コード生成部は、前記最適化に使用した前記複合組込関数の履歴を作成し、前記履歴に存在する前記複合組込関数を優先的に使用することを特徴とする請求項1に記載のプログラム開発装置。
- 前記コード生成部は、前記オブジェクトコードにデバッグ情報を選択的に付加することを特徴とする請求項1又は2に記載のプログラム開発装置。
- 前記ソースプログラムからデータフローグラフを作成し、前記データフローグラフに基づいて前記ソースプログラム中の並列実行可能な命令を検出する並列化命令検出部と、
前記並列実行可能な命令から、VLIW型のコプロセッサに実行させるコプロセッサ命令を含むVLIW命令を定義するVLIW命令定義部と、
前記VLIW命令を前記インライン節中の命令列として記述し、前記ソースプログラム中の前記VLIW命令への最適化対象となるプログラム記述を前記動作定義として定義して前記複合組込関数を生成する複合組込関数生成部
とを更に備えることを特徴とする請求項1〜3のいずれか1項に記載のプログラム開発装置。 - 前記並列化命令検出部は、前記コプロセッサの並列実行可能な命令数に応じて、前記並列化命令検出部が検出した前記並列実行可能な命令を前記コプロセッサ命令とするか否か判定することを特徴とする請求項4に記載のプログラム開発装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005055020A JP2006243838A (ja) | 2005-02-28 | 2005-02-28 | プログラム開発装置 |
US11/362,728 US7917899B2 (en) | 2005-02-28 | 2006-02-28 | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005055020A JP2006243838A (ja) | 2005-02-28 | 2005-02-28 | プログラム開発装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006243838A true JP2006243838A (ja) | 2006-09-14 |
Family
ID=36945488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005055020A Pending JP2006243838A (ja) | 2005-02-28 | 2005-02-28 | プログラム開発装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7917899B2 (ja) |
JP (1) | JP2006243838A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011096016A1 (ja) * | 2010-02-05 | 2011-08-11 | 株式会社 東芝 | コンパイラ装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058941B1 (en) * | 2000-11-14 | 2006-06-06 | Microsoft Corporation | Minimum delta generator for program binaries |
US20060277525A1 (en) * | 2005-06-06 | 2006-12-07 | Microsoft Corporation | Lexical, grammatical, and semantic inference mechanisms |
WO2007113369A1 (en) * | 2006-03-30 | 2007-10-11 | Atostek Oy | Parallel program generation method |
US20080288919A1 (en) * | 2007-05-14 | 2008-11-20 | Microsoft Corporation | Encoding of Symbol Table in an Executable |
US8175099B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Embedded system development platform |
US8484629B2 (en) * | 2007-05-24 | 2013-07-09 | Microsoft Corporation | Programming model for modular development |
JP2012510661A (ja) | 2008-12-01 | 2012-05-10 | ケーピーアイティ クミンズ インフォシステムズ リミテッド | 逐次コンピュータプログラムコードを並列処理する方法及びシステム |
FR2953612A1 (fr) * | 2009-12-03 | 2011-06-10 | Flexycore | Procede de mise au point d'application logicielle, systeme et produit programme d'ordinateur correspondant. |
KR101849702B1 (ko) | 2011-07-25 | 2018-04-17 | 삼성전자주식회사 | 외부 인트린직 인터페이스 |
US8656376B2 (en) * | 2011-09-01 | 2014-02-18 | National Tsing Hua University | Compiler for providing intrinsic supports for VLIW PAC processors with distributed register files and method thereof |
US10025563B2 (en) * | 2016-09-14 | 2018-07-17 | International Business Machines Corporation | Selecting COBOL perform statements for inlining |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6316334A (ja) * | 1986-07-08 | 1988-01-23 | Nec Corp | 利用者が任意に定義した機械語のインライン展開方式 |
JPH0451328A (ja) * | 1990-06-19 | 1992-02-19 | Fujitsu Ltd | 複合型命令スケジューリング処理装置 |
JPH04175974A (ja) * | 1990-11-09 | 1992-06-23 | Hitachi Ltd | コプロセッサ論理回路自動生成方法 |
JPH05298115A (ja) * | 1992-04-23 | 1993-11-12 | Toshiba Corp | データ処理装置及び方法 |
JPH0784797A (ja) * | 1993-06-30 | 1995-03-31 | Toshiba Corp | ロードモジュールへのソースコード行番号登録方法および装置 |
JP2000163266A (ja) * | 1998-11-30 | 2000-06-16 | Mitsubishi Electric Corp | 命令実行方式 |
JP2000284970A (ja) * | 1999-03-29 | 2000-10-13 | Matsushita Electric Ind Co Ltd | プログラム変換装置及びプロセッサ |
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2003196106A (ja) * | 2001-12-20 | 2003-07-11 | Internatl Business Mach Corp <Ibm> | プログラム変換方法、コンピュータ装置及びプログラム |
JP2004070531A (ja) * | 2002-08-02 | 2004-03-04 | Matsushita Electric Ind Co Ltd | コンパイラ用プログラム、コンパイラ装置及びコンパイル方法 |
JP2004295398A (ja) * | 2003-03-26 | 2004-10-21 | Toshiba Corp | コンパイラ、コンパイル方法、及びプログラム開発ツール |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5175856A (en) * | 1990-06-11 | 1992-12-29 | Supercomputer Systems Limited Partnership | Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution |
US5548761A (en) * | 1993-03-09 | 1996-08-20 | International Business Machines Corporation | Compiler for target machine independent optimization of data movement, ownership transfer and device control |
JP2794523B2 (ja) * | 1993-11-26 | 1998-09-10 | 日本アイ・ビー・エム株式会社 | アレイ関数をもつプログラミング言語におけるインライン展開方法 |
US5701489A (en) * | 1995-06-06 | 1997-12-23 | International Business Machines Corporation | System for partial in-line expansion of procedure calls during program compilation |
US6091896A (en) * | 1995-12-22 | 2000-07-18 | Hewlett-Packard Company | Debugging optimized code using data change points |
US6003129A (en) * | 1996-08-19 | 1999-12-14 | Samsung Electronics Company, Ltd. | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture |
US6748587B1 (en) * | 1998-01-02 | 2004-06-08 | Hewlett-Packard Development Company, L.P. | Programmatic access to the widest mode floating-point arithmetic supported by a processor |
JP3284956B2 (ja) * | 1998-01-26 | 2002-05-27 | 日本電気株式会社 | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2002230065A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
US7080365B2 (en) * | 2001-08-17 | 2006-07-18 | Sun Microsystems, Inc. | Method and apparatus for simulation system compiler |
US6941548B2 (en) * | 2001-10-16 | 2005-09-06 | Tensilica, Inc. | Automatic instruction set architecture generation |
JP4202673B2 (ja) * | 2002-04-26 | 2008-12-24 | 株式会社東芝 | システムlsi開発環境生成方法及びそのプログラム |
US7020873B2 (en) * | 2002-06-21 | 2006-03-28 | Intel Corporation | Apparatus and method for vectorization of detected saturation and clipping operations in serial code loops of a source program |
JP3840149B2 (ja) * | 2002-06-28 | 2006-11-01 | 株式会社東芝 | コンパイラ、演算処理システム及び演算処理方法 |
EP1378824A1 (en) * | 2002-07-02 | 2004-01-07 | STMicroelectronics S.r.l. | A method for executing programs on multiple processors and corresponding processor system |
US7155708B2 (en) * | 2002-10-31 | 2006-12-26 | Src Computers, Inc. | Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation |
JP2004334429A (ja) * | 2003-05-06 | 2004-11-25 | Hitachi Ltd | 論理回路及びその論理回路上で実行するプログラム |
US7146606B2 (en) * | 2003-06-26 | 2006-12-05 | Microsoft Corporation | General purpose intermediate representation of software for software development tools |
US7159105B2 (en) * | 2003-06-30 | 2007-01-02 | Intel Corporation | Platform-based optimization routines provided by firmware of a computer system |
JP4175974B2 (ja) | 2003-07-24 | 2008-11-05 | シャープ株式会社 | 画像データ転送制御装置 |
US7386842B2 (en) * | 2004-06-07 | 2008-06-10 | International Business Machines Corporation | Efficient data reorganization to satisfy data alignment constraints |
JP2006243839A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | 命令生成装置及び命令生成方法 |
-
2005
- 2005-02-28 JP JP2005055020A patent/JP2006243838A/ja active Pending
-
2006
- 2006-02-28 US US11/362,728 patent/US7917899B2/en not_active Expired - Fee Related
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6316334A (ja) * | 1986-07-08 | 1988-01-23 | Nec Corp | 利用者が任意に定義した機械語のインライン展開方式 |
JPH0451328A (ja) * | 1990-06-19 | 1992-02-19 | Fujitsu Ltd | 複合型命令スケジューリング処理装置 |
JPH04175974A (ja) * | 1990-11-09 | 1992-06-23 | Hitachi Ltd | コプロセッサ論理回路自動生成方法 |
JPH05298115A (ja) * | 1992-04-23 | 1993-11-12 | Toshiba Corp | データ処理装置及び方法 |
JPH0784797A (ja) * | 1993-06-30 | 1995-03-31 | Toshiba Corp | ロードモジュールへのソースコード行番号登録方法および装置 |
JP2000163266A (ja) * | 1998-11-30 | 2000-06-16 | Mitsubishi Electric Corp | 命令実行方式 |
JP2000284970A (ja) * | 1999-03-29 | 2000-10-13 | Matsushita Electric Ind Co Ltd | プログラム変換装置及びプロセッサ |
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2003196106A (ja) * | 2001-12-20 | 2003-07-11 | Internatl Business Mach Corp <Ibm> | プログラム変換方法、コンピュータ装置及びプログラム |
JP2004070531A (ja) * | 2002-08-02 | 2004-03-04 | Matsushita Electric Ind Co Ltd | コンパイラ用プログラム、コンパイラ装置及びコンパイル方法 |
JP2004295398A (ja) * | 2003-03-26 | 2004-10-21 | Toshiba Corp | コンパイラ、コンパイル方法、及びプログラム開発ツール |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011096016A1 (ja) * | 2010-02-05 | 2011-08-11 | 株式会社 東芝 | コンパイラ装置 |
JPWO2011096016A1 (ja) * | 2010-02-05 | 2013-06-06 | 株式会社東芝 | コンパイラ装置 |
Also Published As
Publication number | Publication date |
---|---|
US7917899B2 (en) | 2011-03-29 |
US20060200796A1 (en) | 2006-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006243838A (ja) | プログラム開発装置 | |
JP4822817B2 (ja) | コンパイルシステム | |
JP4057938B2 (ja) | コンパイラ、コンパイル方法、及びプログラム開発ツール | |
JP2006243839A (ja) | 命令生成装置及び命令生成方法 | |
TWI463404B (zh) | 編譯系統以及編譯方法 | |
US20020019973A1 (en) | Compiler and method for compiling easily adaptable to processor specifications | |
JP2001166949A (ja) | シンボリック実行を用いてソースコードをコンパイルするための方法及び装置 | |
JPH07105012A (ja) | 言語処理プログラムのコンパイル処理方式 | |
JP2005141410A (ja) | コンパイラ装置及びコンパイル方法 | |
Blindell | Instruction Selection | |
JP2001166946A (ja) | 階層の平坦化によりソースコードをコンパイルする方法及び装置 | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
Nacke et al. | Learn LLVM 17: A beginner's guide to learning LLVM compiler tools and core libraries with C++ | |
JP4719415B2 (ja) | 情報処理システム及びコード生成方法 | |
KR102614967B1 (ko) | 자바스크립트의 중간 언어 기반 의미론 추출 자동화 시스템 및 방법 | |
JP2011113147A (ja) | ソース解析プログラム、プリプロセッサ、レキサ、および構文木解析プログラム | |
JPH0756745A (ja) | 言語処理プログラムのコンパイラ処理方式 | |
Blindell | Survey on instruction selection: An extensive and modern literature review | |
JP2019139675A (ja) | ソースコード最適化装置、プログラムおよび方法 | |
JP2004246924A (ja) | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 | |
JP2001005655A (ja) | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 | |
JPH11195011A (ja) | 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体 | |
Fritzson | Modelica Meta-Programming and Symbolic Transformations MetaModelica Programming Guide | |
JPH0981411A (ja) | コンパイラ | |
Wang et al. | Spoke |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071211 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110314 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110628 |