JPH0343834A - 関数デリバリ機構 - Google Patents
関数デリバリ機構Info
- Publication number
- JPH0343834A JPH0343834A JP17805189A JP17805189A JPH0343834A JP H0343834 A JPH0343834 A JP H0343834A JP 17805189 A JP17805189 A JP 17805189A JP 17805189 A JP17805189 A JP 17805189A JP H0343834 A JPH0343834 A JP H0343834A
- Authority
- JP
- Japan
- Prior art keywords
- source program
- program
- function
- delivery mechanism
- source
- 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
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、エキスパートシステム構築ツールなどに利用
され、1.[SP処理系上の応用プログラムに対して汎
用関数群をデリバリ用として提イハする関数デリバリ機
構に欄する。
され、1.[SP処理系上の応用プログラムに対して汎
用関数群をデリバリ用として提イハする関数デリバリ機
構に欄する。
従来、この種の関数デリバリ機構は、各ソースプログラ
ムの実行時に必要となる全ての提供関数を画一的に集め
たものをデリバリ用として提供しており、また、そのデ
リバリ用の関数群は、もとの関数群と同じインタフェー
スで使用することができるようになっている。
ムの実行時に必要となる全ての提供関数を画一的に集め
たものをデリバリ用として提供しており、また、そのデ
リバリ用の関数群は、もとの関数群と同じインタフェー
スで使用することができるようになっている。
しかしながら、上述した従来の関数デリバリ機構では、
デリバリ用の提供関数群が各応用プログラムごとに最適
化されていないため、大きな記憶容量を必要とし、また
、全ての関数が開発時と同じようにして、すなわちソー
スプログラム中に記述したインタフェースと同じように
して、インタプリタを経由して使用できるため、デリバ
リ版、すなわち実行専用関数板としての料金設定上問題
となっていた。
デリバリ用の提供関数群が各応用プログラムごとに最適
化されていないため、大きな記憶容量を必要とし、また
、全ての関数が開発時と同じようにして、すなわちソー
スプログラム中に記述したインタフェースと同じように
して、インタプリタを経由して使用できるため、デリバ
リ版、すなわち実行専用関数板としての料金設定上問題
となっていた。
本発明はこのような従来の欠点を改善したもので、その
目的は、実行専用のコンパクトな実行モジュール群を生
成することが可能な関数デリバリ機構を提供することに
ある。
目的は、実行専用のコンパクトな実行モジュール群を生
成することが可能な関数デリバリ機構を提供することに
ある。
〔課題を解決するための手段]
本発明の関数デリバリ機構は、ソースプログラムを解析
するプログラム解析手段と、ソースプログラムに使用さ
れている関数の呼び出し形式をソースプログラム中で書
き換えるソースプログラム書き換え手段と、使用されて
いる関数のみを前記ソースプログラム書き換え手段によ
り書き換えた形に適用した形で実行時モジュールとして
出力する実行時モジュール作成手段と、前記ソースプロ
グラム書き換え手段により書き換えたソースプログラム
をコンパイルさせるソースプログラムコンパイル手段と
を有している。
するプログラム解析手段と、ソースプログラムに使用さ
れている関数の呼び出し形式をソースプログラム中で書
き換えるソースプログラム書き換え手段と、使用されて
いる関数のみを前記ソースプログラム書き換え手段によ
り書き換えた形に適用した形で実行時モジュールとして
出力する実行時モジュール作成手段と、前記ソースプロ
グラム書き換え手段により書き換えたソースプログラム
をコンパイルさせるソースプログラムコンパイル手段と
を有している。
〔作 用]
プログラム解析手段は、ソースプログラム中にどのよう
な提供関数がどこで使用されているかを解析する。ソー
スプログラム書き換え手段では、ソースプログラムに使
用されている関数の呼び出し形式をソースプログラム中
で書き換える。一方、実行時モジュール作成手段では、
ソースプログラムに使用されている関数のみを所定の形
で実行時モジュールとして出力する。ソースプログラム
コンパイル手段では、ソースプログラム書き換え手段に
より書き換えたソー・スプログラムをコンパイルさせて
オブジェクトプログラムを生成する。
な提供関数がどこで使用されているかを解析する。ソー
スプログラム書き換え手段では、ソースプログラムに使
用されている関数の呼び出し形式をソースプログラム中
で書き換える。一方、実行時モジュール作成手段では、
ソースプログラムに使用されている関数のみを所定の形
で実行時モジュールとして出力する。ソースプログラム
コンパイル手段では、ソースプログラム書き換え手段に
より書き換えたソー・スプログラムをコンパイルさせて
オブジェクトプログラムを生成する。
以下本発明の一実施例を図面に基づいて説明する。
第1図は本発明の一実施例のブロック図である。
第1図において、ソースプログラム6は、例えばエキス
パートシステムのようなIJsP処理系処理心上プログ
ラムであり、また提供関数群7は、エキスパートシステ
ムを開発するために提供される関数の集まりであって、
実行時Gこソースプログラム6から呼び出される関数を
含んでいる。この提供関数群7の典型的なものが、LI
SP環境のエキスパートシステム構築ツールである。
パートシステムのようなIJsP処理系処理心上プログ
ラムであり、また提供関数群7は、エキスパートシステ
ムを開発するために提供される関数の集まりであって、
実行時Gこソースプログラム6から呼び出される関数を
含んでいる。この提供関数群7の典型的なものが、LI
SP環境のエキスパートシステム構築ツールである。
第1図を参照すると、本実施例の関数デリバリ機構iは
、ソースプログラム6を解析するプログラム解析手段2
と、ソースプログラム6からの個々の提供関数の呼び出
し形式をソースプログラム6中で書き換えて一時ソース
プログラム8として出力するソースプログラム書き換え
手段3と、L、ISPコンパイラ10により一時ソース
プログラム8をコンパイルさせオブジェクトプログラム
11を生成させるソースプログラムコンパイル手段4と
、提供関数群7のうちソースプログラム6に使われてい
るもののみをソースプログラム書き換え手段3で書き換
えた形に適用した形で実行時モジュール9として出力す
る実行時モジュール作成手段5とを備えている。
、ソースプログラム6を解析するプログラム解析手段2
と、ソースプログラム6からの個々の提供関数の呼び出
し形式をソースプログラム6中で書き換えて一時ソース
プログラム8として出力するソースプログラム書き換え
手段3と、L、ISPコンパイラ10により一時ソース
プログラム8をコンパイルさせオブジェクトプログラム
11を生成させるソースプログラムコンパイル手段4と
、提供関数群7のうちソースプログラム6に使われてい
るもののみをソースプログラム書き換え手段3で書き換
えた形に適用した形で実行時モジュール9として出力す
る実行時モジュール作成手段5とを備えている。
次にこのような構成の関数デリバリ機構の動作について
説明する。
説明する。
先づ、プログラム解析手段2は、ソースプログラム6が
実際に、提供関数群7の内のどの関数をどこで使用して
いるかを解析する。またソースプログラム書き換え手段
3は、プログラム解析手段2からの解析結果に基づき、
ソースプログラム6からの個々の提供関数の呼び出し形
式を意味のない単なる記号列からなる関数名の呼び出し
に書き換え、−時ソースプログラム8として出力する。
実際に、提供関数群7の内のどの関数をどこで使用して
いるかを解析する。またソースプログラム書き換え手段
3は、プログラム解析手段2からの解析結果に基づき、
ソースプログラム6からの個々の提供関数の呼び出し形
式を意味のない単なる記号列からなる関数名の呼び出し
に書き換え、−時ソースプログラム8として出力する。
一方、実際に使用されている提供関数の方は、実行時モ
ジュール作成手段5によりその関数名が、意味のない単
なる記号列に変換され、ソースプログラム6に使われて
いるもののみを実行時モジュール9として出力される。
ジュール作成手段5によりその関数名が、意味のない単
なる記号列に変換され、ソースプログラム6に使われて
いるもののみを実行時モジュール9として出力される。
−時ソースプログラム8は、ソースプログラムコンパイ
ル手段4がLISPコンパイラ10を使用してコンパイ
ルし、オブジェクトプログラム11となる。この後、−
特ソースプログラム8は、ソースプログラムコンパイル
手段4により削除される。このようにして関数デリバリ
機構は、LISP処理系処理心上プログラムであるソー
スプログラム6と提供関数群7とから、実行時モジュー
ル9とオブジェクトプログラム11とを生成する。生成
されたこれらのプログラムファイルが、各個別の情報処
理装置上で動作することになるが、この時提供関数群7
は、必要なものだけから成る実行時モジュール9となり
、また、個々の提供関数は、オブジェクトプログラム1
1以外からの使用ができなくなる。
ル手段4がLISPコンパイラ10を使用してコンパイ
ルし、オブジェクトプログラム11となる。この後、−
特ソースプログラム8は、ソースプログラムコンパイル
手段4により削除される。このようにして関数デリバリ
機構は、LISP処理系処理心上プログラムであるソー
スプログラム6と提供関数群7とから、実行時モジュー
ル9とオブジェクトプログラム11とを生成する。生成
されたこれらのプログラムファイルが、各個別の情報処
理装置上で動作することになるが、この時提供関数群7
は、必要なものだけから成る実行時モジュール9となり
、また、個々の提供関数は、オブジェクトプログラム1
1以外からの使用ができなくなる。
このようにして本実施例の関数デリバリ機構によれば、
LISPコンパイラIOに手を加えずに、応用プログラ
ムと汎用機能提供関数群との間での結合処理を行ない、
最小実行モジュールのみを各情報処理装置に与えること
が可能となる。
LISPコンパイラIOに手を加えずに、応用プログラ
ムと汎用機能提供関数群との間での結合処理を行ない、
最小実行モジュールのみを各情報処理装置に与えること
が可能となる。
以上説明したように本発明は、ソースプロゲラl、の解
析を行ない、提供関数の方は、インタフェースを変更し
必要な関数群だけを抽出し、ソースプログラムの方は、
インタフェースを変更してコンパイラによりコンパイル
するようにしているので、実行専用のコンパクトな実行
モジュール群を生成することができるという効果がある
。
析を行ない、提供関数の方は、インタフェースを変更し
必要な関数群だけを抽出し、ソースプログラムの方は、
インタフェースを変更してコンパイラによりコンパイル
するようにしているので、実行専用のコンパクトな実行
モジュール群を生成することができるという効果がある
。
第1図は本発明の一実施例の全体構成図である。
第1図において、■・・・関数デリバリ機構、2・・・
プログラム解析手段、3・・・ソースプロゲラムロき換
え手段、4・・・ソースプログラムコンパイル手段、5
・・・実行時モジュール作成手段、6・・・ソースプロ
グラム、7・・・提供関数群、8・・・−時ソースプロ
グラム、9・・・実行時モジュール、lO・・・LIS
Pコンパイラ、11・・・オブジェクトプログラムであ
る。
プログラム解析手段、3・・・ソースプロゲラムロき換
え手段、4・・・ソースプログラムコンパイル手段、5
・・・実行時モジュール作成手段、6・・・ソースプロ
グラム、7・・・提供関数群、8・・・−時ソースプロ
グラム、9・・・実行時モジュール、lO・・・LIS
Pコンパイラ、11・・・オブジェクトプログラムであ
る。
Claims (1)
- ソースプログラムを解析するプログラム解析手段と、
ソースプログラムに使用されている関数の呼び出し形式
をソースプログラム中で書き換えるソースプログラム書
き換え手段と、使用されている関数のみを前記ソースプ
ログラム書き換え手段により書き換えた形に適用した形
で実行時モジュールとして出力する実行時モジュール作
成手段と、前記ソースプログラム書き換え手段により書
き換えたソースプログラムをコンパイルさせるソースプ
ログラムコンパイル手段とを備えていることを特徴とす
る関数デリバリ機構。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17805189A JPH0343834A (ja) | 1989-07-12 | 1989-07-12 | 関数デリバリ機構 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17805189A JPH0343834A (ja) | 1989-07-12 | 1989-07-12 | 関数デリバリ機構 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0343834A true JPH0343834A (ja) | 1991-02-25 |
Family
ID=16041745
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17805189A Pending JPH0343834A (ja) | 1989-07-12 | 1989-07-12 | 関数デリバリ機構 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0343834A (ja) |
-
1989
- 1989-07-12 JP JP17805189A patent/JPH0343834A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1074911B1 (en) | Aspect-oriented programming | |
| US5586328A (en) | Module dependency based incremental compiler and method | |
| Mainland et al. | Flask: Staged functional programming for sensor networks | |
| Fauth et al. | Automated generation of DSP program development tools using a machine description formalism | |
| JPH0343834A (ja) | 関数デリバリ機構 | |
| JP2003030269A (ja) | メタモデルを用いた単一マイクロプロセッサ上の並列シミュレーションのための方法 | |
| CN115268918A (zh) | 一种基于规则模板的c++代码向c代码的自动转化方法 | |
| JP2718427B2 (ja) | 大規模知識ベースにおけるデータアクセス方式 | |
| JPH0683597A (ja) | オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法 | |
| JP2002132502A (ja) | 言語機能解釈による分散オブジェクト自動生成システム及び方法 | |
| Glauert et al. | Dactl: an experimental graph rewriting | |
| JP3018783B2 (ja) | コンパイル方式 | |
| Johnson et al. | A software environment for digital signal-processing simulations | |
| JP2003330731A (ja) | プロジェクト管理ファイル生成装置 | |
| Walker | First-class patterns for Icon | |
| Aspen | Determining the feasibility of automatically translating SMILE to a Java framework | |
| Danvy et al. | A unifying approach to goal-directed evaluation | |
| JPH0695890A (ja) | コンパイラにおける名前置換方式 | |
| JPH0795275B2 (ja) | コンパイル処理装置 | |
| JPH03144832A (ja) | プリコンパイラ言語プログラムのシンボリックデバッグ装置 | |
| Magnaghi et al. | An Inter-procedural Approach for Optimizations of Java Programs | |
| JPH0683630A (ja) | プログラム自動変換装置 | |
| Schlüter | Partial Evaluation in Template Haskell | |
| JPH0612259A (ja) | コンパイラ処理方式 | |
| Walker | An Expression Data Type for Icon |