JPH09258969A - プログラム開発装置及びプログラム開発方法 - Google Patents

プログラム開発装置及びプログラム開発方法

Info

Publication number
JPH09258969A
JPH09258969A JP6471996A JP6471996A JPH09258969A JP H09258969 A JPH09258969 A JP H09258969A JP 6471996 A JP6471996 A JP 6471996A JP 6471996 A JP6471996 A JP 6471996A JP H09258969 A JPH09258969 A JP H09258969A
Authority
JP
Japan
Prior art keywords
program
interface information
static
code
activation
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
JP6471996A
Other languages
English (en)
Inventor
Toshiaki Takewaki
敏晃 武脇
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6471996A priority Critical patent/JPH09258969A/ja
Publication of JPH09258969A publication Critical patent/JPH09258969A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】公開されるインタフェース情報を有効に利用し
て実行効率の良いプログラムを開発することを可能にす
る。 【解決手段】オブジェクト指向プログラムを開発するプ
ログラム開発装置において、プログラム開発に用いられ
るインタフェース情報を格納するためのインタフェース
情報格納部38と、指定されたオブジェクト名とメソッ
ド名に対応するインタフェース情報が登録されているか
否かに基づいてソースプログラムを作成する編集管理部
20及びメソッド記述部22と、ソースプログラムを必
要なインタフェース情報が登録されているか否かに基づ
いてコンパイルしてオブジェクトプログラムを生成する
コンパイル管理部26及びメソッド起動コンパイル部2
8と、オブジェクトプログラムを必要なインタフェース
情報が登録されているか否かに基づいて実行する実行管
理部32及びメソッド起動変更部34とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
プログラムを開発するプログラム開発装置及びプログラ
ム開発方法に関する。
【0002】
【従来の技術】近年では、より複雑なプログラムを作成
するためにオブジェクト指向の考え方を採り入れたシス
テム開発が行なわれている。また、通常、システム開発
は、複数のプログラマの共同作業によって行なわれてい
る。
【0003】オブジェクト指向のプログラムの基本は、
データとそれにアクセスするためのメソッドからなるオ
ブジェクトであり、オブジェクトの集まりとしてプログ
ラムが構成される。
【0004】オブジェクトへのアクセスには、対象とす
るオブジェクトについて公開されたメソッドに関するイ
ンタフェース情報だけを使用する。従って、インタフェ
ース情報が公開されないオブジェクトのメソッドを、他
のオブジェクトから使用することができない。また、オ
ブジェクトの内部データへのアクセスも、インタフェー
ス情報に基づくメソッドを使って行なわれるために、不
正なアクセスからデータを守ることができる。
【0005】また、このようなオブジェクト指向プログ
ラムにおいては、プログラムが実行される時までにイン
タフェース情報が提供されないオブジェクトへは他のオ
ブジェクトからアクセスできない。
【0006】一般に、コンパイル時までに公開されたオ
ブジェクトへのインタフェース情報だけを用いるのであ
れば、コンパイル時にメッセージの組立を行なう静的プ
ログラム起動を使用する。静的プログラム起動であれ
ば、プログラムの実行時にメッセージを組み立てる必要
がないために、動的プログラム起動と比較すると効率的
なプログラムの実行が可能である。
【0007】一方、実行時にならなければ、公開された
オブジェクトへのインタフェース情報がわからないとき
には動的プログラム起動を用いる必要がある。この場
合、編集時(ソースコード作成時)にインタフェース情
報を用いることなくコーディング可能である。
【0008】通常、システム開発は、複数のプログラマ
によってプログラム開発されているため、必ずしもコン
パイル時にインタフェース情報が公開されず、また何時
公開されるかは明確ではない。従って、コンパイル時に
公開されたインタフェース情報を用いるオブジェクトに
ついては静的プログラム起動を使用することができる
が、コンパイル後、あるいは実行時にインタフェース情
報が公開されても、既に動的プログラム起動が用いられ
ているため、静的プログラム起動を使用することができ
ない。
【0009】
【発明が解決しようとする課題】このように従来のオブ
ジェクト指向プログラムのプログラム開発では、コンパ
イル時までに公開されたインタフェース情報だけに基づ
いて静的プログラム起動を使用するので、コンパイル
後、あるいは実行時にインタフェース情報が公開されて
も静的プログラム起動を利用することができず、実行時
にメッセージを組み立てる必要のある実行効率の悪い動
的プログラム起動を利用しなければならなかった。
【0010】また、編集時にはインタフェース情報を用
いないために、既にインタフェース情報が提供されてい
るにも係わらず動的プログラム起動を行なうようにコー
ディングしてしまったり、逆にインタフェース情報が提
供されていないにも係わらず静的プログラム起動を行な
うようにコーディングしてしまい、コンパイル時にコン
パイルエラーを発生させることがあった。
【0011】本発明は前記のような事情を考慮してなさ
れたもので、インタフェース情報が何時公開されるから
係わらず、公開されるインタフェース情報を有効に利用
して実行効率の良いプログラムを開発することが可能な
プログラム開発装置及びプログラム開発方法を提供する
ことを目的とする。
【0012】
【課題を解決するための手段】本発明は、オブジェクト
へのアクセスにインタフェース情報を使用するオブジェ
クト指向プログラムを開発するプログラム開発装置にお
いて、プログラム開発に用いられるインタフェース情報
を格納するためのインタフェース情報格納手段と、動的
プログラム起動と静的プログラム起動とを明確にしない
抽象的な記述によって指定されたオブジェクト名とメソ
ッド名に対応するインタフェース情報が、前記インタフ
ェース情報格納手段に登録されているか否かに基づいて
ソースプログラムを作成する編集手段と、前記編集手段
によって作成されたソースプログラムを、前記インタフ
ェース情報格納手段に必要なインタフェース情報が登録
されているか否かに基づいてコンパイルしてオブジェク
トプログラムを生成するコンパイル手段と、前記コンパ
イル手段によって生成されたオブジェクトプログラム
を、前記インタフェース情報格納手段に必要なインタフ
ェース情報が登録されているか否かに基づいて実行する
実行手段とを具備したことを特徴とする。
【0013】また、前記編集手段は、指定されたオブジ
ェクト名とメソッド名に対応するインタフェース情報
が、前記インタフェース情報格納手段に登録されていな
い場合にその旨の警告を通知する編集管理手段と、前記
インタフェース情報格納手段に登録されている場合に静
的プログラム起動ソースコードを挿入するメソッド記述
手段とを具備したことを特徴とする。
【0014】また本発明は、オブジェクトへのアクセス
にインタフェース情報を使用するオブジェクト指向プロ
グラムを開発するプログラム開発装置において、プログ
ラム開発に用いられるインタフェース情報を格納するた
めのインタフェース情報格納手段と、動的プログラム起
動と静的プログラム起動とを明確にしない抽象的な記述
によって指定されたオブジェクト名とメソッド名に対応
するインタフェース情報が登録されていない場合には動
的プログラム起動ソースコードを挿入し、登録されてい
る場合には静的プログラム起動ソースコードを挿入して
ソースプログラムを作成する編集手段と、前記編集手段
によって作成されたソースプログラム中の動的プログラ
ム起動ソースコードを、前記インタフェース情報格納手
段に必要なインタフェース情報が登録されている場合に
は静的プログラム起動コードに変換し、登録されていな
場合には動的プログラム起動コードに変換するようにコ
ンパイルしてオブジェクトプログラムを生成するコンパ
イル手段と、前記コンパイル手段によって生成されたオ
ブジェクトプログラム中の動的プログラム起動コード
を、前記インタフェース情報格納手段に必要なインタフ
ェース情報が登録されている場合には静的プログラム起
動コードに変換して実行し、登録されていない場合には
その旨の警告を通知する実行手段とを具備したことを特
徴とする。
【0015】また本発明は、オブジェクトへのアクセス
にインタフェース情報を使用するオブジェクト指向プロ
グラムを開発するプログラム開発装置において、プログ
ラム開発に用いられるインタフェース情報を格納するた
めのインタフェース情報格納手段と、動的プログラム起
動と静的プログラム起動とを明確にしない抽象的な記述
によって指定されたオブジェクト名とメソッド名に対応
するインタフェース情報が登録されていない場合には静
的プログラム起動の生成ソースコードを挿入し、登録さ
れている場合には静的プログラム起動ソースコードを挿
入してソースプログラムを作成する編集手段と、前記編
集手段によって作成されたソースプログラム中の静的プ
ログラム起動の生成ソースコードを、前記インタフェー
ス情報格納手段に必要なインタフェース情報が登録され
ている場合には静的プログラム起動コードに変換し、登
録されていな場合には静的プログラム起動の生成コード
に変換するようにコンパイルしてオブジェクトプログラ
ムを生成するコンパイル手段と、前記コンパイル手段に
よって生成されたオブジェクトプログラム中の静的プロ
グラム起動の生成コードを、前記インタフェース情報格
納手段に必要なインタフェース情報が登録されている場
合には実行して静的プログラム起動コードを生成し、登
録されていない場合にはその旨の警告を通知する実行手
段とを具備したことを特徴とする。
【0016】このような構成によれば、編集時には静的
プログラム起動や動的プログラム起動を意識しない抽象
的な記述方法を用い、編集時に呼び出すオブジェクトの
インタフェース情報が定義されていれば、それを用いる
ことによって静的プログラム起動コードを挿入する。ま
だ、インタフェース情報が登録されていないならばオブ
ジェクトへのメソッド呼び出しは、動的プログラム起動
コードまたは静的プログラム呼出を生成するコードを挿
入する。
【0017】プログラムのコンパイル時に、インタフェ
ース情報が登録されているならば、動的プログラムコー
ドまたは静的プログラムを生成するコードからの変換に
より、静的プログラム呼出しコードを生成するようにコ
ンパイルを行なう。
【0018】また、プログラム実行時にインタフェース
情報が登録されているならば、動的プログラムコードま
たは静的プログラムを生成するコードからの変換によ
り、静的プログラム呼出しコードを生成し、メソッド呼
び出しを行なう。
【0019】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。図1は本実施形態に係わる
プログラム開発装置1の構成を示すブロック図である。
プログラム開発装置1は、オブジェクト指向プログラム
を開発するもので、オブジェクト指向プログラムの編集
装置、オブジェクト指向プログラムのコンパイル装置、
及びオブジェクト指向プログラムの実行装置によって構
成される(詳細については後述する)。プログラム開発
装置1は、プログラマによって操作される端末部3との
間で情報の入出力を行なう。端末部3には、プログラム
開発のための入力を行なう入力部や、プログラム開発装
置1からのプログラマに対する警告等のメッセージを表
示するための表示部が設けられている。
【0020】プログラム開発装置1には、編集管理部2
0、メソッド記述部22、ソースプログラム格納部2
4、コンパイル管理部26、メソッド起動コンパイル部
28、オブジェクトプログラム格納部30、実行管理部
32、メソッド起動変更部34、静的オブジェクト判定
部36、インタフェース情報格納部38が設けられてい
る。
【0021】編集管理部20は、プログラマが端末部3
を経由してソースプログラムを編集する際に、プログラ
マによる指示に応じた端末部3からの入力を管理(ソー
スプログラムの編集、ソースプログラム格納部24の格
納)すると共に、静的オブジェクト判定部36を介して
インタフェース情報格納部38中のインタフェース情報
の登録の有無を調べメソッド記述部22に通知する。ま
た、編集管理部20は、端末部3から入力されたプログ
ラマが指定したオブジェクト名及びメソッド名に応じた
インタフェース情報の有無に応じて、端末部3へプログ
ラマに対する警告メッセージを出力する(第1の編集方
法時)。
【0022】メソッド記述部22は、端末部3から編集
管理部20への入力によって指定されたオブジェクト名
とメソッド名から、編集管理部20から通知されるイン
タフェース情報の有無の通知に応じて、ソースプログラ
ム(静的プログラム起動ソースコード、動的プログラム
起動ソースコード(第2の編集方法時)または静的プロ
グラム起動の生成ソースコード(第3の編集方法時))
を生成する。
【0023】ソースプログラム格納部24は、メソッド
記述部22によって生成されたソースプログラムを格納
する。コンパイル管理部26は、ソースプログラム格納
部24に格納されたソースプログラムをコンパイルして
オブジェクトプログラムを生成するもので、ソースプロ
グラムをコンパイルする際にプログラマによる指示に応
じた端末部3からの入力を管理すると共に、静的オブジ
ェクト判定部36を介してインタフェース情報格納部3
8中のインタフェース情報の登録の有無を調べメソッド
起動コンパイル部28に通知する。
【0024】メソッド起動コンパイル部28は、コンパ
イル管理部26から通知されるインタフェース情報の有
無の通知に応じて、動的プログラム起動ソースコード
(第1のコンパイル方法時)、あるいは静的プログラム
起動の生成ソースコード(第2のコンパイル方法時)に
対しては、静的プログラム起動コードに変換する。
【0025】オブジェクトプログラム格納部30は、ソ
ースプログラム格納部24に格納されたソースプログラ
ムがコンパイル管理部26によってコンパイルされて得
られたオブジェクトプログラムを格納する。
【0026】実行管理部32は、オブジェクトプログラ
ム格納部30に格納されたオブジェクトプログラムを実
行するもので、プログラム実行の際に、プログラマによ
る指示に応じた端末部3からの入力を管理(入力指示に
応じたプログラムの実行)すると共に、静的オブジェク
ト判定部36を介してインタフェース情報格納部38中
のインタフェース情報の登録の有無を調べメソッド起動
変更部34に通知する。また、実行管理部32は、オブ
ジェクトプログラム中の動的プログラム起動コードを検
出した場合(第1の実行方法時)、または静的プログラ
ム起動の生成コードを検出した場合(第2の実行方法
時)に、メソッド起動変更部34にコード検出を通知す
る。
【0027】メソッド起動変更部34は、実行管理部3
2によるオブジェクトプログラムの実行中に検出された
特定のコードに応じて、オブジェクトプログラム格納部
30に格納されているオブジェクトプログラムを変更す
る。メソッド起動変更部34は、動的プログラム起動コ
ードに対しては静的プログラム起動コードに変換し(第
1の実行方法)、静的プログラム起動の生成コードに対
しては静的プログラム起動コードを生成すると共に変換
後のオブジェクトプログラムが実行されるように実行順
序を変更する(第2の実行方法)。
【0028】静的オブジェクト判定部36は、指定され
たオブジェクト名とメソッド名がインタフェース情報格
納部38にインタフェース情報として格納されているか
を判定するもので、編集管理部20、コンパイル管理部
26、及び実行管理部32からの要求に応じて判定結果
を通知する。
【0029】インタフェース情報格納部38は、プログ
ラマが定義したオブジェクトのインタフェース情報を保
持する。本実施形態では、オブジェクト指向プログラム
の編集装置は、編集管理部20、メソッド記述部22、
ソースプログラム格納部24、静的オブジェクト判定部
36、及びインタフェース情報格納部38によって構成
される。
【0030】また、オブジェクト指向プログラムのコン
パイル装置は、コンパイル管理部26、メソッド起動コ
ンパイル部28、オブジェクトプログラム格納部30、
静的オブジェクト判定部36、及びインタフェース情報
格納部38によって構成される。
【0031】また、オブジェクト指向プログラムの実行
装置は、実行管理部32、メソッド起動変更部34、オ
ブジェクトプログラム格納部30、静的オブジェクト判
定部36、及びインタフェース情報格納部38によって
構成される。
【0032】次に、本実施形態におけるプログラム開発
装置1の動作について説明する。ここで動作を説明する
ために、インタフェース情報格納部38には、図2に示
すようなインタフェース情報が格納されるものとする。
インタフェース情報中の「Object」はオブジェク
ト名を示している。「Method」は、このオブジェ
クトに属するメソッド名を示している。「Intege
r」と「In」は、それぞれ、このメソッドの第1引数
が整数型で入力であることを示している。
【0033】インタフェース情報格納部38は、例えば
システム開発が複数のプログラマによって行なわれてお
り、他のプログラマによって開発されたオブジェクト指
向プログラムに応じて公開されたインタフェース情報が
登録される。インタフェース情報は、プログラム開発の
実行過程(編集、コンパイル、実行)の状況とは関係な
く登録される。
【0034】図3には、オブジェクト名「Objec
t」でメソッド名「Method」を起動する場合の静
的プログラム起動ソースコード(図3(1))、動的プ
ログラム起動ソースコード(図3(2))、静的プログ
ラム起動の生成ソースコード(図3(3))を示してい
る。
【0035】図3(1)に示す静的プログラム起動ソー
スコードは、オブジェクト名とメソッド名を点(.)で
連結した関数名で、メソッドの引数をそのまま関数の引
数としている。図3(2)に示す動的プログラム起動ソ
ースコードは、invoke関数を使い、オブジェクト
名、メソッド名、引数リストを引数として持つ。図3
(3)に示す静的プログラム起動の生成ソースコード
(静的プログラム起動コードを生成するコード)は、m
ake関数を使い、オブジェクト名、メソッド名、引数
リストを引数として持つ。
【0036】次に、プログラムの編集時の動作について
説明する。ここでは、3通り(第1〜第3)の編集方法
について説明する。本実施形態におけるプログラムの編
集では、編集時には静的プログラム起動や動的プログラ
ム起動を意識しない抽象的な記述方法が用いられる。例
えば、図3(1)に示すような、静的プログラム起動ソ
ースコードが用いられる。すなわち、静的プログラム起
動ソースコードによる記述であっても必ずしも静的プロ
グラム起動が用いられるのではなく、指定されたオブジ
ェクト名やメソッド名に応じた、編集時、コンパイル
時、あるいは実行時のインタフェース情報の定義の有無
に応じて、静的プログラム起動または動的プログラム起
動が用いられる。
【0037】(1)第1の編集方法について、図4に示
すフローチャートを参照しながら説明する。第1の編集
方法は、インタフェース情報が定義されていない時に警
告を表示する方法である。
【0038】プログラマが端末部3を経由してプログラ
ムを編集するときに(ステップA1)、編集管理部20
は、プログラマが指定したオブジェクト名、及びメソッ
ド名に対応するインタフェース情報がインタフェース格
納部38に登録されているかを静的オブジェクト判定部
36を使って調べる(ステップA2)。
【0039】編集管理部20は、その結果をメソッド記
述部22に通知する。メソッド記述部22は、指定され
たインタフェース情報が登録されていたならば(ステッ
プA3)、ソースコードに静的プログラム起動ソースコ
ードを挿入する(ステップA4)。
【0040】例えば、図2に示すようなインタフェース
情報がインタフェース情報格納部38に登録されていれ
ば、図3(1)に示す静的プログラム起動ソースコード
が編集中のソースプログラム中に挿入されることにな
る。
【0041】一方、指定されたインタフェース情報が定
義されていなければ(ステップA3)、編集管理部20
は、端末部3の表示部において、指定に応じたインタフ
ェース情報が未定義であることを示す警告メッセージを
表示し、プログラマに知らせる(ステップA5)。
【0042】このように、第1の編集方法であれば、プ
ログラムの編集時において入力されたオブジェクト名と
メソッド名に対応するインタフェース情報が、インタフ
ェース情報格納部38に登録されているかをプログラマ
が意識することなく自動的に判別され、登録されていな
ければ入力ミスの可能性を警告メッセージとしてプログ
ラマに提示することが可能になる。従って、コーディン
グされた内容とインタフェース情報の登録状況との不整
合によって、コンパイル時にコンパイルエラーを発生さ
せることを回避できる。
【0043】(2)第2の編集方法について、図5に示
すフローチャートを参照しながら説明する。第2の編集
方法は、インタフェース情報が定義されていない時に動
的プログラム起動コードを挿入する方法である。
【0044】プログラマが端末部3を経由してプログラ
ムを編集するときに(ステップB1)、編集管理部20
は、プログラマが指定したオブジェクト名、及びメソッ
ド名に対応するインタフェース情報がインタフェース格
納部38に登録されているかを静的オブジェクト判定部
36を使って調べる(ステップB2)。
【0045】編集管理部20は、その結果をメソッド記
述部22に通知する。メソッド記述部22は、指定され
たインタフェース情報が登録されていたならば(ステッ
プB3)、ソースコードに静的プログラム起動ソースコ
ードを挿入する(ステップB4)。
【0046】一方、指定されたインタフェース情報が定
義されていなければ(ステップB3)、編集管理部20
は、ソースコードに動的プログラム起動ソースコードを
挿入する(ステップB5)。
【0047】例えば、図2に示すインタフェース情報が
登録されていなければ、図3(2)のような動的プログ
ラム起動ソースコードが挿入されることになる。図3
(2)に示す動的プログラム起動ソースコードがコンパ
イルされて得られる動的プログラム起動コードは、コン
パイル時、あるいはプログラム実行時までに登録された
インタフェース情報に基づいて静的プログラム起動コー
ドに変換可能なコードである(後述する第1のコンパイ
ル方法、第1の実行方法)。
【0048】このように、第2の編集方法であれば、プ
ログラムの編集時において入力されたオブジェクト名と
メソッド名に対応するインタフェース情報が、インタフ
ェース情報格納部38に登録されているかをプログラマ
が意識することなく自動的に判別され、編集時にインタ
フェース情報の未定義検査を行なうことができる。ま
た、該当するインタフェース情報が登録されていれば静
的プログラム起動ソースコードが挿入され、静的プログ
ラム起動を用いることができる。さらに、インタフェー
ス情報が登録されていなければ、コンパイル時、あるい
はプログラム実行時にインタフェース情報が得られた際
に、静的プログラム起動に変換可能な動的プログラム起
動ソースコードを挿入することにより、編集時に動的プ
ログラム起動に確定する必要なく、静的プログラム起動
を利用する可能性を残すことができる。
【0049】(3)第3の編集方法について、図6に示
すフローチャートを参照しながら説明する。第3の編集
方法は、インタフェース情報が定義されていない時に静
的プログラム起動の生成ソースコードを挿入する方法で
ある。
【0050】プログラマが端末部3を経由してプログラ
ムを編集するときに(ステップC1)、編集管理部20
は、プログラマが指定したオブジェクト名、及びメソッ
ド名に対応するインタフェース情報がインタフェース格
納部38に登録されているかを静的オブジェクト判定部
36を使って調べる(ステップC2)。
【0051】編集管理部20は、その結果をメソッド記
述部22に通知する。メソッド記述部22は、指定され
たインタフェース情報が登録されていたならば(ステッ
プC3)、ソースコードに静的プログラム起動ソースコ
ードを挿入する(ステップC4)。
【0052】一方、指定されたインタフェース情報が定
義されていなければ(ステップC3)、編集管理部20
は、ソースコードに静的プログラム起動の生成ソースコ
ードを挿入する。
【0053】図2に示すインタフェース情報が登録され
ていなければ、図3(3)のような静的プログラム起動
の生成ソースコードが挿入されることになる。図3
(3)に示す静的プログラム起動の生成ソースコードが
コンパイルされて得られる静的プログラム起動の生成コ
ードは、コンパイル時までに登録されたインタフェース
情報に基づいて静的プログラム起動コードに変換可能な
コードである。また、プログラム実行時までに登録され
たインタフェース情報に基づいて、実行時に静的プログ
ラム起動コードを生成するコードである(後述する第2
のコンパイル方法、第2の実行方法)。
【0054】このように、第3の編集方法であれば、プ
ログラムの編集時において入力されたオブジェクト名と
メソッド名に対応するインタフェース情報が、インタフ
ェース情報格納部38に登録されているかをプログラマ
が意識することなく自動的に判別され、編集時にインタ
フェース情報の未定義検査を行なうことができる。ま
た、該当するインタフェース情報が登録されていれば静
的プログラム起動ソースコードが挿入され、静的プログ
ラム起動を用いることができる。さらに、インタフェー
ス情報が登録されていなければ、コンパイル時、あるい
はプログラム実行時にインタフェース情報が得られた際
に、静的プログラム起動のコードをプログラム実行時に
生成する静的プログラム起動の生成ソースコードを挿入
することにより、編集時に動的プログラム起動に確定す
る必要なく、静的プログラム起動を利用する可能性を残
すことができる。
【0055】次に、プログラムのコンパイル時の動作に
ついて説明する。ここでは、2通り(第1、第2)のコ
ンパイル方法について説明する。 (1)第1のコンパイル方法について、図7に示すフロ
ーチャートを参照しながら説明する。第1のコンパイル
方法は、前述した第2の編集方法によって編集された動
的プログラム起動コードが挿入されているソースプログ
ラムに対する方法である。
【0056】コンパイル管理部26は、端末部3を介し
てプログラマに指定されたソースプログラムをソースプ
ログラム格納部24から取り出し、明示されないコンパ
イル手段によりオブジェクトプログラムを生成する(ス
テップD2,D3)。
【0057】コンパイル管理部26は、コンパイル中の
ソースプログラムの中に、動的プログラム起動ソースコ
ードを検出したときに(ステップD1)、この動的プロ
グラム起動ソースコードに対応するインタフェース情報
がインタフェース情報格納部38に登録されているかを
静的オブジェクト判定部36を用いて判定する(ステッ
プD4)。
【0058】コンパイル管理部26は、その結果をメソ
ッド起動コンパイル部28に通知する。メソッド起動コ
ンパイル部28は、必要なインタフェース情報が未登録
であれば、動的プログラム起動ソースコードをコンパイ
ルして動的プログラム起動コードを生成して(ステップ
D6)、オブジェクトプログラムに挿入し、オブジェク
トプログラム格納部30に格納する(ステップD8)。
【0059】一方、メソッド起動コンパイル部28は、
動的プログラム起動ソースコード(メソッド)に対する
インタフェース情報が登録されていれば、ソースプログ
ラムの動的プログラム起動ソースコードを、インタフェ
ース情報に基づいて、対応する静的プログラム起動コー
ドに変換し(ステップD7)、オブジェクトプログラム
内に挿入し、オブジェクトプログラム格納部30に格納
する(ステップD8)。
【0060】このように、第2の編集方法によって動的
プログラム起動ソースコードが記述されたとしても、プ
ログラムのコンパイル段階で必要なインタフェース情報
が登録されていれば、動的プログラム起動を行なってい
る部分を検出して静的プログラム起動コードに変換す
る。すなわち、より静的プログラム起動を利用すること
ができるので、効率的なオブジェクトプログラムが生成
される。
【0061】(2)第2のコンパイル方法について、図
8に示すフローチャートを参照しながら説明する。第2
のコンパイル方法は、前述した第3の編集方法によって
編集された静的プログラム起動の生成ソースコードが挿
入されているソースプログラムに対する方法である。
【0062】コンパイル管理部26は、端末部3を介し
てプログラマに指定されたソースプログラムをソースプ
ログラム格納部24から取り出し、明示されないコンパ
イル手段によりオブジェクトプログラムを生成する(ス
テップE2,E3)。
【0063】コンパイル管理部26では、コンパイル中
のソースプログラムの中に、静的プログラム起動の生成
ソースコードを検出したときに(ステップE1)、この
静的プログラム起動に対応するインタフェース情報がイ
ンタフェース情報格納部38に登録されているかを静的
オブジェクト判定部36を用いて判定する(ステップE
4)。
【0064】コンパイル管理部26は、その結果をメソ
ッド起動コンパイル部28に通知する。メソッド起動コ
ンパイル部28は、必要なインタフェース情報が未登録
であれば、静的プログラム起動の生成ソースコードをコ
ンパイルして、静的プログラム起動の生成コードを生成
して(ステップE6)、オブジェクトプログラムに挿入
し、オブジェクトプログラム格納部3に格納する(ステ
ップE8)。
【0065】一方、メソッド起動コンパイル部28は、
静的プログラム起動ソースコード(メソッド)に対する
インタフェース情報が登録されていれば、ソースプログ
ラムの静的プログラム起動の生成ソースコードを、イン
タフェース情報に基づいて、対応する静的プログラム起
動コードに変換し(ステップE7)、オブジェクトプロ
グラム内に挿入し、オブジェクトプログラム格納部30
に格納する(ステップE8)。
【0066】このように、第3の編集方法によって静的
プログラム起動の生成ソースコードが記述されたとして
も、プログラムのコンパイル段階で、静的プログラム起
動の生成ソースコードを検出し、必要なインタフェース
情報が登録されていれば静的プログラム起動コードに変
換する。すなわち、より静的プログラム起動を利用する
ことができるので、効率的なオブジェクトプログラムが
生成される。
【0067】次に、オブジェクトプログラムを実行する
時の動作について説明する。ここでは、2通り(第1,
第2)のプログラム実行方法について説明する。 (1)第1の実行方法について、図9に示すフローチャ
ートを参照しながら説明する。第1の実行方法は、前述
した第2の編集方法によって動的プログラム起動ソース
コードが挿入された場合、及び前述した第1のコンパイ
ル方法によって動的プログラム起動コードが挿入された
場合に対する方法である。
【0068】実行管理部32は、端末部3を介してプロ
グラマに指定されたオブジェクトプログラムをオブジェ
クトプログラム格納部30から取り出して実行する(ス
テップF2,F3)。
【0069】実行管理部32は、プログラムを実行する
時に、動的プログラム起動コードを検出したときに(ス
テップF1)、この動的プログラム起動コードに対応す
るインタフェース情報がインタフェース情報格納部38
に登録されているかを静的オブジェクト判定部36を用
いて判定する(ステップF4)。
【0070】実行管理部32は、その結果をメソッド起
動変更部34に通知する。メソッド起動変更部34は、
必要なインタフェース情報が未登録であれば、実行時エ
ラーとなるので、その旨の警告を端末部3の表示部にお
いて表示させる(ステップF6)。
【0071】一方、メソッド起動変更部34は、動的プ
ログラム起動コード(メソッド)に対するインタフェー
ス情報が登録されていれば、オブジェクトプログラムの
動的プログラム起動コードを、インタフェース情報に基
づいて、対応する静的プログラム起動コードに変換し
(ステップF7)、オブジェクトプログラム格納部30
内に格納されているオブジェクトプログラムを修正する
(ステップF8)。
【0072】このように、第2の編集方法、第1のコン
パイル方法によって動的プログラム起動コードが挿入さ
れたとしても、プログラムの実行段階で必要なインタフ
ェース情報が登録されていれば、動的プログラム起動を
する前に、動的プログラム起動コードを静的起動コード
に変換する。最初に動的プログラム起動コードを検出し
て静的プログラム起動コードに変換する際にはプログラ
ムの実行効率が低減するが、その後は静的プログラム起
動を利用するので、効率的なオブジェクトプログラムの
実行が可能となる。
【0073】また、必要なインタフェース情報が登録さ
れていないときには実行時エラーの警告をプログラマに
通知することが可能となる。 (2)第2の実行方法について、図10に示すフローチ
ャートを参照しながら説明する。第2の実行方法は、前
述した第3の編集方法によって静的プログラム起動の生
成ソースコードが挿入された場合、及び前述した第2の
コンパイル方法によって静的プログラム起動の生成コー
ドが挿入された場合に対する方法である。
【0074】実行管理部32は、端末部3を介してプロ
グラマに指定されたオブジェクトプログラムをオブジェ
クトプログラム格納部30から取り出して実行する(ス
テップG2,G3)。
【0075】実行管理部32は、プログラムを実行する
時に、静的プログラム起動の生成コードを検出したとき
に(ステップG1)、この静的プログラム起動の生成コ
ードに対応するインタフェース情報がインタフェース情
報格納部38に登録されているかを静的オブジェクト判
定部36を用いて判定する(ステップG4)。
【0076】実行管理部32は、その結果をメソッド起
動変更部34に通知する。メソッド起動変更部34は、
必要なインタフェース情報が未登録であれば、実行時エ
ラーとなるので、その旨の警告を端末部3の表示部にお
いて表示させる(ステップG6)。
【0077】一方、メソッド起動変更部34は、静的プ
ログラム起動の生成コード(メソッド)に対するインタ
フェース情報が登録されていれば、オブジェクトプログ
ラムの静的プログラム起動の生成コードを実行し、イン
タフェース情報に基づいて、静的プログラム起動コード
を生成する(ステップG7)。また、メソッド起動変更
部34は、生成した静的プログラム起動コードに実行が
移行し、生成コードが実行されないように、オブジェク
トプログラム格納部30内に格納されているオブジェク
トプログラムを修正する(ステップG8)。
【0078】このように、第3の編集方法、第2のコン
パイル方法によって静的プログラム起動の生成コードを
挿入し、プログラムの実行段階で必要なインタフェース
情報が登録されていれば、生成コードを1回実行するこ
とにより静的プログラム起動コードを生成することがで
きる。最初に静的プログラム起動の生成コードを実行す
る際にはプログラムの実行効率が低減するが、その後は
静的プログラム起動を利用するので、効率的なオブジェ
クトプログラムの実行が可能となる。
【0079】また、必要なインタフェース情報が登録さ
れていないときには実行時エラーの警告をプログラマに
通知することが可能となる。このようにして、編集管理
部20によってプログラムの編集時には動的プログラム
起動あるいは静的プログラム起動かを明確にしない抽象
的な記述を行ない、コンパイル時あるいはプログラムの
実行時に、インタフェース情報格納部38に登録された
インタフェース情報を有効に利用して、静的プログラム
起動コード(静的呼び出しコード)を生成することがで
きる。すなわち、プログラム作成時に柔軟性を持たせる
ことができ、プログラム実行時には、従来ならば動的プ
ログラム起動していたメソッド呼び出しを高速化するこ
とになり、処理効率が向上される。
【0080】
【発明の効果】以上詳述したように本発明によれば、イ
ンタフェース情報が何時公開されるから係わらず、公開
されるインタフェース情報を有効に利用して実行効率の
良いプログラムを開発することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態に係わるプログラム開発装置
の構成を示すブロック図。
【図2】本実施形態におけるインタフェース情報の一例
を示す図。
【図3】本実施形態におけるソースプログラム中で用い
られるソースコードの一例を示す図。
【図4】本実施形態の第1の編集方法を説明するための
フローチャート。
【図5】本実施形態の第2の編集方法を説明するための
フローチャート。
【図6】本実施形態の第3の編集方法を説明するための
フローチャート。
【図7】本実施形態の第1のコンパイル方法を説明する
ためのフローチャート。
【図8】本実施形態の第2のコンパイル方法を説明する
ためのフローチャート。
【図9】本実施形態の第1の実行方法を説明するための
フローチャート。
【図10】本実施形態の第2の実行方法を説明するため
のフローチャート。
【符号の説明】
1…プログラム開発装置 3…端末部 20…編集管理部 22…メソッド記述部 24…ソースプログラム格納部 26…コンパイル管理部 28…メソッド起動コンパイル部 30…オブジェクトプログラム格納部 32…実行管理部 34…メソッド起動変更部 36…静的オブジェクト判定部 38…インタフェース情報格納部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトへのアクセスにインタフェ
    ース情報を使用するオブジェクト指向プログラムを開発
    するプログラム開発装置において、 プログラム開発に用いられるインタフェース情報を格納
    するためのインタフェース情報格納手段と、 動的プログラム起動と静的プログラム起動とを明確にし
    ない抽象的な記述によって指定されたオブジェクト名と
    メソッド名に対応するインタフェース情報が、前記イン
    タフェース情報格納手段に登録されているか否かに基づ
    いてソースプログラムを作成する編集手段と、 前記編集手段によって作成されたソースプログラムを、
    前記インタフェース情報格納手段に必要なインタフェー
    ス情報が登録されているか否かに基づいてコンパイルし
    てオブジェクトプログラムを生成するコンパイル手段
    と、 前記コンパイル手段によって生成されたオブジェクトプ
    ログラムを、前記インタフェース情報格納手段に必要な
    インタフェース情報が登録されているか否かに基づいて
    実行する実行手段とを具備したことを特徴とするプログ
    ラム開発装置。
  2. 【請求項2】 前記編集手段は、 指定されたオブジェクト名とメソッド名に対応するイン
    タフェース情報が、前記インタフェース情報格納手段に
    登録されていない場合にその旨の警告を通知する編集管
    理手段と、 前記インタフェース情報格納手段に登録されている場合
    に静的プログラム起動ソースコードを挿入するメソッド
    記述手段と、 を具備したことを特徴とする請求項1記載のプログラム
    開発装置。
  3. 【請求項3】 オブジェクトへのアクセスにインタフェ
    ース情報を使用するオブジェクト指向プログラムを開発
    するプログラム開発装置において、 プログラム開発に用いられるインタフェース情報を格納
    するためのインタフェース情報格納手段と、 動的プログラム起動と静的プログラム起動とを明確にし
    ない抽象的な記述によって指定されたオブジェクト名と
    メソッド名に対応するインタフェース情報が登録されて
    いない場合には動的プログラム起動ソースコードを挿入
    し、登録されている場合には静的プログラム起動ソース
    コードを挿入してソースプログラムを作成する編集手段
    と、 前記編集手段によって作成されたソースプログラム中の
    動的プログラム起動ソースコードを、前記インタフェー
    ス情報格納手段に必要なインタフェース情報が登録され
    ている場合には静的プログラム起動コードに変換し、登
    録されていない場合には動的プログラム起動コードに変
    換するようにコンパイルしてオブジェクトプログラムを
    生成するコンパイル手段と、 前記コンパイル手段によって生成されたオブジェクトプ
    ログラム中の動的プログラム起動コードを、前記インタ
    フェース情報格納手段に必要なインタフェース情報が登
    録されている場合には静的プログラム起動コードに変換
    して実行し、登録されていない場合にはその旨の警告を
    通知する実行手段とを具備したことを特徴とするプログ
    ラム開発装置。
  4. 【請求項4】 オブジェクトへのアクセスにインタフェ
    ース情報を使用するオブジェクト指向プログラムを開発
    するプログラム開発装置において、 プログラム開発に用いられるインタフェース情報を格納
    するためのインタフェース情報格納手段と、 動的プログラム起動と静的プログラム起動とを明確にし
    ない抽象的な記述によって指定されたオブジェクト名と
    メソッド名に対応するインタフェース情報が登録されて
    いない場合には静的プログラム起動の生成ソースコード
    を挿入し、登録されている場合には静的プログラム起動
    ソースコードを挿入してソースプログラムを作成する編
    集手段と、 前記編集手段によって作成されたソースプログラム中の
    静的プログラム起動の生成ソースコードを、前記インタ
    フェース情報格納手段に必要なインタフェース情報が登
    録されている場合には静的プログラム起動コードに変換
    し、登録されていな場合には静的プログラム起動の生成
    コードに変換するようにコンパイルしてオブジェクトプ
    ログラムを生成するコンパイル手段と、 前記コンパイル手段によって生成されたオブジェクトプ
    ログラム中の静的プログラム起動の生成コードを、前記
    インタフェース情報格納手段に必要なインタフェース情
    報が登録されている場合には実行して静的プログラム起
    動コードを生成し、登録されていない場合にはその旨の
    警告を通知する実行手段とを具備したことを特徴とする
    プログラム開発装置。
  5. 【請求項5】 オブジェクトへのアクセスにインタフェ
    ース情報を使用するオブジェクト指向プログラムを開発
    するプログラム開発方法において、 動的プログラム起動と静的プログラム起動とを明確にし
    ない抽象的な記述によって指定されたオブジェクト名と
    メソッド名に対応するインタフェース情報が、公開され
    ているか否かに基づいてソースプログラムを作成し、 この作成されたソースプログラムを、必要なインタフェ
    ース情報が公開されているか否かに基づいてコンパイル
    してオブジェクトプログラムを生成し、 この生成されたオブジェクトプログラムを、必要なイン
    タフェース情報が公開されているか否かに基づいて実行
    することを特徴とするプログラム開発方法。
  6. 【請求項6】 指定されたオブジェクト名とメソッド名
    に対応するインタフェース情報が公開されていない場合
    にその旨の警告を通知し、 インタフェース情報が公開されている場合に静的プログ
    ラム起動ソースコードを挿入することを特徴とする請求
    項5記載のプログラム開発方法。
  7. 【請求項7】 オブジェクトへのアクセスにインタフェ
    ース情報を使用するオブジェクト指向プログラムを開発
    するプログラム開発方法において、 動的プログラム起動と静的プログラム起動とを明確にし
    ない抽象的な記述によって指定されたオブジェクト名と
    メソッド名に対応するインタフェース情報が公開されて
    いない場合には動的プログラム起動ソースコードを挿入
    し、公開されている場合には静的プログラム起動ソース
    コードを挿入してソースプログラムを作成し、 この作成されたソースプログラム中の動的プログラム起
    動ソースコードを、必要なインタフェース情報が公開さ
    れている場合には静的プログラム起動コードに変換し、
    公開されていな場合には動的プログラム起動コードに変
    換するようにコンパイルしてオブジェクトプログラムを
    生成し、 この生成されたオブジェクトプログラム中の動的プログ
    ラム起動コードを、必要なインタフェース情報が公開さ
    れている場合には静的プログラム起動コードに変換して
    実行し、公開されていない場合にはその旨の警告を通知
    することを特徴とするプログラム開発方法。
  8. 【請求項8】 オブジェクトへのアクセスにインタフェ
    ース情報を使用するオブジェクト指向プログラムを開発
    するプログラム開発方法において、 動的プログラム起動と静的プログラム起動とを明確にし
    ない抽象的な記述によって指定されたオブジェクト名と
    メソッド名に対応するインタフェース情報が公開されて
    いない場合には静的プログラム起動の生成ソースコード
    を挿入し、公開されている場合には静的プログラム起動
    ソースコードを挿入してソースプログラムを作成し、 この作成されたソースプログラム中の静的プログラム起
    動の生成ソースコードを、必要なインタフェース情報が
    公開されている場合には静的プログラム起動コードに変
    換し、公開されていな場合には静的プログラム起動の生
    成コードに変換するようにコンパイルしてオブジェクト
    プログラムを生成し、 この生成されたオブジェクトプログラム中の静的プログ
    ラム起動の生成コードを、必要なインタフェース情報が
    公開されている場合には実行して静的プログラム起動コ
    ードを生成し、公開されていない場合にはその旨の警告
    を通知することを特徴とするプログラム開発方法。
