JP2005122452A - プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム - Google Patents

プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム Download PDF

Info

Publication number
JP2005122452A
JP2005122452A JP2003356447A JP2003356447A JP2005122452A JP 2005122452 A JP2005122452 A JP 2005122452A JP 2003356447 A JP2003356447 A JP 2003356447A JP 2003356447 A JP2003356447 A JP 2003356447A JP 2005122452 A JP2005122452 A JP 2005122452A
Authority
JP
Japan
Prior art keywords
macro
file
assembler
linker
compiler
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
Application number
JP2003356447A
Other languages
English (en)
Inventor
Jun Kishikawa
準 岸川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003356447A priority Critical patent/JP2005122452A/ja
Publication of JP2005122452A publication Critical patent/JP2005122452A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

【課題】 組み込みシステムにおいてマクロ定義が多用される場合でも、プログラム容量の増大化を防ぐ。
【解決手段】 本発明のアセンブラは、マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロを呼び出すことによりプログラムを構築するとき、同一の引数をもってマクロ呼び出しを複数回行う場合、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化、関数化、またはライブラリ化して、プログラム容量を低減化する。
【選択図】図1

Description

本発明は、プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システムに関する。
図2に示すように、従来技術におけるプログラム開発では、ホストコンピュータ2上でソースファイル4をコンパイルして、オブジェクトファイル12’を生成し、そのオブジェクトファイル12’からリンカ14’により実行形式プログラム16’を生成している。ここでのホストコンピュータ2は、例えばワークステーションやパーソナルコンピュータであり、特に制約はない。
このような従来技術では、共通する処理をプログラミングする場合、マクロ定義、関数定義等により、プログラム開発の効率化が行われる。ここで、一般的に、実行速度を優先される場合はマクロ定義が、またプログラム容量の低減化が優先される場合は関数定義が用いられる。逆に言えば、前者はプログラム容量の増大化を招き、また後者は実行速度の低速化を招いてしまう。
プログラムの実行速度を優先するか、その容量の低減化を優先するかは、トレードオフの関係になるが、特に、組み込みシステムではプログラム容量の制限が厳しいことが多く、実行速度を多少犠牲にしてでも容量の低減化を行うことが必要になる場合がある。本発明は、組み込みシステムにおいてマクロ定義が多用される場合でも、プログラム容量の増大化を防ぐことを目的とする。
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載のアセンブラは、
アセンブリ言語で書かれたソースファイルを機械語に翻訳してオブジェクトファイルを生成するアセンブラである。そのアセンブラにおいて、
マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロを呼び出すことによりプログラムを構築するとき、同一の引数をもってマクロ呼び出しを複数回行う場合、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化する。
本発明に係る請求項2に記載のコンパイラは、
高級プログラミング言語で書かれたソースファイルを翻訳してアセンブリ言語ソースを生成する、または機械語に翻訳してオブジェクトファイルを生成するコンパイラである。そのコンパイラにおいて、
マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロを呼び出すことによりプログラムを構築するとき、同一の引数をもってマクロ呼び出しを複数回行う場合、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するコンパイラ。
本発明に係る請求項3に記載のリンカは、
複数のオブジェクトファイルを結合して、実行形式プログラムを生成するリンカである。そのリンカにおいて、
請求項1に記載のアセンブラ、又は請求項2に記載のコンパイラによるオブジェクトファイルを結合するとき、同ファイル内または別ファイル内に、自動的に生成されたサブルーチン若しくは関数、またはライブラリを含めて結合処理を行う。
本発明に係る請求項4に記載のリンカは、
請求項3に記載のリンカにおいて、
請求項1に記載のアセンブラによる一つのアセンブル単位、または請求項2に記載のコンパイラによる一つのコンパイル単位では、同じ引数を持つマクロ呼び出しが複数回行われていなくとも、
複数のアセンブル単位に渡って又は複数のコンパイル単位に渡っては、複数回行われている場合、それらのマクロの引数を含めたマクロ頻度情報を生成するリンカである。
本発明に係る請求項5に記載のアセンブラは、
請求項1記載のアセンブラにおいて、
請求項4記載のリンカにて生成されたマクロ頻度情報を基に、そのマクロ処理をサブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するアセンブラである。
本発明に係る請求項6に記載のコンパイラは、
請求項2記載のコンパイラにおいて、
請求項4記載のリンカにて生成されたマクロ頻度情報を基に、そのマクロ処理をサブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するコンパイラである。
本発明に係る請求項7に記載のシステムは、
請求項1に記載のアセンブラ、請求項2に記載のコンパイラ、請求項3に記載のリンカ、請求項4に記載のリンカ、請求項5に記載のアセンブラ、若しくは、請求項6に記載のコンパイラのうち、少なくとも一つを含む、プログラム領域の占有量を低減化するプログラム開発支援システムである。
本発明を利用することにより、以下のような効果を得ることができる。
アセンブリ言語で書かれたソースファイルを機械語に翻訳してオブジェクトファイルを生成するアセンブラにおいて、マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロの呼び出しを利用するというプログラミングの内容に、全く同じ引数で以ってマクロ呼び出しを複数回行うという処理がある場合に、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化若しくは関数化、またはライブラリ化する。このことにより、プログラム容量を低減化することができる。
高級プログラミング言語で書かれたソースファイルを翻訳してアセンブリ言語ソースを生成する、又は機械語に翻訳してオブジェクトファイルを生成するコンパイラにおいて、マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロの呼び出しを利用するというプログラミングの内容に、全く同じ引数で以ってマクロ呼び出しを複数回行うという処理がある場合、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化若しくは関数化、またはライブラリ化する。このことにより、プログラム容量を低減化することができる。
更に、本発明に係るリンカによれば、容量を低減化した実行形式プログラムを生成できる。
以下、図面を参照して本発明に係る好適な実施の形態を説明する。
図1は、本発明に係る好適な実施形態であるプログラム開発支援システムの概略のフロー図である。図1において、ホストコンピュータ2にて作成されたアセンブラソースプログラム群8は、アセンブラ10によりオブジェクトファイル12に翻訳される。また、高級言語ソースプログラム4は、コンパイラ6により夫々、アセンブラソース8、又はオブジェクトファイル12に翻訳される。アセンブラソース8に変換される場合は、さらにアセンブラ10を通じてオブジェクトファイル12に翻訳される。それらオブジェクトファイル12はリンカ14により実行形式プログラム16とされる。
≪第1の実施の形態≫
まず、第1の実施の形態に係るアセンブラ10を説明する。このアセンブラは、例えば、画像処理用プロセッサのようなレジスタ数が非常に多いプロセッサ向けアセンブラである。
図3、及び図4で示すようなマクロ定義を用いたアセンブラソースプログラムを想定する。図3はマクロの定義部、図4はマクロの使用部である。図3のマクロは、多くのレジスタにデータが入っており、そのデータを用いて何らかの処理するような例である。このマクロを使用する図4において、(1)、(2)、(4)の処理部は、引数が異なるため、異なる処理を行うことになる。しかし、(1)、(3)、(5)の処理部は、同一の引数を含むため、同一の処理を行うことになる。
このように、一つのマクロが、複数の記述にて、同一の引数を含み拠って同一の処理を行うのであれば、以下に示す共通化を利用すると、メモリ容量の低減化に繋げることができる。一つのマクロが同一の引数を含み同一の処理を行う記述の、現出する頻度が多ければ多いほど、その効果は顕著である。
図1のアセンブラ10は、マクロ使用の記述を読み取ると、そのマクロ名とその引数を示す図5に示すようなテーブルを作成する。そして、アセンブラ10は、その中で共通のものを検索する。共通な部分が存在する場合、アセンブラ10はその引数による展開コードをサブルーチン化する。
図3乃至図5の例において、そのサブルーチン化したマクロ部分の名称をFUNC1とすると、図4で示すアセンブラソースS1は、図6で示すようなアセンブラソースS1’となる。なお、図5で示すマクロ情報テーブルは、個々のオブジェクトファイル12内に埋め込まれる。このテーブルは、後で説明するように、リンカ14で結合処理されるオブジェクトファイルの全体を通してのマクロ頻度情報ファイル18生成に、利用される。
図6は、図4の(1)における引数を図3に従い展開し、その展開部分にサブルーチン名であるラベル(FUNC1)を付加し、またそのサブルーチンの最後に呼び出し元に戻るためのリターン処理(rtn)を付加したものである。
また、図6のFUNC1サブルーチン部分を、別のソースファイルにすることや、ライブラリオブジェクトとして生成させることもできる。別のソースファイルにする場合は、通常と同様に、サブルーチン名のラベル定義宣言を追加して、アセンブルを行い、オブジェクトファイルを生成する。同時に、呼び出し側ファイルでは外部ラベル宣言を付加する。図7に、別のソースファイルにした場合の定義部の例、また、図8に、呼び出し側ファイルの例であるソースファイルS1”を示す。ライブラリ化する(ライブラリオブジェクトとする)場合は、さらに、そのオブジェクトにした定義部を、その処理系のライブラリアンにてライブラリ化することになる。
このようにして、マクロ展開の共有化を行った各オブジェクトファイル、若しくは別のソースファイル化したオブジェクトファイル、又はライブラリを含めての結合処理を、リンカ14にて行い、メモリ使用量を低減化した実行形式プログラムP1を生成する。
更に、マクロ呼び出しが、別々のソースファイルに渡って記述されていても、第1の実施の形態に係るリンカ14を利用すれば、以下のように、実行形式プログラムの容量の低減を図れる。
即ち、図3で示すマクロ定義部分が複数のアセンブラソースファイルにインクルードされていて、図4の(1)〜(5)で示すようなマクロ呼び出しが、夫々、別のソースファイルで記述されていたとする。この場合、個別のソースファイルのみのアセンブル処理では、複数のソースファイルに渡って記述されている共通部分が共通部分であることが判断され得ない。
そこで、リンカ14にて、各オブジェクトファイル12の結合処理を行うときに、一旦実行形式プログラムP1を生成しつつ、同時に各オブジェクトファイル12に埋め込まれたマクロ情報テーブルを基に、図9で示すようなソースファイル名付きのマクロ頻度情報ファイル18を生成する。
この図9で示されるマクロ頻度情報ファイル18を利用して、改めてアセンブラ10は、各ソースファイル8をマクロ展開の共通化処理を伴ってアセンブルし、再度リンカ14にて結合処理を行って、メモリ使用量を低減化した実行形式プログラムP2を生成する。
上記のリンカ14が、各オブジェクトファイル12に埋め込まれたマクロ情報テーブルを基に(図9で示すような)ソースファイル名付きのマクロ頻度情報ファイル18を生成する処理を、行う手段を独立させてもよい。
≪第2の実施の形態≫
続いて、第2の実施の形態に係るコンパイラ6を説明する。このコンパイラ6は、高級言語ソースファイル向けのコンパイラであり、特に、画像処理用プロセッサのようにレジスタ数が非常に多いプロセッサ向けCコンパイラであるとする。
図10、及び図11で示すようなマクロ定義に係る「#define」を用いたCソースプログラムを想定する。図10はマクロの定義部、図11はマクロの使用部である。図10のマクロも、多くのレジスタにデータが入っており、そのデータを用いて何らかの処理をするような例である。このマクロを使用する図11において、(1)、(2)、(4)の処理部は、引数が異なるため、異なる処理を行うことになる。しかし、(1)、(3)、(5)の処理部は、同一の引数を含むため、同一の処理を行うことになる。
このように、一つのマクロが、複数の記述にて、同一の引数を含み拠って同一の処理を行うのであれば、以下に示す共通化を利用すると、メモリ容量の低減化に繋げることができる。一つのマクロが同一の引数を含み同一の処理を行う記述の、現出する頻度が多ければ多いほど、その効果は顕著である。
前に説明した第1の実施の形態に係るアセンブラ10の場合と同様に、(図1の)コンパイラ6は、マクロ使用の記述を読み取ると、そのマクロ名とその引数を示す図12に示すようなテーブルを作成する。そして、コンパイラ6は、その中で共通なものを検索する。共通な部分が存在する場合、コンパイラ6はその引数による展開コードを関数化する。
図10乃至図12の例において、その関数化したマクロ部分の名称をfunc2とすると、図11で示すC言語ソースS2は、図13で示すようなC言語ソースS2’となる。なお、図12で示すマクロ情報テーブルも、個々のオブジェクトファイル12内に埋め込まれる。このテーブルも、後で説明するように、リンカ14で結合処理されるオブジェクトファイルの全体を通してのマクロ頻度情報ファイル18生成に、利用される。
また、第1の実施の形態に係るアセンブラ10と同様に、図13の関数func2の部分を、別のソースファイルにすることや、ライブラリオブジェクトとして生成させることもできる。別のソースファイルにする場合は、通常と同様に、コンパイル、及びアセンブル処理を行い、オブジェクトファイルを生成する。同時に、呼び出し側ファイルでその関数名の外部宣言を付加する。ライブラリ化する(ライブラリオブジェクトとする)場合は、さらに、そのオブジェクトファイルを、その処理系のライブラリアンにてライブラリ化することになる。
このようにして、マクロ展開の共有化を行った各オブジェクトファイル、若しくは別のソースファイル化したオブジェクトファイル、又はライブラリを含めての結合処理を、リンカ14にて行い、メモリ使用量を低減化した実行形式プログラムP1を生成する。
更に、マクロ呼び出しが、別のソースファイルに渡って記述されていても、第2の実施の形態に係るリンカ14を利用すれば、以下のように、実行形式プログラムの容量の低減化を図れる。
即ち、図10で示すマクロ定義部分が複数のC言語ソースファイルにインクルードされていて、図11の(1)〜(5)で示すようなマクロ呼び出しが、夫々、別のソースファイルで記述されていたとする。この場合、個別のソースファイルのみのコンパイル処理では、複数のソースファイルに渡って記述されている共通部分が共通部分であることが判断され得ない。
そこで、リンカ14にて、各オブジェクトファイル12の結合処理を行うときに、一旦実行形式プログラムP1を生成しつつ、同時に各オブジェクトファイル12に埋め込まれたマクロ情報テーブルを基に、図9で示すようなソースファイル名付きのマクロ頻度情報ファイル18を生成する。
この図9で示されるマクロ頻度情報ファイル18を利用して、改めてコンパイラ6は、各ソースファイル8をマクロ展開の共通化処理を伴ってコンパイルし、再度リンカ14にて結合処理を行って、メモリ使用量を低減化した実行形式プログラムP2を生成する。
上記のリンカ14が、各オブジェクトファイル12に埋め込まれたマクロ情報テーブルを基に(図9で示すような)ソースファイル名付きのマクロ頻度情報ファイル18を生成する処理を、行う手段についても独立させてもよい。
≪その他の実施の形態≫
第1の実施の形態、及び第2の実施の形態に示されるような同一処理のサブルーチン化若しくは関数化は、例えば上流設計ツールにおいて、予め用意されている共通の処理、ライブラリ等を組み合わせて、自動的にソースコードを生成するようなシステムに用いることができる。
本発明は、CPU/DSPなどのマイコン組み込み機器ソフトウエア開発に利用できる。
本発明に係る好適な実施形態であるプログラム開発支援システムの概略のフロー図である。 従来技術におけるプログラム開発支援システムの概略のフロー図である。 マクロ定義を用いたアセンブラソースプログラムの例であり、マクロの定義部の例である。 マクロ定義を用いたアセンブラソースプログラムの例であり、マクロの使用部の例である。 第1の実施の形態に係るアセンブラにより作成される、マクロ名とその引数を示すテーブルの例である。 図4で示すアセンブラソースを、第1の実施の形態に係るアセンブラが、作成し直したものである。 第1の実施の形態に係るアセンブリにより、別のソースファイルにされた定義部の例である。 図7の定義部を利用する場合の、呼び出し側ファイルであるソースファイルの記述内容である。 リンカが作成する、ソースファイル名付きのマクロ頻度情報ファイルの例である。 「#define」を用いたCソースプログラムの例であり、マクロの定義部の例である。 「#define」を用いたCソースプログラムの例であり、マクロの使用部の例である。 第2の実施の形態に係るコンパイラにより作成される、マクロ名とその引数を示すテーブルの例である。 図11で示すアセンブラソースを、第2の実施の形態に係るコンパイラが、作成し直したものである。
符号の説明
2・・・ホストコンピュータ、6・・・コンパイラ、8・・・アセンブラソースファイル、10・・・アセンブラ、12・・・オブジェクトファイル、14・・・リンカ、16・・・実行形式ファイル、18・・・マクロ頻度情報ファイル。

