JPH01243125A - 解釈プログラムの実行速度向上方法 - Google Patents
解釈プログラムの実行速度向上方法Info
- Publication number
- JPH01243125A JPH01243125A JP63070650A JP7065088A JPH01243125A JP H01243125 A JPH01243125 A JP H01243125A JP 63070650 A JP63070650 A JP 63070650A JP 7065088 A JP7065088 A JP 7065088A JP H01243125 A JPH01243125 A JP H01243125A
- Authority
- JP
- Japan
- Prior art keywords
- intermediate code
- program
- code program
- execution
- execution speed
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
この発明は、言語プログラムとしての解釈プログラム(
インタプリタ)の欠点である実行速度の遅いことを改善
するだめの、解釈プログラムの実行速度の向上方法に関
する。
インタプリタ)の欠点である実行速度の遅いことを改善
するだめの、解釈プログラムの実行速度の向上方法に関
する。
従来の解釈プログラム(以下、インタプリタという)で
は、その実行までに次の手順がとられる。 まず、命令ごとに順次、入力される原始プログラムを、
これに容易に復元可能な構文情報を含む中間コードを用
いて、各中間コード・プログラムに変換し、ついで、こ
の各中間コード・プログラムから一連の中間コード・プ
ログラムを編集する。 そして、インタプリタの実行は、この編集された中間コ
ード・プログラムの一つ一つの命令を解釈し、構文チエ
ツクをしながらおこなわれる。 なお実行するとき、解釈した後いったん機械語に直して
から、この機械語の命令を実行する場合もあり、機械語
に変換せず、どのような命令であるかが分かれば、直ち
にその命令の示す動作を実行する場合もある。
は、その実行までに次の手順がとられる。 まず、命令ごとに順次、入力される原始プログラムを、
これに容易に復元可能な構文情報を含む中間コードを用
いて、各中間コード・プログラムに変換し、ついで、こ
の各中間コード・プログラムから一連の中間コード・プ
ログラムを編集する。 そして、インタプリタの実行は、この編集された中間コ
ード・プログラムの一つ一つの命令を解釈し、構文チエ
ツクをしながらおこなわれる。 なお実行するとき、解釈した後いったん機械語に直して
から、この機械語の命令を実行する場合もあり、機械語
に変換せず、どのような命令であるかが分かれば、直ち
にその命令の示す動作を実行する場合もある。
以上説明したように、従来のインタプリタでは、プログ
ラムの変更や修正、追加、削除などによって再度プログ
ラム全体をコンパイルしたり、リンクしたりする作業が
不要であること、デバッグ作業が容易であること、プロ
グラムの開発効率が良いこと等の長所がある反面、プロ
グラムの実行速度が遅いという欠点があった。 この欠点について、第4図、第5図を参照しながら以下
に具体的に説明する。第4図は従来例における原始プロ
グラムと、これに対応する中間コード・プログラムとの
対応を示す説明図、第5図は従来例における実行を示す
フローチャートである。 第4図において、上段は原始プログラムPsの、下段は
中間コード・プログラムPのそれぞれ一部を模式的に示
す。すなわち、原始プログラムPsのスペースやコンマ
などの構文情報は、変換された中間コード・プログラム
Pの中に含まれている。 第5図のステップS21でr COL ORか?」が判
断され、YESなら次に、Noなら他の文の実行処理に
移行する。なお、rcOLORか?」は「色変更命令か
9」の意味である。 ステップS22で、スペースがスキップ(飛ばし読み)
され、次のステップS23で、第1パラメータPALの
読み込みがなされ、ステップS24で再びスペースがス
キップされる。ステップS25で、コンマかどうかの判
断がなされ、YESなら次に移り、NOならエラー処理
される。 以下同様に、ステップS26. S28. S30
. S32でそれぞれスペースがスキップされ、ステ
ップS29でコンマかどうかの判断がなされ、ステップ
S27. S31で第2.第3の各パラメータPA2
. PA3が読み込まれる。 ステップS33で、行の最後かどうかが判断され、NO
ならエラー処理され、YESならステップS34のrc
OLORに対応する機能の実行」に移り、ついで次行の
処理に移行する。 このように、従来の中間コード・プログラムPに基づく
実行では、その過程で多くのスペースを読み飛ばしたり
、コンマの有無の判断、チエツクをしたりする必要があ
り、このことが実行速度を低下させる原因となる。 この発明の課題は、従来の解釈プログラムの問題点であ
る実行速度の遅いことを改善するための、解釈プログラ
ムの実行速度の向上方法を提供することにある。
ラムの変更や修正、追加、削除などによって再度プログ
ラム全体をコンパイルしたり、リンクしたりする作業が
不要であること、デバッグ作業が容易であること、プロ
グラムの開発効率が良いこと等の長所がある反面、プロ
グラムの実行速度が遅いという欠点があった。 この欠点について、第4図、第5図を参照しながら以下
に具体的に説明する。第4図は従来例における原始プロ
グラムと、これに対応する中間コード・プログラムとの
対応を示す説明図、第5図は従来例における実行を示す
フローチャートである。 第4図において、上段は原始プログラムPsの、下段は
中間コード・プログラムPのそれぞれ一部を模式的に示
す。すなわち、原始プログラムPsのスペースやコンマ
などの構文情報は、変換された中間コード・プログラム
Pの中に含まれている。 第5図のステップS21でr COL ORか?」が判
断され、YESなら次に、Noなら他の文の実行処理に
移行する。なお、rcOLORか?」は「色変更命令か
9」の意味である。 ステップS22で、スペースがスキップ(飛ばし読み)
され、次のステップS23で、第1パラメータPALの
読み込みがなされ、ステップS24で再びスペースがス
キップされる。ステップS25で、コンマかどうかの判
断がなされ、YESなら次に移り、NOならエラー処理
される。 以下同様に、ステップS26. S28. S30
. S32でそれぞれスペースがスキップされ、ステ
ップS29でコンマかどうかの判断がなされ、ステップ
S27. S31で第2.第3の各パラメータPA2
. PA3が読み込まれる。 ステップS33で、行の最後かどうかが判断され、NO
ならエラー処理され、YESならステップS34のrc
OLORに対応する機能の実行」に移り、ついで次行の
処理に移行する。 このように、従来の中間コード・プログラムPに基づく
実行では、その過程で多くのスペースを読み飛ばしたり
、コンマの有無の判断、チエツクをしたりする必要があ
り、このことが実行速度を低下させる原因となる。 この発明の課題は、従来の解釈プログラムの問題点であ
る実行速度の遅いことを改善するための、解釈プログラ
ムの実行速度の向上方法を提供することにある。
この課題を解決するために、本発明に係る解釈プログラ
ムの実行速度の向上方法は、 命令ごとに順次入力される原始プログラムを、これに復
元可能な構文情報を含む中間コードを用いてそれぞれ第
1の中間コード・プログラムに変換することと; この各第1中間コード・プログラムを、実行時にたけ必
要な処理に対応する第2の中間コード・プログラムに変
換することと; 前記の各第1中間コード・プログラムと、各第2中間コ
ード・プログラムとをそれぞれ一連の第1中間コード・
プログラムと、第2中間コード・プログラムとに編集す
ることと; ζ を備え、この編集された第2中間コード・プログラムに
基づいてプログラムが実行される。
ムの実行速度の向上方法は、 命令ごとに順次入力される原始プログラムを、これに復
元可能な構文情報を含む中間コードを用いてそれぞれ第
1の中間コード・プログラムに変換することと; この各第1中間コード・プログラムを、実行時にたけ必
要な処理に対応する第2の中間コード・プログラムに変
換することと; 前記の各第1中間コード・プログラムと、各第2中間コ
ード・プログラムとをそれぞれ一連の第1中間コード・
プログラムと、第2中間コード・プログラムとに編集す
ることと; ζ を備え、この編集された第2中間コード・プログラムに
基づいてプログラムが実行される。
命令ごとに順次入力される原始プログラムを、これに復
元可能な構文情報を含む中間コードを用いてそれぞれ第
1の中間コード・プログラムに変換し、次にこの各第1
中間コード・プログラムを、実行時にだけ必要な処理に
対応する第2の中間コード・プログラムに変換する。つ
いで、各第1中間コード・プログラムと、各第2中間コ
ード・プログラムとをそれぞれ一連の第1中間コード・
プログラムと、第2中間コード・プログラムとに編集し
、この編集された第2中間コード・プログラムに基づい
てプログラムを実行する。
元可能な構文情報を含む中間コードを用いてそれぞれ第
1の中間コード・プログラムに変換し、次にこの各第1
中間コード・プログラムを、実行時にだけ必要な処理に
対応する第2の中間コード・プログラムに変換する。つ
いで、各第1中間コード・プログラムと、各第2中間コ
ード・プログラムとをそれぞれ一連の第1中間コード・
プログラムと、第2中間コード・プログラムとに編集し
、この編集された第2中間コード・プログラムに基づい
てプログラムを実行する。
本発明に係る実施例について以下に図面を参照しながら
説明する。 第1図は実施例の構成を示すブロック図で、同図におい
て、原始プログラムPsは、段階A1において、各命令
がそれぞれ第1中間コード・プログラムP1に変換され
るが、この段階は従来のインタプリタにおける中間コー
ド・プログラムへの変換と同じである。次に、この各第
1中間コード・プログラムP1は段階A2で、それぞれ
第2中間コード・プログラムP2に変換される。この第
2中間コード・プログラムP2は、構文情報たとえばス
ペースやコンマ等を含まない、言いかえれば実行時にだ
け必要な処理に対応する。 段階A3で、先程の各第1中間コード・プログラムPL
、各第2中間コード・プログラムP2はそれぞれ第1中
間コード・プログラムPel、第2中間コード・プログ
ラムPe2に編集され、次の段階A4において、この編
集された第2中間コード・プログラムPe2によってプ
ログラムが実行される。この実行においては、第2中間
コード・プログラムP2に構文情報たとえばスペースや
コンマ等を含まない、言いかえれば実行時にだけ必要な
処理に対応するようになっているから、実行速度は従来
方式によるより向上する。 他方、段階A5において、編集された第1中間コード・
プログラムPel、第2中間コード・プログラムPe2
は、原始プログラムPsに変換される。 なお、変換された原始プログラムPsは、その内容が表
示装置に表示され(段階A6)、この表示内容を見なが
ら手入力操作により、変更、修正がおこなわれ(段階A
7)、変更、修正された原始プログラムPsが段階AI
の新たな入力となる。 次に、第2図は原始プログラムと、この実施例における
第1中間コード・プログラム、第2中間コード・プログ
ラムとの対応を示す説明図で、同図において上段が原始
プログラムPS、中段が第1中間コード・プログラムP
1、下段が第2中間コード・プログラムP2である。各
段をつなぐ線でそれぞれの対応を示す。第2中間コード
・プログラムP2では、スペースやコンマ等の構文情報
が含まれないことが分かる。 第3図は従来の中間コード・プログラムの実行段階でお
こなわれる第2中間コード変換処理を示す説明図である
。同図において、各ステップは、第5図に示した従来例
における実行動作におけるのとほぼ対応する。ただし、
ステップS3において、第1パラメータPALの読み込
みに対応するコード、’3101J (第2図の下段
参照)が出力され、同様にステップS7.Sllにおい
て、第2パラメークPA2.第3パラメータPA3の読
み込みに対応するコード、r3102」、’3103J
が出力される。また、ステップS14でrcOLOR。 機能実行に対応するコード「A1」が出力される。
説明する。 第1図は実施例の構成を示すブロック図で、同図におい
て、原始プログラムPsは、段階A1において、各命令
がそれぞれ第1中間コード・プログラムP1に変換され
るが、この段階は従来のインタプリタにおける中間コー
ド・プログラムへの変換と同じである。次に、この各第
1中間コード・プログラムP1は段階A2で、それぞれ
第2中間コード・プログラムP2に変換される。この第
2中間コード・プログラムP2は、構文情報たとえばス
ペースやコンマ等を含まない、言いかえれば実行時にだ
け必要な処理に対応する。 段階A3で、先程の各第1中間コード・プログラムPL
、各第2中間コード・プログラムP2はそれぞれ第1中
間コード・プログラムPel、第2中間コード・プログ
ラムPe2に編集され、次の段階A4において、この編
集された第2中間コード・プログラムPe2によってプ
ログラムが実行される。この実行においては、第2中間
コード・プログラムP2に構文情報たとえばスペースや
コンマ等を含まない、言いかえれば実行時にだけ必要な
処理に対応するようになっているから、実行速度は従来
方式によるより向上する。 他方、段階A5において、編集された第1中間コード・
プログラムPel、第2中間コード・プログラムPe2
は、原始プログラムPsに変換される。 なお、変換された原始プログラムPsは、その内容が表
示装置に表示され(段階A6)、この表示内容を見なが
ら手入力操作により、変更、修正がおこなわれ(段階A
7)、変更、修正された原始プログラムPsが段階AI
の新たな入力となる。 次に、第2図は原始プログラムと、この実施例における
第1中間コード・プログラム、第2中間コード・プログ
ラムとの対応を示す説明図で、同図において上段が原始
プログラムPS、中段が第1中間コード・プログラムP
1、下段が第2中間コード・プログラムP2である。各
段をつなぐ線でそれぞれの対応を示す。第2中間コード
・プログラムP2では、スペースやコンマ等の構文情報
が含まれないことが分かる。 第3図は従来の中間コード・プログラムの実行段階でお
こなわれる第2中間コード変換処理を示す説明図である
。同図において、各ステップは、第5図に示した従来例
における実行動作におけるのとほぼ対応する。ただし、
ステップS3において、第1パラメータPALの読み込
みに対応するコード、’3101J (第2図の下段
参照)が出力され、同様にステップS7.Sllにおい
て、第2パラメークPA2.第3パラメータPA3の読
み込みに対応するコード、r3102」、’3103J
が出力される。また、ステップS14でrcOLOR。 機能実行に対応するコード「A1」が出力される。
以上説明したように、この発明においては、命令ごとに
順次入力される原始プログラムを、これに復元可能な構
文情報を含む中間コードを用いてそれぞれ第1の中間コ
ード・プログラムに変換し、次にこの各第1中間コード
・プログラムを、実行時にだけ必要な処理に対応する第
2の中間コード・プログラムに変換し、ついで、各第1
中間コード・プログラムと、各第2中間コード・プログ
ラムとをそれぞれ一連の第1中間コード・プログラムと
、第2中間コード・プログラムとに編集し、この編集さ
れた第2中間コード・プログラムに基づいてプログラム
を実行する。 したがって、この発明によれば、従来の技術に比べ次の
ようなすくれた効果がある。 (1)プログラムの実行は、実行時にだけ必要な処理に
対応する第2中間コード・プログラムに基づいてなされ
るから、言いかえれば構文情報を含まないから、実行速
度が向上する。 (2)従来の中間コード・プログラム変換手段と中間コ
ード編集手段とがほぼ利用できるから、第2中間コート
・プログラムの変換、ひいてはこの発明方法の実施が容
易である。 (3)第1中間コード・プログラムは、第2中間コード
・プログラムとともに保存されるから、従来の編集機能
が損なわれることがなく、運用上便利である。
順次入力される原始プログラムを、これに復元可能な構
文情報を含む中間コードを用いてそれぞれ第1の中間コ
ード・プログラムに変換し、次にこの各第1中間コード
・プログラムを、実行時にだけ必要な処理に対応する第
2の中間コード・プログラムに変換し、ついで、各第1
中間コード・プログラムと、各第2中間コード・プログ
ラムとをそれぞれ一連の第1中間コード・プログラムと
、第2中間コード・プログラムとに編集し、この編集さ
れた第2中間コード・プログラムに基づいてプログラム
を実行する。 したがって、この発明によれば、従来の技術に比べ次の
ようなすくれた効果がある。 (1)プログラムの実行は、実行時にだけ必要な処理に
対応する第2中間コード・プログラムに基づいてなされ
るから、言いかえれば構文情報を含まないから、実行速
度が向上する。 (2)従来の中間コード・プログラム変換手段と中間コ
ード編集手段とがほぼ利用できるから、第2中間コート
・プログラムの変換、ひいてはこの発明方法の実施が容
易である。 (3)第1中間コード・プログラムは、第2中間コード
・プログラムとともに保存されるから、従来の編集機能
が損なわれることがなく、運用上便利である。
第1図は実施例の構成を示すブロック図、第2図は原始
プログラムと、この実施例における第1中間コード・プ
ログラム、第2中間コード・プログラムとの対応を示す
説明図、 】0 第3図は従来の中間コード・プログラムの実行段階でお
こなわれる第2中間コード変換処理を示す説明図、 第4図は従来例における原始プログラムと、これに対応
する中間コード・プログラムとの対応を示す説明図、 第5図は従来例における実行を示すフローチャートであ
る。 符号説明 Ps :原始プログラム、 Pl :第1中間コード・プログラム、P2 :第2中
間コード・プログラム、Pel:Ha集された第1中間
コード・プログラム、Pe2:MA集された第2中間コ
ード・プログラム。
プログラムと、この実施例における第1中間コード・プ
ログラム、第2中間コード・プログラムとの対応を示す
説明図、 】0 第3図は従来の中間コード・プログラムの実行段階でお
こなわれる第2中間コード変換処理を示す説明図、 第4図は従来例における原始プログラムと、これに対応
する中間コード・プログラムとの対応を示す説明図、 第5図は従来例における実行を示すフローチャートであ
る。 符号説明 Ps :原始プログラム、 Pl :第1中間コード・プログラム、P2 :第2中
間コード・プログラム、Pel:Ha集された第1中間
コード・プログラム、Pe2:MA集された第2中間コ
ード・プログラム。
Claims (1)
- 1)命令ごとに順次入力される原始プログラムを、これ
に復元可能な構文情報を含む中間コードを用いてそれぞ
れ第1の中間コード・プログラムに変換することと;こ
の各第1中間コード・プログラムを、実行時にだけ必要
な処理に対応する第2の中間コード・プログラムに変換
することと;前記の各第1中間コード・プログラムと、
各第2中間コード・プログラムとをそれぞれ一連の第1
中間コード・プログラムと、第2中間コード・プログラ
ムとに編集することと;を備え、この編集された第2中
間コード・プログラムに基づいてプログラムが実行され
るようにしたことを特徴とする解釈プログラムの実行速
度向上方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63070650A JPH01243125A (ja) | 1988-03-24 | 1988-03-24 | 解釈プログラムの実行速度向上方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63070650A JPH01243125A (ja) | 1988-03-24 | 1988-03-24 | 解釈プログラムの実行速度向上方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01243125A true JPH01243125A (ja) | 1989-09-27 |
Family
ID=13437737
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63070650A Pending JPH01243125A (ja) | 1988-03-24 | 1988-03-24 | 解釈プログラムの実行速度向上方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01243125A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003141488A (ja) * | 1996-10-25 | 2003-05-16 | Schlumberger System | 高級プログラミング言語を用いたマイクロコントローラ |
-
1988
- 1988-03-24 JP JP63070650A patent/JPH01243125A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003141488A (ja) * | 1996-10-25 | 2003-05-16 | Schlumberger System | 高級プログラミング言語を用いたマイクロコントローラ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01243125A (ja) | 解釈プログラムの実行速度向上方法 | |
| US6178547B1 (en) | Method and apparatus for generating non-redundant symbolic debug information in computer programs | |
| KR940024587A (ko) | 프로그램의 아키텍쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치 | |
| JPH07141192A (ja) | 翻訳処理方法 | |
| JPH0736734A (ja) | アーギュメント値のチェック方法 | |
| JPS60237542A (ja) | プログラム制御装置 | |
| US6948159B2 (en) | Automatic compilation of electronic telecommunications system message generation code | |
| JP2004192139A (ja) | デバッグ装置、デバッグ方法および記録媒体 | |
| JPH03179535A (ja) | デバッグ支援装置 | |
| JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
| JPH0272407A (ja) | ラダー・プログラム変換装置 | |
| JPH01282609A (ja) | Ncデータ出力形式設定方法 | |
| JPH01239633A (ja) | 動的リンク構造ロードモジュール作成方式 | |
| JPS6033640A (ja) | デ−タ・モニタ方式 | |
| JPH0619721A (ja) | 機械語翻訳最適化方式 | |
| JPH0362227A (ja) | 高速再翻訳処理方式 | |
| JPS63640A (ja) | デ−タフロ−の部分ユニツト実行制御方式 | |
| JPH0580999A (ja) | 言語処理プログラムの処理方式 | |
| JPH01147624A (ja) | 言語処理系システム | |
| JPH04209029A (ja) | 並列処理プログラム翻訳処理装置 | |
| JPH0371229A (ja) | プログラム制御装置 | |
| JPH0659929A (ja) | コンピュータ装置 | |
| JPS6232557A (ja) | 通信プロトコ−ル変換装置 | |
| JPH0588878A (ja) | Lisp命令実行方式 | |
| JPH04153741A (ja) | 被デバッグプログラムのデバッグにおける逆方向実行方式 |