JP2005301415A - コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム - Google Patents

コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム Download PDF

Info

Publication number
JP2005301415A
JP2005301415A JP2004113139A JP2004113139A JP2005301415A JP 2005301415 A JP2005301415 A JP 2005301415A JP 2004113139 A JP2004113139 A JP 2004113139A JP 2004113139 A JP2004113139 A JP 2004113139A JP 2005301415 A JP2005301415 A JP 2005301415A
Authority
JP
Japan
Prior art keywords
declared
program
array
variable
memory
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
JP2004113139A
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 JP2004113139A priority Critical patent/JP2005301415A/ja
Publication of JP2005301415A publication Critical patent/JP2005301415A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】変数の占めるメモリ容量を最適化するコンパイル方式およびシミュレータおよびプログラム開発支援システムを提供する。
【解決手段】宣言された変数に対して、静的にメモリ領域を確保してオブジェクトコードを生成するコンパイラにおいて、変数の値が、プログラムを実行した結果、型宣言されたサイズより小さい値しか持ち得ない場合に、型宣言されたサイズより小さいメモリ領域を確保してオブジェクトファイルを生成する。このようにすれば、宣言された静的な変数に対して、使用される値の範囲がその宣言されたサイズ以下である場合、メモリ占有量を小さくすることができる。
【選択図】 図1

Description