Claims (7)

  1. アセンブリ言語で書かれたソースファイルを機械語に翻訳してオブジェクトファイルを生成するアセンブラにおいて、
    マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロを呼び出すことによりプログラムを構築するとき、同一の引数をもってマクロ呼び出しを複数回行う場合、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するアセンブラ。
  2. 高級プログラミング言語で書かれたソースファイルを翻訳してアセンブリ言語ソースを生成する、または機械語に翻訳してオブジェクトファイルを生成するコンパイラにおいて、
    マクロによる一連の処理内容をひとつのブロック内に定義し、そのマクロを呼び出すことによりプログラムを構築するとき、同一の引数をもってマクロ呼び出しを複数回行う場合、その引数によるマクロ処理を、同ファイルまたは別ファイル内に、サブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するコンパイラ。
  3. 複数のオブジェクトファイルを結合して、実行形式プログラムを生成するリンカにおいて、
    請求項1に記載のアセンブラ、又は請求項2に記載のコンパイラによるオブジェクトファイルを結合するとき、同ファイル内または別ファイル内に、自動的に生成されたサブルーチン若しくは関数、またはライブラリを含めて結合処理を行うリンカ。
  4. 請求項3に記載のリンカにおいて、
    請求項1に記載のアセンブラによる一つのアセンブル単位、または請求項2に記載のコンパイラによる一つのコンパイル単位では、同じ引数を持つマクロ呼び出しが複数回行われていなくとも、
    複数のアセンブル単位に渡って又は複数のコンパイル単位に渡っては、複数回行われている場合、それらのマクロの引数を含めたマクロ頻度情報を生成するリンカ。
  5. 請求項1記載のアセンブラにおいて、
    請求項4記載のリンカにて生成されたマクロ頻度情報を基に、そのマクロ処理をサブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するアセンブラ。
  6. 請求項2記載のコンパイラにおいて、
    請求項4記載のリンカにて生成されたマクロ頻度情報を基に、そのマクロ処理をサブルーチン化若しくは関数化、またはライブラリ化して、プログラム容量を低減化するコンパイラ。
  7. 請求項1に記載のアセンブラ、請求項2に記載のコンパイラ、請求項3に記載のリンカ、請求項4に記載のリンカ、請求項5に記載のアセンブラ、若しくは、請求項6に記載のコンパイラのうち、少なくとも一つを含む、プログラム領域の占有量を低減化するプログラム開発支援システム。

