JPH021027A - 圧縮形式ソースプログラムのコンパイル方式 - Google Patents
圧縮形式ソースプログラムのコンパイル方式Info
- Publication number
- JPH021027A JPH021027A JP12837388A JP12837388A JPH021027A JP H021027 A JPH021027 A JP H021027A JP 12837388 A JP12837388 A JP 12837388A JP 12837388 A JP12837388 A JP 12837388A JP H021027 A JPH021027 A JP H021027A
- Authority
- JP
- Japan
- Prior art keywords
- source program
- blank
- character
- compressed source
- input
- 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
- 238000000034 method Methods 0.000 claims description 8
- 230000006837 decompression Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は圧縮形式ソースプログラムのコンパイル方式に
関する。
関する。
空白文字の読とばしによる字句解析の効率化に関しては
特開昭58−58655号がある。この方式はソース中
の区切文字の後が全て空白かをチエツクするものである
(全て空白でない場合はエラーとする)。したがって−
行に複数の文字が書ける最近の高級言語には適用できな
い。
特開昭58−58655号がある。この方式はソース中
の区切文字の後が全て空白かをチエツクするものである
(全て空白でない場合はエラーとする)。したがって−
行に複数の文字が書ける最近の高級言語には適用できな
い。
他にコンパイル時間を短縮する方式として特開昭58−
168153号がある。これは共通ソースを中間テキス
トとして登録しておく方式であり、共通ソースにしか効
果がない。
168153号がある。これは共通ソースを中間テキス
トとして登録しておく方式であり、共通ソースにしか効
果がない。
上記従来技術ではフリーフォーマットで書ける(−行に
複数の文が書ける)最近の高級言語には適用できないと
いう問題があった。
複数の文が書ける)最近の高級言語には適用できないと
いう問題があった。
また共通ソース以外の部分のソース解析には効果がない
という問題があった。
という問題があった。
本発明の目的はソースプロクラムの圧縮形式を利用する
ことにより、言語種別にかかわらず、また、共通ソース
か否かによらず字句解析を高速化し、コンパイル時間を
短縮させることを目的とする。
ことにより、言語種別にかかわらず、また、共通ソース
か否かによらず字句解析を高速化し、コンパイル時間を
短縮させることを目的とする。
上記目的は圧縮形式のソースプログラムをデコー1−(
伸長)せずに直接字句解析の対象とし、空白文字の読み
とばしを高速化することにより、達1戊される。
伸長)せずに直接字句解析の対象とし、空白文字の読み
とばしを高速化することにより、達1戊される。
圧縮形式のソースプログラムでは連続する空白が1〜2
バイト程度に圧縮されている。(圧縮方式により異なる
) これを直接字句解析の入力とすることにより、連続する
n文字の空白の読みとばしは圧縮された1〜2バイトの
データの読みとばしで済む。このため空白の読みとげし
か高速化されコンパイル効率が向上する。
バイト程度に圧縮されている。(圧縮方式により異なる
) これを直接字句解析の入力とすることにより、連続する
n文字の空白の読みとばしは圧縮された1〜2バイトの
データの読みとばしで済む。このため空白の読みとげし
か高速化されコンパイル効率が向上する。
以下図面を参照して本発明の一実施例について説明する
。
。
まず第1図を用いて全体構成について説明する。
コンパイラ1は大きく分けると構文解析部3とコード生
成部10からなり、ソースファイル2からソースプログ
ラムを入力し、オブジェクトファイル11にオブジェク
トプログラム、リスト出力装置9にコンパイルリストを
出力する。この時ソースファイル2中のソースプログラ
ムはスペース効率向上のために圧縮形式となっている。
成部10からなり、ソースファイル2からソースプログ
ラムを入力し、オブジェクトファイル11にオブジェク
トプログラム、リスト出力装置9にコンパイルリストを
出力する。この時ソースファイル2中のソースプログラ
ムはスペース効率向上のために圧縮形式となっている。
字句解析部4は構文解析部3からサブルーチンとして呼
び出され、ソースプログラムの中からコンパイラにとっ
て意味のある文字の集合(名前。
び出され、ソースプログラムの中からコンパイラにとっ
て意味のある文字の集合(名前。
演算記号2区切り記号など)の切出しを行う。
1文字人力部5は字句解析部4の一部であり、ソースプ
ログラムの1文字を入力バッファ7がら入力する。また
ソースプログラムのルコード分の処理を終了するとソー
ス入力部6を呼び出し次のレコードをソースファイル2
から圧縮形式のまま人力バッファ7に入力する。
ログラムの1文字を入力バッファ7がら入力する。また
ソースプログラムのルコード分の処理を終了するとソー
ス入力部6を呼び出し次のレコードをソースファイル2
から圧縮形式のまま人力バッファ7に入力する。
また構文解析部3はソース伸長部8を呼び出して入力バ
ッファ7中の圧縮形式のソースプロクラムを伸長(デコ
ード)シ、コンパイルリストとしてリスト出力装置9に
出力する。
ッファ7中の圧縮形式のソースプロクラムを伸長(デコ
ード)シ、コンパイルリストとしてリスト出力装置9に
出力する。
次に本発明の中心的な部分である字句解析部4及び−文
字入力部5の動作について説明する。
字入力部5の動作について説明する。
まず1文字入力部5が入力する圧縮形式ソースプログラ
ム21の形式を第2図に示す。この形式ではソースプロ
グラム中に1バイト(8ビツト)の制御コードをもち、
制御コードの上4ビットがスペース(空白)以外の文字
数、下4ビットがそれに続くスペースの文字数を示して
いる。
ム21の形式を第2図に示す。この形式ではソースプロ
グラム中に1バイト(8ビツト)の制御コードをもち、
制御コードの上4ビットがスペース(空白)以外の文字
数、下4ビットがそれに続くスペースの文字数を示して
いる。
コンパイラにとってスペース(空白)は区切り文字とな
るが連続したスペースでも1文字のスペースでも区切り
文字としての役割は同じである。
るが連続したスペースでも1文字のスペースでも区切り
文字としての役割は同じである。
このためコンパイラの字句解析部4は第3図に示すよう
に字句解析処理の先頭にスペース読とばし処理部41を
もち、余分なスペースを読み飛ばしており、この時1文
字人力部5が1文字ごとに実行される。
に字句解析処理の先頭にスペース読とばし処理部41を
もち、余分なスペースを読み飛ばしており、この時1文
字人力部5が1文字ごとに実行される。
従来の方式ではソース入力時に圧縮形式を元の状態に戻
しているため、入力バッファ7には圧縮されていないソ
ースプログラムが人力されている。
しているため、入力バッファ7には圧縮されていないソ
ースプログラムが人力されている。
このためもしソースプログラム中に連続した10文字の
スペースがあった場合1文字入力部5は10回実行され
ることになる。
スペースがあった場合1文字入力部5は10回実行され
ることになる。
しかし本発明の圧縮形式ソースプログラムを直接字句解
析(1文字入力)の対象とする方式では連続した10個
のスペースも1バイトの制御コードに置換えられている
ため、1文字人力部5は1同突行するだけで済む。
析(1文字入力)の対象とする方式では連続した10個
のスペースも1バイトの制御コードに置換えられている
ため、1文字人力部5は1同突行するだけで済む。
圧縮形式ソースプログラムに対する1文字入力部5の処
理概要を第4図に示す。1文字入力部5は有効文字カウ
ンタ51.カレントポインタ52゜入力文字バッファ5
3を持つ。有効文字カウンタ51は人力バッファ7中の
制御コードの上4ビットであるスペース以外の文字数を
初期値として持つ。カレントポインタ52は入カバッフ
ァフ中の現在入力中の位置を示す。入力文字バッファ5
3は入力した1文字を設定する領域である。
理概要を第4図に示す。1文字入力部5は有効文字カウ
ンタ51.カレントポインタ52゜入力文字バッファ5
3を持つ。有効文字カウンタ51は人力バッファ7中の
制御コードの上4ビットであるスペース以外の文字数を
初期値として持つ。カレントポインタ52は入カバッフ
ァフ中の現在入力中の位置を示す。入力文字バッファ5
3は入力した1文字を設定する領域である。
1文字入力部5ではまず有効文字カウンタ51が正かチ
エツクし、正の場合は入カバッファフのカレントポイン
タ52の示す位置から1文字入力し、入力文字バッファ
53に設定する。次に有効文字カウンタ51から1減じ
る。
エツクし、正の場合は入カバッファフのカレントポイン
タ52の示す位置から1文字入力し、入力文字バッファ
53に設定する。次に有効文字カウンタ51から1減じ
る。
有効文字カウンタ51をチエツクした結果正でない場合
は入力文字バッファ53にスペース(空白)を設定し、
人カバッファフのカレントポインタ52の示す位置から
制御コードを入力し、上4ビットを有効文字カウンタ5
1に設定する。
は入力文字バッファ53にスペース(空白)を設定し、
人カバッファフのカレントポインタ52の示す位置から
制御コードを入力し、上4ビットを有効文字カウンタ5
1に設定する。
最後にカレントポインタに1加え、現在入方中の位置を
更新する。
更新する。
本実施例によれば圧縮形式のソースプログラムを直接字
句解析の対象とすることにより、デコード(伸長)して
から字句解析を行う場合に比ベスペース(空白)読みと
ばしが高速化できコンパイル効率が向上するという効果
がある。
句解析の対象とすることにより、デコード(伸長)して
から字句解析を行う場合に比ベスペース(空白)読みと
ばしが高速化できコンパイル効率が向上するという効果
がある。
本発明によればコンパイル時ソースプログラム中のスペ
ース(空白)の読みとばしが高速化できるのでコンパイ
ル時間を短縮できるという効果が
ース(空白)の読みとばしが高速化できるのでコンパイ
ル時間を短縮できるという効果が
第1図は本発明の一実施例のブロック図、第2図はソー
スプログラムの圧縮形式の説明図、第3図は字句解析部
の説明図、 第4図は1文字入力部の説明図である。 1・・・コンパイラ、2・・・ソースファイル、3・・
・構文解析部、4・・・字句解析部、6・・・ソース入
力部、8・・・ソース伸長部、10・・・コード生成部
。
スプログラムの圧縮形式の説明図、第3図は字句解析部
の説明図、 第4図は1文字入力部の説明図である。 1・・・コンパイラ、2・・・ソースファイル、3・・
・構文解析部、4・・・字句解析部、6・・・ソース入
力部、8・・・ソース伸長部、10・・・コード生成部
。
Claims (1)
- 1、コンパイラにおいて、圧縮形式のソースプログラム
を伸長せずに直接字句解析の対象とすることを特徴とす
る圧縮形式ソースプログラムのコンパイル方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12837388A JPH021027A (ja) | 1988-05-27 | 1988-05-27 | 圧縮形式ソースプログラムのコンパイル方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12837388A JPH021027A (ja) | 1988-05-27 | 1988-05-27 | 圧縮形式ソースプログラムのコンパイル方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH021027A true JPH021027A (ja) | 1990-01-05 |
Family
ID=14983220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12837388A Pending JPH021027A (ja) | 1988-05-27 | 1988-05-27 | 圧縮形式ソースプログラムのコンパイル方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH021027A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008307328A (ja) * | 2007-06-18 | 2008-12-25 | Mitsubishi Electric Corp | 加熱調理器 |
US10684831B2 (en) | 2015-06-10 | 2020-06-16 | Fujitsu Limited | Information processing apparatus, information processing method, and recording medium |
-
1988
- 1988-05-27 JP JP12837388A patent/JPH021027A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008307328A (ja) * | 2007-06-18 | 2008-12-25 | Mitsubishi Electric Corp | 加熱調理器 |
US10684831B2 (en) | 2015-06-10 | 2020-06-16 | Fujitsu Limited | Information processing apparatus, information processing method, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5956510A (en) | Apparatus and method for revising computer program code | |
JPH0630066B2 (ja) | テーブル型言語翻訳方法 | |
JP3130828B2 (ja) | アセンブル処理方式 | |
JPH021027A (ja) | 圧縮形式ソースプログラムのコンパイル方式 | |
JPS61204741A (ja) | ソ−スプログラムの圧縮方法 | |
JP3000878B2 (ja) | アセンブラの処理方法 | |
JPS6266371A (ja) | テキスト分離型学習システム | |
JP2726543B2 (ja) | 翻訳方式 | |
JPH08286927A (ja) | アセンブラ処理方式 | |
JPH036624A (ja) | 複数コード系に対応する翻訳リスト出力処理方式 | |
JPS60193029A (ja) | デ−タ入力方式 | |
JPH05143351A (ja) | 原始プログラム比較方式 | |
JPH01270133A (ja) | 文字による書式仕様処理方式 | |
JPH0368028A (ja) | ピクチャー句解析方式 | |
JPH03186933A (ja) | 言語処理システムのシンボル処理方式 | |
JPH0561687A (ja) | コンパイラの処理方式 | |
JPS6365530A (ja) | コ−ド最適化方式 | |
JPH0540638A (ja) | 語彙解析編集方式 | |
JPH08123694A (ja) | Cコンパイラ | |
Eisenbach et al. | Fundamentals: Action and Data | |
JPH02162426A (ja) | プログラムコンパイルエラーメッセージの日本語変換システム | |
JPH04149640A (ja) | プリコンパイラ | |
JPS63138465A (ja) | 構文解析装置 | |
JPH0358135A (ja) | 複数のオペランドを修飾するテキストの出力方法 | |
JPH03186932A (ja) | 字句解析における空白読み飛ばし装置 |