本発明は、コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システムに関し、特に、変数の占めるメモリ容量を最適化するコンパイル方式およびシミュレータおよびプログラム開発支援システムに関する。
従来より、プログラム開発は、図12に示すように、ホストコンピュータ上でソースファイルをコンパイルし、オブジェクトファイルを生成し、そのオブジェクトファイルからリンカにより実行形式プログラムを生成していた。
通常、C言語等の高級プログラミング言語にて、変数を使用する場合、数値ならint型の宣言を用いることが多い。扱う数値が大きいことが分かっている時は、long型、小さい時は、short型やchar型が用いられるが、最も一般的にはint型が用いられる。
ところで、一旦宣言された変数は、コンパイル時点でその占有するメモリサイズが決定されてしまい、たとえプログラム実行時に、数値の範囲が小さかったとしても、後からメモリ占有量が小さくなることはない。
このため、特に組み込み機器用プログラミングのように、メモリ容量に制限がある場合、使用されない無駄なメモリ領域が存在することになっていた。
同様に、添え字付きで宣言された配列が占めるメモリ容量も、たとえプログラム実行時に、その配列全てを使用しないとしても、そのままのメモリ容量が占有されていた。
そこで、従来技術として、コンパイル時に判明している定数を用いた演算の場合に、その変数の範囲を調べ、適切な型を求める手法が提案されているが、コンパイル時に値が不明である変数値に対しては、前記従来技術の発明を適用することはできない(特許文献1、参照)。
特開2000-339172号公報
ここで、従来技術の具体的な問題点を列挙する。
(1)宣言された静的な変数に対して、たとえ使用される値の範囲がその宣言されたサイズ以下だとしても、コンパイラが宣言されたサイズを変えてメモリ占有量を小さく確保することはなかった。
(2)宣言された静的な配列において、たとえ配列のメモリ領域が、宣言された範囲より小さい範囲しか使用されない場合でも、コンパイラが宣言されたサイズを変えてメモリ占有量を小さく確保することはなかった。
(3)宣言された一時変数に対して、たとえ使用される値の範囲がその宣言されたサイズ以下だとしても、コンパイラが宣言されたサイズを変えてメモリ領域をそのサイズより小さく確保することはなかった。
(4)宣言された一時配列において、たとえ配列のメモリ領域が、宣言された範囲より小さい範囲しか使用されない場合でも、コンパイラが宣言されたサイズを変えてメモリ占有量を小さく確保することはなかった。
(5)シミュレータにおいて、プログラム実行時に、各変数の実際に変化する最大値や最小値を記録し、また各配列の実際のメモリ使用量を記録し、その内容を外部ファイルに生成することはなかった。
(6)エミュレータにおいて、プログラム実行時に、各変数の実際に変化する最大値や最小値を記録し、また各配列の実際のメモリ使用量を記録し、その内容を外部ファイルに生成することはなかった。
(7)プログラムの実行時の変数の取り得る最大値、配列のメモリ使用量からプログラムのメモリ使用量を最小化するコンパイラ、リンカ、シミュレータ、エミュレータで構成されるプログラム開発支援システムがなかった。
本発明は上記の問題を解決すべくなされたものであり、変数の占めるメモリ容量を最適化するコンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システムの提供を目的とする。
前記目的を達成するための本発明の処理の概要を説明する。
図1において、ホストコンピュータH1にてプログラム作成を行う時、コンパイラC1は各ソースプログラムファイルよりそれぞれオブジェクトファイルを生成する。
リンカL1は、これらのオブジェクトファイルの結合処理を行い、実行形式プログラムP1を生成する。
実行形式プログラムP1は、シミュレータS1により、割り込み処理を含めて実動作に近い十分な動作をさせる。ここでシミュレータS1は、各静的な変数、一時変数への書き込み値をトレースし、その最大値と最小値を記録する。また、各配列領域でアクセスされる最小アドレスと最大アドレスを記録する。それらの変数、配列の記録データを外部ファイルF1に出力する。
この出力された変数、及び配列データを元に、再度ソースプログラムをコンパイルする。この時、各変数のメモリサイズは、宣言されたサイズが、実際に取り得る値から導き出されるサイズより大きければ、後者のサイズとしてメモリ確保、及びコード展開する。
また、各配列の占有サイズも、宣言されたサイズよりも、実際に使用されるサイズが小さければ、その小さいサイズとしてメモリ確保、及びコード展開する。
こうして再コンパイルし、生成された各オブジェクトファイルを再度リンカにて結合処理を行う。これにより、変数、及び配列の不要なメモリ領域を除去した実行形式プログラムが生成される。
同様に、シミュレータの代わりに図11に示すように、エミュレータE1により、各静的な変数、一時変数への書き込み値をトレースし、その最大値と最小値を記録する。また、各配列領域で使用される最小アドレスと最大アドレスを記録する。それらの変数、配列の記録データを外部ファイルF1に出力し、同様な再コンパイル、再リンクにより、変数、及び配列の不要なメモリ領域を除去した実行形式プログラムが生成される。
前記目的を達成するために請求項1記載の発明は、宣言された変数に対して、静的にメモリ領域を確保してオブジェクトコードを生成するコンパイラにおいて、
前記変数の値が、プログラムを実行した結果、型宣言されたサイズより小さい値しか持ち得ない場合に、前記型宣言されたサイズより小さいメモリ領域を確保してオブジェクトファイルを生成する構成としてある。
このようにすれば、宣言された静的な変数に対して、使用される値の範囲がその宣言されたサイズ以下である場合、型宣言されたサイズより小さいメモリ領域を確保してオブジェクトファイルを生成するので、メモリ占有量を小さくすることができる。
また、請求項2記載の発明は、宣言された配列に対して、静的にメモリ領域を確保してオブジェクトコードを生成するコンパイラにおいて、
前記配列のメモリ使用量が、プログラムを実行した結果、宣言された範囲より小さい範囲しか使用しない場合に、前記宣言された範囲のサイズより小さいメモリ領域を確保してオブジェクトファイルを生成する構成としてある。
このようにすれば、宣言された静的な配列において、配列のメモリ領域が、宣言された範囲より小さい範囲しか使用されない場合、宣言された範囲のサイズより小さいメモリ領域を確保してオブジェクトファイルを生成するので、メモリ占有量を小さくすることができる。
また、請求項3記載の発明は、宣言された変数に対して、プログラム実行時に一時的にメモリ領域を確保するようなオブジェクトコードを生成するコンパイラにおいて、
前記変数の値が、プログラムを実行した結果、型宣言されたサイズより小さい値しか持ちえない場合に、前記型宣言されたサイズより小さいメモリ領域を確保するようにオブジェクトファイルを生成する構成としてある。
このようにすれば、宣言された一時変数に対して、使用される値の範囲がその宣言されたサイズ以下である場合、型宣言されたサイズより小さいメモリ領域を確保するようにオブジェクトファイルを生成するので、メモリ領域をそのサイズより小さく確保することができる。
また、請求項4記載の発明は、宣言された配列に対して、プログラム実行時に一時的にメモリ領域を確保するようなオブジェクトコードを生成するコンパイラにおいて、
前記配列のメモリ使用量が、プログラムを実行した結果、宣言されたサイズより小さい範囲しか使用しない場合に、前記宣言されたサイズより小さいメモリ領域を確保するようにオブジェクトファイルを生成する構成としてある。
このようにすれば、宣言された一時配列において、配列のメモリ領域が、宣言された範囲より小さい範囲しか使用されない場合、宣言されたサイズより小さいメモリ領域を確保するようにオブジェクトファイルを生成するので、メモリ占有量を小さく確保することができる。
また、請求項5記載の発明は、ソースファイルをコンパイルして複数のオブジェクトファイルを生成し、前記複数のオブジェクトファイルをリンクして生成された実行形式プログラムをシミュレートするシミュレータにおいて、
各変数に対するメモリ書き込み値の最大値と最小値のみを記録、または各配列における最大使用量を記録し、前記最大値と最小値のみの記録内容、または前記最大使用量の記録内容を、外部ファイルに生成する構成としてある。
このようにすれば、シミュレータにおいて、プログラム実行時に、各変数の実際に変化する最大値や最小値を記録し、また各配列の実際のメモリ使用量を記録し、その内容を外部ファイルに生成することができる。
また、請求項6記載の発明は、ソースファイルをコンパイルして複数のオブジェクトファイルを生成し、前記複数のオブジェクトファイルをリンクして生成された実行形式プログラムを実行するエミュレータにおいて、
各変数に対するメモリ書き込み値の最大値と最小値のみを記録、または各配列における最大使用量を記録し、前記最大値と最小値のみの記録内容、または前記最大使用量の記録内容を、外部ファイルに生成する構成としてある。
このようにすれば、エミュレータにおいて、プログラム実行時に、各変数の実際に変化する最大値や最小値を記録し、また各配列の実際のメモリ使用量を記録し、その内容を外部ファイルに生成することができる。
また、請求項7記載の発明は、プログラム開発支援システムを、請求項1〜請求項6記載のコンパイラ、シミュレータ、エミュレータで構成される変数、配列のメモリ領域の占有量を低減化する構成としてある。
このようにすれば、コンパイラ、リンカ、シミュレータ、エミュレータで構成されるプログラム開発支援システムにおいて、プログラムの実行時の変数の取り得る最大値、配列のメモリ使用量からプログラムのメモリ使用量を最小化することができる。
請求項1記載の発明によれば、宣言された静的な変数に対して、使用される値の範囲がその宣言されたサイズ以下である場合、メモリ占有量を小さくすることができる。
請求項2記載の発明によれば、宣言された静的な配列において、配列のメモリ領域が、宣言された範囲より小さい範囲しか使用されない場合、メモリ占有量を小さくすることができる。
請求項3記載の発明によれば、宣言された一時変数に対して、使用される値の範囲がその宣言されたサイズ以下である場合、メモリ領域をそのサイズより小さく確保することができる。
請求項4記載の発明によれば、宣言された一時配列において、配列のメモリ領域が、宣言された範囲より小さい範囲しか使用されない場合、メモリ占有量を小さく確保することができる。
請求項5記載の発明によれば、シミュレータにおいて、プログラム実行時に、各変数の実際に変化する最大値や最小値を記録し、また各配列の実際のメモリ使用量を記録し、その内容を外部ファイルに生成することができる。
請求項6記載の発明によれば、エミュレータにおいて、プログラム実行時に、各変数の実際に変化する最大値や最小値を記録し、また各配列の実際のメモリ使用量を記録し、その内容を外部ファイルに生成することができる。
請求項7記載の発明によれば、コンパイラ、リンカ、シミュレータ、エミュレータで構成されるプログラム開発支援システムにおいて、プログラムの実行時の変数の取り得る最大値、配列のメモリ使用量からプログラムのメモリ使用量を最小化することができる。
[実施形態1]
以下、本発明を図示の実施形態に基づいて説明する。
図1は、本実施形態の処理の流れを示す図である。
図1において、ホストコンピュータH1にて作成されたソースプログラム群は、コンパイラC1によりそれぞれデバッグ情報付きで複数のオブジェクトファイルが生成され、リンカL1が、これら複数のオブジェクトファイルの結合処理を行い、実行形式プログラムP1が生成される。
この実行形式プログラムP1がシミュレータS1にダウンロードされ、プログラムが実行される。この時、各変数への書き込みデータをトレースし、その変数の取り得る最大値と最小値を記録する。この最大値、及び最小値は、その変数の符号付きであるか否かにより異なるため、その情報に従って記録される。
記録される情報の例を図2に示す。ここで、配列の場合は、全配列メンバー全てに対しての最小値、最大値を記録する。
また、各配列領域のアクセスされる先頭から相対アドレスの最小値と最大値を記録する。その情報例を図3に示す。
プログラムの実行が終わり、それらの記録した変数、及び配列情報を外部ファイルF1にファイル化する。外部ファイルF1の内容は、図2、及び図3の内容を含んで、例えば図4のような形式になる。
コンパイラC1は、このファイル内部情報(変数、及び配列情報)を元に、再度ソースファイルのコンパイルを実行し、実際にとり得る値に沿った変数の型変換、配列のサイズ変換を行い、メモリ容量の低減化を行ったオブジェクトファイルを生成する。リンカL1は、それらのオブジェクトファイルを再結合し、メモリ容量を低減化した実行形式プログラムP2を生成することになる。
ここで、図5で示すようなC言語ソースファイルがあり、一旦実行形式プログラム生成後、シミュレータで実行した結果、変数の実際の取り得る値が、図6で示される値であるとすると、unsigned intである変数abcは最大値が250なので、unsigned charのサイズで収まり、ext1もcharサイズで収まる。def、xyz、ext2は、それぞれ宣言通りのサイズを要することになる。
これにより、図7のように、abc、ext1がそれぞれ小さいサイズの型に見なしてコンパイルを実行する。ただし、一時変数をメモリに確保せず、プロセッサのレジスタに置き、サイズ変更しても効果がない場合は、サイズ変更は行われない。図5では、自動変数であるiが該当するものとする。なお、ここで、charは1バイト、intは2バイト、longは4バイトとする。
また、図8で示すようなC言語ソースファイルがあり、配列のアクセスされる範囲が、図9(a),(b)で示される値であるとすると、変数のサイズについては、上記同様の方法で小さくできるものは小さくする。つまり、ext1、ext2、ext4がそれに該当する。配列については、abcはabc[0]からabc[12]までしか用いず、defはdef[10]からdef[28]までしか用いられないため、それぞれabc[13]、def[19]の宣言で収まることになる。これにより、図10のように配列サイズが小さいサイズに見なされる。
また、abcの場合は添え字0から始まるため、使用される最も大きい添え字分まで確保するだけでよいが、defの場合は、添え字が10から始まるため、この配列defを使用している部分は、そのオフセット分を差し引いてコンパイルを実行する。図10における「def[ext2+i-10]」の「-10」の部分はそのための記述である。
ここで、図9(b)における配列のアドレス最小値、最大値は、宣言されている型のサイズを元にして添え字の値を計算させたものを示している。この計算は、コンパイラが行う場合と、シミュレータが情報ファイルを生成する時に行う場合がある。
さらに、ここでは、各配列メンバーの値がその宣言されたサイズより小さければ、上記同様に、型を小さいものと見なしてコンパイルする。つまり、unsigned int宣言されている配列abcは、最大値が250なので、unsigned charで収まることになる。
なお、配列サイズにおける本例は、一次元配列での変換であるが、多次元配列でも同様にメモリ容量の低減化が実現できる。
[実施形態2]
図11は、本実施形態の処理の流れを示す図である。H2は、ホストコンピュータである。
図11において、図1と同様に生成された実行形式プログラムP1を、デバッガD1を通じてエミュレータE1にダウンロードし、実環境での実行トレースからも、同様に変数情報、配列情報を得る。
ただし、エミュレータE1では、リアルタイムトレース用のトレースバッファに、一旦変数への読み書き情報を蓄積し、プログラム終了後(停止後)に、そのトレース情報から、デバッガD1により上記情報を解析し得ることになる。
以下、上記説明したシミュレータS1での手順と同様にして、メモリ容量を低減化した実行形式プログラムP2を生成することになる。
本発明は、CPU/DSP等のマイコン組み込み機器ソフトウェア開発に好適である。
本発明の実施形態1の処理の流れを示す図である。 同実施形態1における、記録される情報の例を示す図である。 同実施形態1における、各配列領域のアクセスされる先頭から相対アドレスの最小値と最大値を記録した情報例を示す図である。 同実施形態1における、外部ファイルの内容の形式を示す図である。 同実施形態1における、C言語ソースファイルの例である。 図5で示したC言語ソースファイルに対し、一旦実行形式プログラム生成後、シミュレータで実行した結果、変数の実際の取り得る値の例である。 図6で示したabc、ext1がそれぞれ小さいサイズの型に見なしてコンパイルを実行する場合の図である。 同実施形態1における、別のC言語ソースファイルの例である。 図8で示したC言語ソースファイルに対し、配列のアクセスされる範囲を示す図であって、(a)変数情報テーブル、(b)は配列情報テーブルである。 図8で示したC言語ソースファイルに対し、abc、defがそれぞれ小さいサイズの型に見なしてコンパイルを実行する場合の図である。 本発明の実施形態2の処理の流れを示す図である。 従来例のプログラム開発の処理の流れを示す図である。
符号の説明
H1,H2 ホストコンピュータ
C1 コンパイラ
L1 リンカ
P1 縮小前の実行形式プログラム
P2 縮小後の実行形式プログラム
S1 シミュレータ
F1 外部ファイル
D1 デバッガ
E1 エミュレータ
T1 トレースメモリ