JP2003356447A 2003-10-16 2003-10-16 プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム Pending JP2005122452A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003356447A JP2005122452A (ja) 2003-10-16 2003-10-16 プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003356447A JP2005122452A (ja) 2003-10-16 2003-10-16 プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム

Publications (1)

Publication Number Publication Date
JP2005122452A true JP2005122452A (ja) 2005-05-12

Family

ID=34613691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003356447A Pending JP2005122452A (ja) 2003-10-16 2003-10-16 プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム

Country Status (1)

Country Link
JP (1) JP2005122452A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060109A (ja) * 2009-09-11 2011-03-24 Ricoh Co Ltd 組み込み用プログラム開発装置及び組み込み用プログラム開発方法
JP2013513868A (ja) * 2009-12-09 2013-04-22 ザ マスワークス, インク グラフィカル状態遷移図モデルにおける再利用候補の正規化バージョン
US8566813B2 (en) 2009-03-03 2013-10-22 Samsung Electronics Co., Ltd. Method and system generating execution file system device
CN103440155A (zh) * 2013-07-05 2013-12-11 万高(杭州)科技有限公司 一种数字信号处理器的编译器
US9244850B2 (en) 2011-11-21 2016-01-26 International Business Machines Corporation Device for executing program instructions and system for caching instructions
US9424005B1 (en) 2009-12-09 2016-08-23 The Mathworks, Inc. Templatized component
US10365897B1 (en) 2012-05-23 2019-07-30 The Mathworks, Inc. Model ring component

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566813B2 (en) 2009-03-03 2013-10-22 Samsung Electronics Co., Ltd. Method and system generating execution file system device
JP2011060109A (ja) * 2009-09-11 2011-03-24 Ricoh Co Ltd 組み込み用プログラム開発装置及び組み込み用プログラム開発方法
JP2013513868A (ja) * 2009-12-09 2013-04-22 ザ マスワークス, インク グラフィカル状態遷移図モデルにおける再利用候補の正規化バージョン
US9424005B1 (en) 2009-12-09 2016-08-23 The Mathworks, Inc. Templatized component
US9864588B2 (en) 2009-12-09 2018-01-09 The Mathworks, Inc. Canonicalized versions of reuse candidates in graphical state diagrams
US9244850B2 (en) 2011-11-21 2016-01-26 International Business Machines Corporation Device for executing program instructions and system for caching instructions
US10365897B1 (en) 2012-05-23 2019-07-30 The Mathworks, Inc. Model ring component
CN103440155A (zh) * 2013-07-05 2013-12-11 万高(杭州)科技有限公司 一种数字信号处理器的编译器

