JPH11161501A - コンパイル装置 - Google Patents

コンパイル装置

Info

Publication number
JPH11161501A
JPH11161501A JP32896497A JP32896497A JPH11161501A JP H11161501 A JPH11161501 A JP H11161501A JP 32896497 A JP32896497 A JP 32896497A JP 32896497 A JP32896497 A JP 32896497A JP H11161501 A JPH11161501 A JP H11161501A
Authority
JP
Japan
Prior art keywords
initial value
area
program
variable
setting area
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.)
Granted
Application number
JP32896497A
Other languages
English (en)
Other versions
JP3915208B2 (ja
Inventor
Yuuji Tsujimori
誘二 辻森
Hitoshi Owaki
斉 大脇
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32896497A priority Critical patent/JP3915208B2/ja
Publication of JPH11161501A publication Critical patent/JPH11161501A/ja
Application granted granted Critical
Publication of JP3915208B2 publication Critical patent/JP3915208B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 動的構造体変数の初期化を効率よく実行する
オブジェクトコードを生成するコンパイル装置を提供す
ること。 【解決手段】 動的変数に設定する初期値を記憶する
ための初期値設定領域を出力されるオブジェクトプログ
ラム内に静的に獲得する初期値設定領域獲得手段と、獲
得した前記初期値設定領域に対して初期値を設定する初
期値設定領域初期化手段と、プログラムの実行時に動的
変数の領域を動的に獲得した際に、前記初期値設定領域
の内容を前記動的に獲得した領域に複写するコードを生
成する変数初期化用オブジェクトコード生成手段とを有
するコンパイル装置により課題を解決する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、入力されたソース
プログラムをコンパイルしてオブジェクトプログラムを
生成するコンパイラに関し、特に動的な構造体変数の初
期化に関する。
【0002】
【従来の技術】コンピュータプログラムは、通常何らか
のプログラミング言語で記述したソースプログラム(ソ
ースコード)を作成し、それをコンパイラでオブジェク
トコードに変換し、一つまたは複数のオブジェクトコー
ドをリンクすることで実行形式のプログラムとなる。
【0003】多くのプログラミング言語はその文法規約
として構造体変数をサーポートしている。また、変数は
実行形式のプログラムを作成した時点でその変数のため
の記憶領域が獲得される静的変数と、プログラムを実行
する際に動的に記憶領域が獲得される動的変数とがあ
る。従来のコンパイラでは静的変数に対しては初期値の
設定(変数の宣言の際に初期値を指定すること)が可能
であったが、動的な構造体変数への初期値の設定は不可
能であった。これは、静的変数はコンパイルの際にデー
タ領域が獲得されるので、コンパイルの際に値を設定す
ることが可能であるのに対し、動的変数はコンパイルの
際にはデータ領域が存在していないので、コンパイルの
際に値を設定することができないためである。
【0004】
【発明が解決しようとする問題点】このため、プログラ
ム開発者はソースプログラム作成時に変数の宣言とは別
に変数に対する値の設定を記述する必要があった。ま
た、値の設定は構造体変数を構成する個々の要素に対す
る値の設定として記述されるため、実行形式プログラム
のサイズが肥大してしまっていた。
【0005】また、構造体の各要素毎に要素の参照の際
に値が設定済みかどうかをチェックすることはできなか
った。本発明は、動的構造体変数に対して初期値が設定
できないという問題点および、この問題点から関連して
発生するその他の問題点を解決するものである。
【0006】
【問題を解決するための手段】そこで、本願発明では、
ソースプログラムを入力し、オブジェクトプログラムを
出力するコンパイル装置であって、動的変数に設定する
初期値を記憶するための初期値設定領域を出力されるオ
ブジェクトプログラム内に静的に獲得する初期値設定領
域獲得手段と、獲得した前記初期値設定領域に対して初
期値を設定する初期値設定領域初期化手段と、プログラ
ムの実行時に動的変数の領域を動的に獲得した際に、前
記初期値設定領域の内容を前記動的に獲得した領域に複
写するコードを生成する変数初期化用オブジェクトコー
ド生成手段とを有するコンパイル装置によって上記問題
を解決する。
【0007】
【発明の実施の形態】図1は、プログラムがコンピュー
タ上でどのように実行されるかを模式的に示す図であ
る。コンピュータ4は図示しないCPU、主記憶装置
(メモリ)、外部記憶装置、表示装置、キーボード等で
構成される。外部記憶装置にはプログラムやデータがフ
ァイルとして格納される。外部記憶装置のファイルに格
納されている実行形式プログラム1はメモリ上にロード
され、CPUによって、実行される。OS3はコンピュ
ータのハードウェア資源と実行形式プログラムを制御す
るものである。ライブラリ2は一種の実行形式プログラ
ムであって、複数の実行形式プログラムから共通に呼び
出されるものである。
【0008】実行形式プログラム1を作成するには、図
2に示すエディタ5やコンパイラ6やリンカ7を利用す
る。エディタ5、コンパイラ6、リンカ7はいずれも実
行形式のプログラムである。エディタ5は実行形式プロ
グラムのもととなるソースプログラム8を作成するため
に利用される。作成したソースプログラムはソースファ
イルとしてファイルに格納される。
【0009】コンパイラ6はソースプログラム8をオブ
ジェクトプログラム12に変換するプログラムであっ
て、図3に示すように、構文解析部9、最適化処理部1
0、コード生成部11によって構成される。構文解析部
9はファイルに格納されているソースプログラム8を読
み込んで、所定の文法規則に応じた構文解析を行い、対
応する中間言語を生成する。最適化処理部10は構文解
析部9によって生成された中間言語を、より実行効率が
よくなるように変換する。コード生成部11は最適化処
理部10によって変換して得られた中間言語をプログラ
ムが実行されるコンピュータに適したオブジェクトプロ
グラム12に変換する。
【0010】図4に示すとおり、コンパイラ6によって
生成された複数のオブジェクトプログラム(12−1、
12−2、12−3等)はリンカ7によって結合され、
実行形式プログラム1が生成される。コンパイラ6はコ
ンパイラ6を実行するためのコマンドをキーボードから
入力する等して起動される。コンパイラ6を起動する際
には、コマンドと共に、ソースプログラムを格納したソ
ースファイル名やコンパイラに対する各種の指示をオプ
ションとして指示する。オプションの一例として実行時
の未定義値検出指示オプションがある。
【0011】未定義値検出指示オプションはプログラム
の実行中に、プログラム中で利用される変数を参照する
際に、その変数に対してすでに値が代入されているか否
かをチェックし、もしも値が代入されていなかった場合
にはその旨のエラー表示を行なうような実行形式のプロ
グラムを作成するためのオプションである。このオプシ
ョンが指示された場合には変数の参照に先立って何らか
の特定の処理を行なう必要があるため、プログラムの実
行効率は低下するが、プログラムのデバッグには非常に
有用である。
【0012】構文解析部9はソースプログラムの構文解
析中に動的構造体変数の定義を認識すると、図5に示す
処理を行なう。まず、ステップS21において、未定義
値検出オプションが指示されているか否かをチェックす
る。オプションが指示されている場合にはステップS2
2にすすみ、指示されていない場合にはステップS27
に進む。
【0013】オプションが指示されていた場合、ステッ
プS22において動的構造対変数を初期化するために利
用するテンプレート領域を確保する。ここで、同じ型の
動的構造体変数のためのテンプレートが既に確保されて
いる場合には、新たにテンプレート領域を確保すること
はしない。また、テンプレート領域は最終的には実行形
式プログラム1に含まれる静的データ領域に確保され
る。
【0014】次にステップS23、S24、S25、S
26において、確保したテンプレート領域に値を設定す
る。ソースプログラム中で動的構造体変数の要素に初期
値が指定されている場合には、ステップS25で指定さ
れている初期値をその要素に対応するテンプレート中の
領域に設定する。初期値が指定されていない場合は、同
じ領域に16進数の8b8b8b8bを設定する。この
値は生成された実行形式プログラム1を実行中にプログ
ラム中の動的構造体変数の要素をアクセスする際に、そ
の要素に対して既に値が設定されているか否かをチェッ
クするために利用される。
【0015】即ち、動的構造体変数の要素をアクセスす
る際に、8b8b8b8bが設定されていれば、その要
素には値が設定されていなかった(未定義であって)と
判定し、そうでなければ値が設定されていた( 定義済み
であった)と判定すればよい。なお、定義済みであるか
否かを判定するための値として、ここでは8b8b8b
8bを使用したが、プログラム中で使用されない値また
は、非常に低い確率でしか使用されず、実用上問題の無
い値であればどのような値であってもよい。
【0016】また、ステップS21の判定において、未
定義値検出オプションが指定されていない場合には、ス
テップS27において、動的構造体変数の複数の要素の
内の1/5以上の要素に対してソースプログラム8中で
初期値が指定されているか否かをチェックする。1/5
以上の要素に対して初期値が指定されていればステップ
S28に進み、1/5未満であれば処理を終了する。な
お、ここで判定の基準とする値は必ずしも1/5である
必要はなく、生成されるプログラムの実行効率が最善と
なる値を選択すればよい。
【0017】ステップS28においては、ステップS2
2と同様に動的構造体変数を初期化するために利用する
テンプレート領域を確保する。同じ型の動的構造体変数
のためのテンプレートが既に確保されている場合には、
新たにテンプレート領域を確保することはしない。ま
た、テンプレート領域は実行形式プログラム1の静的デ
ータ領域に確保される。
【0018】テンプレート領域を確保した後に、ステッ
プS29、S30、S31において、確保したテンプレ
ート領域の、初期値が指定されている要素に対応する箇
所に指定されている初期値を設定する。初期値が指定さ
れていない要素に対しては何も値を設定しない。従っ
て、そのような要素は値が不定値となる。図7及び図8
はソースプログラムの一部を示す例である。ともに、サ
ブルーチンの定義部分の先頭を示していて、要素に初期
値が設定されているか否かが部分的に相違する以外は同
じである。
【0019】図7において、第1行目はサブルーチンの
定義の開始を示す行である。文字列subroutin
eが定義の開始を意味し、subはサブルーチンの名前
がsubであることを示す。括弧で括られたvarはサ
ブルーチンsubにはパラメータが一つあって、その名
前がvarであることを示している。サブルーチン内で
定義される変数は全て動的変数である。即ちサブルーチ
ン内で定義される構造体変数は動的構造体変数である。
動的構造体変数を含む動的変数は実行形式プログラム1
を実行中にプログラムの動的データ領域内に動的に確保
される。サブルーチンのパラメタも同様である。
【0020】2行目から9行目は動的構造体変数の型を
定義している。2行目のtypeが型の定義の開始を示
し、9行目のend typeが動的構造体変数の型の
定義の終了を示す。また、2行目のaは定義する型の型
名がaであることを示す。3行目から8行目はそれぞれ
動的構造体変数を構成する要素を定義している。各行の
integerは要素が整数型であることを意味し、二
つのコロン(::)に続く文字列(a1、a2、a3、
a4、a5、a6)はそれぞれ要素名を示し、要素名に
続く等号(=)に続く数値(1、2、3、4、5、6)
はそれそれの要素に対する初期値を示している。
【0021】10行目は1行目のvarが型aの構造体
変数を要素とする3要素の配列変数であることを示して
いる。図8に示したソースプログラムも基本的には図7
に示したものと同様の定義をするものである。ただし、
図8に示したソースプログラムは要素a5のみに対して
初期値を指定している。
【0022】構文解析部9のにおいて動的構造体変数を
検出した場合には、図7に示したソースプログラムでは
図5中のステップS27においてYの判定となり、図8
に示したソースプログラムでは図5中のステップS27
においてNの判定となる。構文解析部9で中間言語を作
成する際には、図6に示すフローチャートに従って中間
言語が生成される。
【0023】まず、ステップS41において、未定義値
検出オプションが指示されているか否かをチェックす
る。オプションが指示されている場合にはステップS4
2にすすみ、指示されていない場合にはステップS43
に進む。ステップS43に進んだ場合、さらに、初期値
が指定されている要素が動的構造体変数を構成する要素
の1/5以上であるかどうか判定し、1/5以上の場合
にはステップS42に進み、1/5未満の場合にはステ
ップS44に進む。
【0024】なお、判定の基準は必ずしも1/5である
必要はなく、図5のステップS27の判定と一致してい
ればよい。ステップS42では、図5のステップS22
またはS28において領域を確保したテンプレートを用
いて動的構造対変数を初期化するための中間言語を生成
する。ここでは、テンプレート領域のデータを変数領域
に一括して転送するための中間言語を生成する。
【0025】図9にステップS42で生成される中間言
語の一例を示す。図9に示した中間言語は、図7に示し
たソースプログラムをコンパイルする場合や、図8に示
したソースプログラムを未定義値検出オプションを指示
してコンパイルする場合に生成される。1行目と3行目
は、変数iを1から3まで変化させながら2行目を繰り
返し実行することを意味している。2行目のCMOVE
は指定された二つの領域の間で指定されたバイト数のデ
ータ転送を一括して行なうことを意味している。CMO
VEの第一パラメータはデータの転送先を、第二パラメ
ータは転送元を、第三パラメータは転送データのバイト
数を示している。
【0026】一般にコンピュータのCPUは連続するデ
ータをある領域から別の領域に一括して転送する命令を
備えており、CMOVE中間言語はコード生成部11に
おいてそのような命令に変換される。図10にステップ
S44で生成される中間言語の一例を示す。図10に示
した中間言語は、図8に示したソースコードを未定義値
検出オプションを指定せずにコンパイルする場合に生成
される。
【0027】1行目と4行目は、変数iを1から3まで
変化させながら、2行目から3行目を繰り返し実行する
ことを意味している。2行目はレジスタrに数値5をロ
ードすることを意味している。3行目はレジスタrに格
納されている値(この場合は5)を動的構造体変数の配
列であるvarのi番目の配列要素の構造体要素a5に
ストアすることを意味している。
【0028】一般にコンピュータのCPUはレジスタに
値を設定するためのロード命令およびメモリに値を格納
するためのストア命令、またはこれらの命令に相当する
命令を備えており、図10に示した中間言語はコード生
成部11において、これらの命令に変換される。また、
一般にCPUの一括データ転送命令によるデータ転送
と、ロード/ストア命令によるデータ転送とを比較した
場合、転送対象のデータ量が少量の場合はロード/スト
ア命令による転送の方がより高速に実行されるが、連続
する多量のデータを転送する場合には一括データ転送命
令の方が高速に実行される。
【0029】以上説明したようなコンパイラ6の仕組
み、特に構文解析部9の仕組みによって、動的構造体変
数の高速な初期化の設定、未定義値の検出が可能とな
る。また、プログラムの動的データ領域はプログラムの
実行時にライブラリ2を呼び出すことで実現される場
合、ライブラリの領域確保ルーチンの中で、領域確保と
ともに動的構造体変数の領域にテンプレート領域の内容
をコピーするようにしてもよい。実行形式プログラム1
がライブラリを呼び出す際には、獲得すべき領域のサイ
ズを決定するために必要な情報(サイズそのものまたは
構造体のサイズと構造体を要素とする配列の配列要素
数)とテンプレートのアドレスとをライブラリにパラメ
タとして渡す。これらのパラメタを受け取ったライブラ
リは領域を獲得するとともに、指定されたアドレスに存
在するテンプレートの内容を獲得した領域に繰り返し複
写することで初期化を行なう。こうすると、実行形式プ
ログラム1のサイズを小さくすることが可能となる。
【0030】
【発明の効果】本願発明によれば、動的構造体変数の型
定義と共に初期値を設定することがかのうとなり、ソー
スプログラムの作成者は構造体変数を獲得する度に値を
設定するように記述する必要がなくなる。また、テンプ
レートは一つの型に対して一つしか作成しないので、実
行形式プログラムのサイズを小さくすることが可能とな
る。
【0031】また、動的変数領域へのテンプレートの内
容の複写は一括データ転送命令で実行されるようなコー
ドが生成されるので、効率の良い動的構造体変数の初期
化が可能となる。また、常にテンプレートを使用するの
ではなく、動的構造体変数を構成する要素の中で初期値
が指定されている要素が少ない場合には、テンプレート
を使わずに初期値を設定するようなコードを生成するの
で、実行効率のよい実行形式プログラムを作成すること
が可能となる。
【0032】また、テンプレートの内容を獲得した領域
にコピーする処理を、複数の実行形式プログラムで共用
されるライブラリの動的領域獲得ルーチン内で、動的領
域の獲得と共に行なうことで、実行形式プログラムのサ
イズを小さくすることが可能となる。さらに、動的構造
体変数のいずれの要素についても、初期値が設定されて
いるか否かのチェックが可能となり、未定義値の検出を
もれなく行なうことが可能となる。
【図面の簡単な説明】
【図1】 コンピュータ上でのプログラムの実行を示す
図。
【図2】 コンピュータ上でのプログラム開発環境を示
す図。
【図3】 コンパイラの構造及び作用を示す図。
【図4】 リンカの作用を示す図。
【図5】 構造解析部における処理の一部を示す第一の
図。
【図6】 構造解析部における処理の一部を示す第二の
図。
【図7】 ソースプログラムの一例を示す第一の図。
【図8】 ソースプログラムの一例を示す第二の図。
【図9】 中間言語の一例を示す第一の図。
【図10】 中間言語の一例を示す第二の図。
【符号の説明】
1...実行形式プログラム 2...ライブラリ 3...OS(オペレーティングシステム) 4...コンピュータ 5...エディタ 6...コンパイラ 7...リンカ 8...ソースプログラム 12...オブジェクトプログラム

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムを入力し、オブジェク
    トプログラムを出力するコンパイル装置であって、 動的変数に設定する初期値を記憶するための初期値設定
    領域を出力されるオブジェクトプログラム内に静的に獲
    得する初期値設定領域獲得手段と、 獲得した前記初期値設定領域に対して初期値を設定する
    初期値設定領域初期化手段と、 プログラムの実行時に動的変数の領域を動的に獲得した
    際に、前記初期値設定領域の内容を前記動的に獲得した
    領域に複写するコードを生成する変数初期化用オブジェ
    クトコード生成手段とを有するコンパイル装置。
  2. 【請求項2】 前記初期値設定領域獲得手段は動的構造
    体変数の一つの型に対して初期値設定領域を一つだけ獲
    得する、請求項1記載のコンパイル装置。
  3. 【請求項3】 前記初期値設定領域獲得手段は、動的構
    造体変数を構成する要素のなかで、初期値が指定されて
    いる要素の割合が所定値以上である場合に、初期値設定
    領域を獲得し、 前記変数初期化用オブジェクトコード生成手段は、動的
    構造体変数を構成する要素のなかで、初期値が指定され
    ている要素の割合が所定値以上である場合に、前記初期
    値設定領域の内容を前記動的に獲得した領域に複写する
    コードを生成し、そうでない場合には、初期値が指定さ
    れている要素に対してのみ値を値を設定するコードを生
    成する、 請求項1記載のコンパイル装置。
  4. 【請求項4】 ソースプログラムを入力し、オブジェク
    トプログラムを出力するコンパイル装置であって、 動的変数に設定する初期値を記憶するための初期値設定
    領域を出力されるオブジェクトプログラム内に静的に獲
    得する初期値設定領域獲得手段と、 獲得した前記初期値設定領域に対して初期値を設定する
    初期値設定領域初期化手段と、 プログラムの実行時に動的変数の変数領域を獲得し、前
    記初期値設定領域の内容を前記動的に獲得した領域に複
    写する処理を行なう処理ルーチンを呼び出すコードを生
    成する変数初期化用オブジェクトコード生成手段とを有
    するコンパイル装置。
  5. 【請求項5】 未定義値を検出するための所定の値を動
    的構造体変数の各要素に初期値として設定する手段を有
    する請求項1又は4記載のコンパイル装置。
  6. 【請求項6】 コンピュータに、 ソースプログラムを読み込ませ、 動的変数に設定する初期値を記憶するための初期値設定
    領域を出力するオブジェクトプログラム内に静的に獲得
    させ、 獲得した前記初期値設定領域に対して初期値を設定さ
    せ、 プログラムの実行時に動的変数の領域を動的に獲得した
    際に、前記初期値設定領域の内容を前記動的に獲得した
    領域に複写するコードを生成させ、 生成されたオブジェクトプログラムを出力させるプログ
    ラムを記録したコンピュータ読取可能な記録媒体。
JP32896497A 1997-11-28 1997-11-28 コンパイル装置 Expired - Fee Related JP3915208B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32896497A JP3915208B2 (ja) 1997-11-28 1997-11-28 コンパイル装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32896497A JP3915208B2 (ja) 1997-11-28 1997-11-28 コンパイル装置

Publications (2)

Publication Number Publication Date
JPH11161501A true JPH11161501A (ja) 1999-06-18
JP3915208B2 JP3915208B2 (ja) 2007-05-16

Family

ID=18216093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32896497A Expired - Fee Related JP3915208B2 (ja) 1997-11-28 1997-11-28 コンパイル装置

Country Status (1)

Country Link
JP (1) JP3915208B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011036768A1 (ja) * 2009-09-25 2011-03-31 株式会社 東芝 シミュレーション装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011036768A1 (ja) * 2009-09-25 2011-03-31 株式会社 東芝 シミュレーション装置

Also Published As

Publication number Publication date
JP3915208B2 (ja) 2007-05-16

Similar Documents

Publication Publication Date Title
US5586328A (en) Module dependency based incremental compiler and method
US6233733B1 (en) Method for generating a Java bytecode data flow graph
US6931627B2 (en) System and method for combinatorial test generation in a compatibility testing environment
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
JP2000132403A (ja) プログラム変換装置
JP2000035893A (ja) デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体
US20090328016A1 (en) Generalized expression trees
JPH06103463B2 (ja) コード生成方法
JP4041248B2 (ja) コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法
Blindell Instruction Selection
EP1672488A2 (en) Compile time linking via hashing technique
Doolin et al. JLAPACK–compiling LAPACK Fortran to Java
US20010054177A1 (en) Information processing apparatus
JP2005332146A (ja) 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法
JP2008305337A (ja) プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム
JPH08305583A (ja) Cpuシミュレーション方法
JP7295469B2 (ja) 関数生成プログラム、関数生成方法、及び情報処理装置
JP5399601B2 (ja) 実装コード開発システム、及び実装コード開発プログラム
JPH11161501A (ja) コンパイル装置
JP2004038279A (ja) コンパイラ、演算処理システム及び演算処理方法
JP3028821B2 (ja) 並列化コンパイル方法
Jeffery Build Your Own Programming Language: A programmer's guide to designing compilers, interpreters, and DSLs for solving modern computing problems
Gyllstrom et al. The universal compiling system
JP2001142719A (ja) コンパイラ装置及びコンパイラプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Effective date: 20060908

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20070116

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20070129

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110216

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 4

Free format text: PAYMENT UNTIL: 20110216

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120216

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 6

Free format text: PAYMENT UNTIL: 20130216

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 6

Free format text: PAYMENT UNTIL: 20130216

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20140216

LAPS Cancellation because of no payment of annual fees