Claims (7)

  1. 宣言された変数に対して、静的にメモリ領域を確保してオブジェクトコードを生成するコンパイラにおいて、
    前記変数の値が、プログラムを実行した結果、型宣言されたサイズより小さい値しか持ち得ない場合に、前記型宣言されたサイズより小さいメモリ領域を確保してオブジェクトファイルを生成することを特徴とするコンパイル方式。
  2. 宣言された配列に対して、静的にメモリ領域を確保してオブジェクトコードを生成するコンパイラにおいて、
    前記配列のメモリ使用量が、プログラムを実行した結果、宣言された範囲より小さい範囲しか使用しない場合に、前記宣言された範囲のサイズより小さいメモリ領域を確保してオブジェクトファイルを生成することを特徴とするコンパイル方式。
  3. 宣言された変数に対して、プログラム実行時に一時的にメモリ領域を確保するようなオブジェクトコードを生成するコンパイラにおいて、
    前記変数の値が、プログラムを実行した結果、型宣言されたサイズより小さい値しか持ちえない場合に、前記型宣言されたサイズより小さいメモリ領域を確保するようにオブジェクトファイルを生成することを特徴とするコンパイル方式。
  4. 宣言された配列に対して、プログラム実行時に一時的にメモリ領域を確保するようなオブジェクトコードを生成するコンパイラにおいて、
    前記配列のメモリ使用量が、プログラムを実行した結果、宣言されたサイズより小さい範囲しか使用しない場合に、前記宣言されたサイズより小さいメモリ領域を確保するようにオブジェクトファイルを生成することを特徴とするコンパイル方式。
  5. ソースファイルをコンパイルして複数のオブジェクトファイルを生成し、前記複数のオブジェクトファイルをリンクして生成された実行形式プログラムをシミュレートするシミュレータにおいて、
    各変数に対するメモリ書き込み値の最大値と最小値のみを記録、または各配列における最大使用量を記録し、前記最大値と最小値のみの記録内容、または前記最大使用量の記録内容を、外部ファイルに生成することを特徴とするシミュレータ。
  6. ソースファイルをコンパイルして複数のオブジェクトファイルを生成し、前記複数のオブジェクトファイルをリンクして生成された実行形式プログラムを実行するエミュレータにおいて、
    各変数に対するメモリ書き込み値の最大値と最小値のみを記録、または各配列における最大使用量を記録し、前記最大値と最小値のみの記録内容、または前記最大使用量の記録内容を、外部ファイルに生成するエミュレータ。
  7. 請求項1〜請求項6記載のコンパイラ、シミュレータ、エミュレータで構成される変数、配列のメモリ領域の占有量を低減化することを特徴とするプログラム開発支援システム。