Similar Documents

Publication Publication Date Title
JPH08339304A (ja) 機械独立コードを含むプラットフォーム標準オブジェクト・ファイルを生成する方法および装置
JP2006092544A (ja) プリオペレーティングシステム環境におけるモジュールの動的リンク
JP2002024029A (ja) コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体
US8191054B2 (en) Process for handling shared references to private data
JP2001022591A (ja) コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法
JP3802058B2 (ja) ソフトウェア・コンパイル・ユニットを条件付きでコンパイルするシステム、方法およびコンパイラ・プリプロセッサ
JP2005122452A (ja) プログラミング容量を低減化するアセンブラ、コンパイラ、リンカ、及びプログラム開発支援システム
US7458071B2 (en) Compilation method, compiler apparatus and compiler
JP5048949B2 (ja) 非同期プログラムフローのモデリングを含むソフトウェアツール
US8966463B2 (en) Eliminating redundant function calls
US20080307177A1 (en) Program conversion device
US20010039653A1 (en) Program conversion method, program conversion apparatus, storage medium for storing program conversion program and program conversion program
JP2005129001A (ja) プログラム実行装置、マイクロプロセッサ及びプログラム実行方法
US20050125783A1 (en) Program optimization with intermediate code
JP5360506B2 (ja) マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
US20020073133A1 (en) Register allocation method and software development method for various execution environments and LSI for executing developed software
US11762640B2 (en) Program, information conversion device, and information conversion method
Lobry et al. Controlling the performance overhead of component-based systems
Leupers Register allocation for common subexpressions in DSP data paths
US6934892B2 (en) Computing system construction method under execution environment to be dependent on OS
JP2011180814A (ja) コンパイラ装置、コンパイル方法及びプログラム
JP3634712B2 (ja) コンパイラ装置
JP2002259121A (ja) ソースラインデバッグ装置
US7478372B2 (en) Method for operating a computer system
Cilio et al. Efficient code generation for ASIPs with different word sizes

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20060125

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080801

A131 Notification of reasons for refusal

Effective date: 20090224

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20090424

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100223