JP6471996A 1996-03-21 1996-03-21 プログラム開発装置及びプログラム開発方法 Pending JPH09258969A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6471996A JPH09258969A (ja) 1996-03-21 1996-03-21 プログラム開発装置及びプログラム開発方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6471996A JPH09258969A (ja) 1996-03-21 1996-03-21 プログラム開発装置及びプログラム開発方法

Publications (1)

Publication Number Publication Date
JPH09258969A true JPH09258969A (ja) 1997-10-03

Family

ID=13266249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6471996A Pending JPH09258969A (ja) 1996-03-21 1996-03-21 プログラム開発装置及びプログラム開発方法

Country Status (1)

Country Link
JP (1) JPH09258969A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006209607A (ja) * 2005-01-31 2006-08-10 Hitachi Electronics Service Co Ltd 複数シンクライアント処理実行システム
JP2013041598A (ja) * 2004-12-06 2013-02-28 Giesecke & Devrient Gmbh プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041598A (ja) * 2004-12-06 2013-02-28 Giesecke & Devrient Gmbh プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム
JP2006209607A (ja) * 2005-01-31 2006-08-10 Hitachi Electronics Service Co Ltd 複数シンクライアント処理実行システム

Similar Documents

Publication Publication Date Title
JP3178151B2 (ja) オブジェクト指向言語のメッセージコンパイル装置
US6836883B1 (en) Method and system for compiling multiple languages
CN108920133B (zh) 跨语言编程方法、装置、电子设备及存储介质
JP2666847B2 (ja) 異種言語間連絡方式
US6901579B1 (en) Generation of source code from classes and maintaining the comment that indicates the role of the class in the generated source code
EP0905617B1 (en) Method for generating a java bytecode data flow graph
CN110704063B (zh) 编译和执行智能合约的方法及装置
CN110704064B (zh) 编译和执行智能合约的方法及装置
US20020019973A1 (en) Compiler and method for compiling easily adaptable to processor specifications
JPH10161885A (ja) 遠隔コンパイル方法およびシステム
JP2010097426A (ja) コンピュータプログラム、ソースプログラム入力受付装置及びソースプログラム入力受付方法
US5978587A (en) Method for propagating source code locations into objects in a compiler
JP4026940B2 (ja) プログラム変換装置
US7458071B2 (en) Compilation method, compiler apparatus and compiler
US7624381B1 (en) Portable detection of start and completion of object construction
JP2004265371A (ja) マークアップ内でサブクラスを宣言的に定義し、使用するためのシステムおよび方法
CN114153463A (zh) 基于脚本编译器的管理系统业务功能创建方法及系统
JP2018156133A (ja) コンパイラプログラム、情報処理装置およびコンパイル方法
JP5115160B2 (ja) プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム
EP1396787A1 (en) Method and apparatus for importing static members of a class
US9703576B2 (en) Aspect scoping in a modularity runtime
JPH09258969A (ja) プログラム開発装置及びプログラム開発方法
US7266814B2 (en) Namespace based function invocation
JPH09218789A (ja) 分割コンパイル方式
CN114371852B (zh) 一种编译方法及装置