JP2004113139A 2004-04-07 2004-04-07 コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム Pending JP2005301415A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004113139A JP2005301415A (ja) 2004-04-07 2004-04-07 コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004113139A JP2005301415A (ja) 2004-04-07 2004-04-07 コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム

Publications (1)

Publication Number Publication Date
JP2005301415A true JP2005301415A (ja) 2005-10-27

Family

ID=35332913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004113139A Pending JP2005301415A (ja) 2004-04-07 2004-04-07 コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム

Country Status (1)

Country Link
JP (1) JP2005301415A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123719A (ja) * 2009-12-11 2011-06-23 Renesas Electronics Corp 言語処理システム、言語処理方法、及び言語処理用プログラム
CN113326046A (zh) * 2021-05-26 2021-08-31 网易(杭州)网络有限公司 获取编译时长的方法和装置
WO2022154163A1 (ko) * 2021-01-12 2022-07-21 삼성전자주식회사 전자 장치 및 전자 장치의 메모리 관리 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS617946A (ja) * 1984-06-22 1986-01-14 Hitachi Ltd 最適化コンパイル方式
JPS62219130A (ja) * 1986-03-20 1987-09-26 Fujitsu Ltd プログラムの最適化方式
JPH02176938A (ja) * 1988-12-28 1990-07-10 Hitachi Ltd 機械語命令最適化方式
JPH07281905A (ja) * 1994-04-04 1995-10-27 Fujitsu Ltd 型宣言修正装置
JPH11212797A (ja) * 1998-01-26 1999-08-06 Nec Corp プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
JP2003150386A (ja) * 2001-11-14 2003-05-23 Matsushita Electric Ind Co Ltd コンパイラ装置及びコンパイル方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS617946A (ja) * 1984-06-22 1986-01-14 Hitachi Ltd 最適化コンパイル方式
JPS62219130A (ja) * 1986-03-20 1987-09-26 Fujitsu Ltd プログラムの最適化方式
JPH02176938A (ja) * 1988-12-28 1990-07-10 Hitachi Ltd 機械語命令最適化方式
JPH07281905A (ja) * 1994-04-04 1995-10-27 Fujitsu Ltd 型宣言修正装置
JPH11212797A (ja) * 1998-01-26 1999-08-06 Nec Corp プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
JP2003150386A (ja) * 2001-11-14 2003-05-23 Matsushita Electric Ind Co Ltd コンパイラ装置及びコンパイル方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123719A (ja) * 2009-12-11 2011-06-23 Renesas Electronics Corp 言語処理システム、言語処理方法、及び言語処理用プログラム
WO2022154163A1 (ko) * 2021-01-12 2022-07-21 삼성전자주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
CN113326046A (zh) * 2021-05-26 2021-08-31 网易(杭州)网络有限公司 获取编译时长的方法和装置
CN113326046B (zh) * 2021-05-26 2023-09-26 网易(杭州)网络有限公司 获取编译时长的方法和装置

Similar Documents

Publication Publication Date Title
US6026235A (en) System and methods for monitoring functions in natively compiled software programs
US6795963B1 (en) Method and system for optimizing systems with enhanced debugging information
JP4833206B2 (ja) 最適化されたプログラムのためのアンワインド情報の生成
US20070234307A1 (en) Methods and apparatus to inline conditional software instrumentation
US20120131559A1 (en) Automatic Program Partition For Targeted Replay
JPH11110194A (ja) 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
JP2004164554A (ja) プログラム実行監視装置および方法
JP4041248B2 (ja) コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法
JP2007304840A (ja) コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム
US7240334B1 (en) Methods, systems, and computer program products for deferred computer program tracing
US20200183669A1 (en) Improving emulation and tracing performance using compiler-generated emulation optimization metadata
US7624381B1 (en) Portable detection of start and completion of object construction
JP2009237610A (ja) コード変換装置及びコード変換方法
KR0125605B1 (ko) 프로그램의 아키덱쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치
US6178547B1 (en) Method and apparatus for generating non-redundant symbolic debug information in computer programs
Hammacher Design and implementation of an efficient dynamic slicer for Java
JP2005301415A (ja) コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム
JP3608993B2 (ja) コンパイラ装置及びコンパイラプログラムを記録した記録媒体
JP2011090511A (ja) 実行プログラム、コンパイラ、実行プログラム動作修正装置及び実行プログラム動作修正方法
KR20130077673A (ko) 메소드 특수화를 이용한 확장된 널 포인터 검사 제거 방법
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
JP4594704B2 (ja) プログラム開発支援システム、プログラムおよび記録媒体
RU2390821C1 (ru) Способ динамической инструментации
JPH10293683A (ja) プログラムの比較解析装置、プログラムの比較解析方法、及びプログラムの比較解析プログラムを記録した機械読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20070323

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20091214

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20100323

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100524

A131 Notification of reasons for refusal

Effective date: 20101221

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110412