JPH08202545A - ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 - Google Patents

ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法

Info

Publication number
JPH08202545A
JPH08202545A JP7245688A JP24568895A JPH08202545A JP H08202545 A JPH08202545 A JP H08202545A JP 7245688 A JP7245688 A JP 7245688A JP 24568895 A JP24568895 A JP 24568895A JP H08202545 A JPH08202545 A JP H08202545A
Authority
JP
Japan
Prior art keywords
code
target language
oriented
source code
template
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
JP7245688A
Other languages
English (en)
Inventor
Hiden Lindsay Anthony
アンソニー・ハイデン・リンゼイ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08202545A publication Critical patent/JPH08202545A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【課題】最小のプログラマ介入でソース・コード・ファ
イルを生成する。 【解決手段】オブジェクト指向ユーザ・インターフェー
スを使用して、所望のコンピュータ・プログラミング機
能のオブジェクト指向設計を行う場合、オブジェクト指
向モデルは、必要に応じて各オブジェクトを再帰的に生
成するジェネレータ・エンジンによって処理され、その
モデルに含まれるターゲット言語に関するプリミティブ
・オブジェクトを表面化させる。各プリミティブ・オブ
ジェクトは、典型的には第3世代言語である所望のター
ゲット言語に対応した一組ソース・コード・テンプレー
トからそれの対応するテンプレートにマップされる。オ
ブジェクト指向ジェネレータ・エンジンは、その結果の
テンプレート集積体を解析して、所望のターゲット言語
で所望のプログラミング機能を有するソース・コード・
ファイルを形成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
ユーザ・インターフェース及びオブジェクト指向ジェネ
レータ・エンジンを利用してソース・コードをターゲッ
ト言語で生成するためのシステム及び方法に関するもの
である。更に詳しく云えば、本発明は、ユーザがオブジ
ェクト指向ユーザ・インターフェースを利用して所望の
プログラミング機能のオブジェクト指向設計を行う場合
にその所望のプログラミング機能をプロトタイプ化する
システム及び方法に関するものである。そのオブジェク
ト指向設計はターゲット言語に対するソース・コード・
テンプレートに適合させられる。そのテンプレートはジ
ェネレータ・エンジンによって解析され、そしてオブジ
ェクト指向コードが実行されてソース・コード・ファイ
ルをターゲット言語で生じさせる。
【0002】
【従来の技術】今日のコンピュータ・テクノロジにおい
て一般に持たれている見解は、コンピュータ・ソフトウ
エアにおける開発がコンピュータ・ハードウエアにおけ
る開発に後れをとっているということである。部分的に
は、これは、確かに、コンピュータ言語が比較的多いた
めであり、又、単一のしっかりした且つ完全なコンピュ
ータ・プログラム又はアプリケーションを開発するに必
要なコンピュータ・プログラミング・スキルが広範囲で
あるためである。今日では、しっかりした且つ完全なコ
ンピュータ・プログラムは多数の要件を持っている。こ
れらは、広範囲の機能性、グラフィカル・ユーザ・イン
ターフェース、データ・ベースをアクセスする能力、基
礎となるオペレーティング・システムを適正に利用しそ
してそれと対話する能力等を含む。軍事分野及び経済分
野のような或る分野においてコンピュータへの依存があ
る場合、多くのプログラムは過酷な集中的使用に対処す
ることができなければならない。従って、プログラムの
テストも広範囲にわたらなければならない。
【0003】今日使用されている最も顕著なプログラミ
ング言語は、C、フォートラン、及びコボルのような言
語を含む第3世代の言語(3GL)として知られている
ものである。一人のプログラマ或いは小グループのプロ
グラマがしっかりしたアプリケーションを3GLで作成
するに必要な能力すべてを持つと云うことはまれであ
る。そして、プログラマは1つの言語には習熟している
かもしれないけれども、これは、そのプログラマが他の
すべてに言語に関するすべてのことを知っていることを
意味するものではない。
【0004】この状況の場合、複雑且つ多様なコンピュ
ータ・プログラムを書くために必要なスキル・レベルを
下げるように試みた多くのシステムが、近年、開発され
ている。ケース・ツール及びパワー・ツールとして知ら
れるようになったものが開発されている。ケース・ツー
ル及びパワー・ツールは、第4世代の言語(4GL)と
して知られているものを利用することが多い。第4世代
の言語では、シンタックスはより単純になり、プログラ
マは3GLでコーディングしていた場合よりも少ないス
テートメントを指定すればよい。従って、新しいユーザ
に対する学習曲線はより低くなる。そのようなツール
は、プログラマによって書かれ又は入力された4GLコ
ードを、ユーザ定義の4GL機能に対応した3GLコー
ドに変換する。そのようなツールのうちの或るものは、
プログラマが或るスキル領域でのコーディングにおける
エキスパートであるという要件を完全に取り除く。例え
ば、3GLにおける単一ラインのコードを書くことを必
要とすることなく、プログラムに対するグラフィカル・
ユーザ・インターフェースを構成するためにツールを使
用することは現在ではプログラマにとって一般的であ
る。ユーザは、グラフィカル・ユーザ・インターフェー
スの所望のレイアウトを構成するようにマウス及び一連
のキーストロークを使用することによって、そのツール
のユーザ・インターフェースを操作する。
【0005】4GLの使用といつも関連する1つの問題
点は、4GLでもって作成された3GLプログラムによ
り実行される実際の処理におけるプログラマによる制御
が少なくなることである。プログラマがケース・ツール
又はパワー・ツールを用いて4GLで書いたコードは、
コンピュータ・プロセッサによって実行される実際の機
械命令からさらに多く除去されるものを除き、3GLで
プログラマにより書かれたコードよりも簡潔である。
【0006】前述のケース・ツール及びパワー・ツール
のような第4世代の言語が組み込まれているツールは、
ソース・コード・ジェネレータとしても知られている。
伝統的なソース・コード・ジェネレータ・ツールは、ユ
ーザが4GLで入力するユーザ入力設計を受ける。この
場合、ユーザは、その入力設計に対応した機能性を持っ
た特殊なターゲット言語でソース・コードを出力するソ
ース・コード・ジェネレータ・エンジンを利用して4G
L設計を処理する。その出力は、典型的には3GLであ
るが、実行中、実行時エンジンによって変換される所有
権ある言語でもよい。そのジェネレータ・エンジンは、
ユーザによって入力された4GLコード設計の個々のコ
ンポーネントを3GLにおける対応する定義済みのソー
ス・コード・スニペット(snippet)にマップす
る。ジェネレータ・エンジンは、4GL設計コードの各
基本的なコンポーネントに対してこのマッピング機能を
遂行し、所望のターゲット言語でソース・ファイルを出
力する。
【0007】そのようなジェネレータ・システムは多数
の欠点を持っている。伝統的なシステムは拡張性に欠け
ており、修正することが困難である。そのシステムの能
力を改善又は拡張する試みは、極めて複雑になることが
ある。4GLは修正されなければならず、そのジェネレ
ータ・エンジンにおける3GLスニペットは位置指定さ
れそして修正されなければならず(それはジェネレータ
・エンジンの詳細な知識を必要とする)、新しい3GL
スニペットが加えられなければならない。その結果のエ
ンジンは更に複雑になり、更にまとまりのないものにな
ることがある。
【0008】更に、そのようなシステムによって発生さ
れたソース・コードは、ユーザが望んでいる3GLプロ
グラムのシェルだけであることが多い。4GLを3GL
にマッピングすることの複雑さは、そのようなシステム
による可能な精度を制限することになる。
【0009】1992年10月27日に発行された米国
特許第5,159,687号は、種々な言語に対するプロ
グラミング・コードの自動生成において使用可能な多数
の異なった知識ベースを利用する所有権ある4GLベー
スのシステムを開示している。その特許は、拡張性の問
題を処理しようとする試みを開示している。しかし、こ
の特許において開示されたシステムは、ソース・コード
・ジェネレータの使用と関連した問題点すべてを処理す
るものではない。又、このシステムのユーザは、他の場
合に殆ど用途を持たない4GLを学習しなければならな
い。
【0010】4GLへの依存を減少させ、更に正確なマ
ッピングを可能にするようにマッピング・プロセスを改
良し、従って、生成された3GLソース・コードのより
よい制御及びそれの処理機能を改良するソース・コード
・ジェネレータに対する要求が存在する。
【0011】
【発明が解決しようとする課題】従って、本発明の目的
は、所望の機能を得るために最小のプログラマ介在しか
必要としないソース・コード・ファイルを生成するため
のシステムを提供することにある。
【0012】本発明のもう1つの目的は、伝統的なソー
ス・コード・ジェネレータを使用することによって生じ
るものよりも完全であり且つより正確に所望の機能に適
合するソース・コード・ファイルを生じさせるソース・
コード・ジェネレータを提供することにある。
【0013】本発明の更にもう1つの目的は、結果とし
て生じるソース・コード・ファイルの質を犠牲にするこ
となく、ユーザにやさしいインターフェースを利用する
ソース・コード・ジェネレータ・ツールを提供すること
にある。
【0014】
【課題を解決するための手段】上記の目的を達成するた
めに、及び本願において広く開示されるような本発明の
目的に従って、コンピュータ環境において、オブジェク
ト指向プログラム仕様をターゲット言語に対するソース
・コードに変換するためのシステムが提供される。その
システムは、各々がターゲット言語における異なる構成
に対応し且つコードのフラグメントを含む一組のコード
・テンプレートと、そのオブジェクト指向プログラム仕
様における各オブジェクトがそれら構成の1つに対応す
るかどうかを決定し、それが対応しない場合には非対応
オブジェクトを再帰的に生成して包含オブジェクトを生
成し、それが必要である場合にはその包含オブジェクト
を再帰的に生成して非対応オブジェクトを含み且つそれ
らの構成の1つに対応するオブジェクトを見つけるため
の手段と、それら対応する構成に対応したそれら対応す
るオブジェクトの各々をコード・テンプレートにマップ
するための手段と、そのマップされたコード・テンプレ
ートを解析してソース・コードをターゲット言語で生じ
させるための解析手段とを含む。
【0015】
【発明の実施の形態】そのシステムは、オブジェクト指
向コードの実行を可能にするためのオブジェクト指向実
行環境を含み、コード・テンプレートの各々はターゲッ
ト言語からのオブジェクト指向コードとソース・コード
のフラグメントとを含み、前記解析手段は前記マップさ
れたコード・テンプレートの各々におけるオブジェクト
指向コードを前記オブジェクト指向プログラム仕様に関
する前記オブジェクト指向実行環境でもって実行させて
追加のソース・コード・フラグメントを生成し、該追加
のソース・コード・フラグメントを前記ソース・コード
のフラグメントと結合する。複数個のターゲット言語が
ターゲット設定のために使用可能であり、一組のコード
・テンプレートがターゲット言語の各々に与えられる。
そのシステムは、更に、ターゲット言語を指定するため
の手段を含み、前記マップするための手段は前記対応す
るオブジェクトの各々を、前記一組のコード・テンプレ
ートから、前記指定されたターゲット言語に対応するコ
ード・テンプレートのうちの対応する1つにマップする
ことが可能である。前記構成はターゲット言語のベース
・ロジック及びデータ・コンポーネントであってよい。
【0016】又、オブジェクト指向プログラムをターゲ
ット言語に対するコードに変換するためのシステムが提
供される。それは、各使用可能なターゲット言語に対応
する一組のコード・テンプレートを含む。そのコード・
テンプレートの各々は対応するターゲット言語及びオブ
ジェクト指向コードにおけるコード・フラグメントを含
み、対応するターゲット言語における異なる構成に対応
する。そのシステムは、更に、前記オブジェクト指向コ
ードを実行することができるオブジェクト指向実行環境
と、ターゲット言語に対するコード・テンプレートに対
応するすべての基礎となるオブジェクトを見つけるため
に、オブジェクト指向プログラムにおいて各オブジェク
トを再帰的に生成するための手段と、基礎となるオブジ
ェクトの各々をターゲット言語に対する対応するコード
・テンプレートにマップするための手段と、前記マップ
されたコード・テンプレートを解析してターゲット言語
でコードを生成するための解析手段とを含む。前記解析
手段はコード・フラグメントを各マップされたコード・
テンプレートから取り出し、各マップされたコード・テ
ンプレートにおいてオブジェクト指向コードを実行して
追加のコード・フラグメントを生じさせ、その追加のコ
ード・フラグメント及び前記コードフラグメントを結合
し、その結合したコードを出力する。前記構成の各々は
対応するターゲット言語におけるロジック・キーワード
又はデータ・キーワードに対応する。そのシステムは、
更に、前記オブジェクト指向プログラムが変換されるタ
ーゲット言語を指定するための手段を含む。
【0017】又、オブジェクト指向プログラムをターゲ
ット言語に変換するための方法が提供される。その方法
は、前記ターゲット言語に対する対応するソース・コー
ド・テンプレートを有するすべてのプリミティブ・オブ
ジェクトを識別するために、必要に応じて、前記オブジ
ェクト指向プログラムからオブジェクトを再帰的に生成
するステップと、前記プリミティブ・オブジェクトの各
々を前記対応するソース・コード・テンプレートにマッ
プするステップと、ソース・コードをターゲット言語で
生成するために前記マップされたソース・コード・テン
プレートを解析するステップとを含む。前記ソース・コ
ード・テンプレートはターゲット言語ソース・コード部
分及びオブジェクト指向コード部分を含み、前記解析す
るステップは前記ソース・コード・テンプレートの各々
のオブジェクト指向コード部分を実行させ、前記オブジ
ェクト指向コード部分の実行に対するすべての応答を前
記ターゲット言語ソース・コード部分と結合し、その結
合された応答及びソース・コード部分を出力する。その
方法は、更に、前記オブジェクト指向プログラムが変換
されるターゲット言語を指定するステップを含む。複数
個のターゲット言語が使用可能であり、一組のソース・
コード・テンプレートが前記ターゲット言語の各々と関
連する。
【0018】
【実施例】図1を参照して、従来技術のソース・コード
生成システムを説明することにする。
【0019】典型的なソース・コード・ジェネレータで
は、コンピュータ環境に存在する4GLソース・コード
・ジェネレータ・ツール10がそれの4GLユーザ・イ
ンターフェース12を通してユーザ入力を受け付ける。
ユーザは、キーボード14、マウス16、又は他のイン
ターフェース装置18のような既知の手段を通して4G
Lユーザ・インターフェース12と対話することによっ
て所望のプログラミング機能を指定する。このように、
ユーザは、所望の機能を持ったプログラムの4GL仕様
を4GL言語で構成する。そこで、その4GL仕様はジ
ェネレータ・ツール10のジェネレータ・エンジン20
に供給される。殆どの伝統的なジェネレータ・エンジン
は、それに組み込まれたすべての潜在的なターゲット言
語に対する3GLソース・コード・ステートメントを含
んでいる。第4世代言語仕様のステートメントは、ジェ
ネレータ・エンジン20における対応する3GLソース
・コード・ステートメントと比べられる。4GLのシン
タックスは3GLステートメントのセットに保持され、
その結果の3GLソース・コード・ステートメントのセ
ットが出力される。出力された3GLソース・コード・
ステートメントは、ジェネレータ・ツール10の複雑さ
及びユーザから入力された4GLの完全性に従って、完
全なプログラム、プログラムの一部分、又はプログラム
のシェルより成るものでよい。
【0020】そのようなシステムに関連する問題点及び
制限については前述した。本発明は、図2乃至図7を参
照して後述するように、ソース・コード生成システムを
通してオブジェクト指向テクノロジを利用することによ
りそれら問題点を解決し、それら制限を回避する。
【0021】本発明は、何れの種々の既知のコンピュー
タ環境においても遂行可能である。図2は、本発明を実
施し得る代表的なハードウエア環境を示す。その環境は
プロセッサ30を含み、そのプロセッサはワークステー
ション又はパーソナル・コンピュータ等のマイクロプロ
セッサでよい。バス32は、既知の技法に従ってプロセ
ッサ30とユーザ・ステーションのコンポーネントとを
接続し且つそれらの間のコミュニケーションを可能にす
るために使用される。そのユーザ・ステーションは、典
型的には、ユーザ・インターフェース・アダプタ34を
含む。そのアダプタは、プロセッサ30を、バス32を
介して、キーボード36、マウス38、又は他の任意の
ユーザ・インターフェース装置40のような1つ又は複
数個のインターフェース装置に接続する。それらインタ
ーフェース装置40は、接触感応型スクリーン、ディジ
タル化ペン・エントリ・パッド等のような任意のユーザ
・インターフェース装置でよい。又、バス32は、LC
Dスクリーン又はCRTのようなディスプレイ装置42
を、ディスプレイ・アダプタ44を介してプロセッサ3
0に接続する。更に、バス32はプロセッサ30を、R
OM、RAM等を含み得るメモリ46に接続する。図2
の上記環境は独立型ワークステーションであってもよ
く、或いはクライアント・サーバ環境にあるものでもよ
い。
【0022】図3は本発明の実施例のブロック図を示
す。本発明によるソース・コード・ジェネレータは、ユ
ーザが所望のプログラム機能又はプログラム或いはアプ
リケーション全体を指定するオブジェクト指向言語を使
用することが望ましい。好適な実施例では、そのオブジ
ェクト指向言語はスモールトーク(Smalltal
k)である。スモールトーク言語作成環境は、多数の種
々のベンダから商業的に入手可能である。ツール50
は、図2に関連して説明したタイプのコンピュータ環境
のメモリ46に常駐可能である。ユーザは、キーボード
52、マウス54、又は他のユーザ・インターフェース
装置56のような既知の入力手段を利用してオブジェク
ト指向ユーザ・インターフェース60と対話する。その
ユーザ・インターフェース60は、典型的には、ディス
プレイ装置42(図2)でもってユーザにユーザに与え
られる。オブジェクト指向ユーザ・インターフェースは
公知であり、オブジェクト指向言語で書かれたアプリケ
ーション或いはプログラムに対して一般に使用され、オ
ブジェクト指向言語作成環境でもって使用される。ユー
ザは、所望の機能を表す方法でオブジェクトを選択及び
結合するために、インターフェース装置52、54、5
6のうちの1つ又は複数個を介してオブジェクト指向ユ
ーザ・インターフェース60を操作する。
【0023】オブジェクト指向ユーザ・インターフェー
ス60は、全体的にはグラフィック的なものでよい。こ
の状況において、ユーザは、基礎となるオブジェクト指
向言語の如何なる詳細についても知る必要がなく、グラ
フィカル・ユーザ・インターフェースである4GLソー
ス・コード・ジェネレータ・ツールのユーザ・インター
フェースを操作するのと殆ど同様にインターフェース6
0を操作する。その相異は、ユーザにとって簡単に理解
されるものであろう。技術的な相異は、ユーザが一連の
4GLプロシージャ的なコマンドを指定しようとせず
に、オブジェクト指向ユーザ・インターフェース60を
通して利用可能なオブジェクト指向クラスのインスタン
スを定義しようとすることである。クラスの各定義され
たインスタンスはオブジェクトとして知られている。ユ
ーザが定義するオブジェクトのセットはオブジェクト指
向プログラムである。
【0024】オブジェクト指向ユーザ・インターフェー
ス60の別の実施方法では、ユーザは、所望のプログラ
ミング機能を指定するために、基礎となるオブジェクト
指向言語のメソッド又はクラスを直接に操作することを
要求されることがある。この場合、ユーザはオブジェク
ト指向言語で実際にプログラムしている。勿論、これは
そのオブジェクト指向言語についての更に詳細な知識を
必要とする。別の方法として、オブジェクト指向ユーザ
・インターフェース60は、グラフィカル・インターフ
ェースとプログラミング・インターフェースとの結合で
あってもよい。どちらの場合であっても、これらはすべ
てよく知られている。というのは、所与のインターフェ
ースを使用してオブジェクト指向プログラム又はアプリ
ケーションを作成することがオブジェクト指向言語のユ
ーザにはよく知られているためである。それは、まさ
に、ユーザが本発明のオブジェクト指向ユーザ・インタ
ーフェース60でもって行っていることである。
【0025】オブジェクト指向ユーザ・インターフェー
ス60を通して、ユーザは、所望のプログラミング機能
のオブジェクト指向モデルとしてツール50によって利
用されるオブジェクト指向プログラムを作成する。オブ
ジェクト指向モデルは、適当なオブジェクト指向実行環
境によって実行可能である。好適な実施例では、基礎と
なるオブジェクト指向言語は「スモールトーク」であ
り、必要な実行環境は、典型的には、適当なスモールト
ーク仮想装置及びスモールトーク・イメージより成る。
これらは、オブジェクト相互間のメッセージの伝送を可
能にし、それらオブジェクトに含まれたメソッドによっ
て表される基本的な処理ルーチン及び機能を含み、それ
らの実行を可能にする。それらメソッドは、オブジェク
トに対するメッセージより成り、それらの最も基本的な
レベルにおいて、動的リンク・ライブラリの呼出し等の
ルーチンを実行させることによって実際の処理を行い、
基礎となるオペレーティング・システムとの適当なイン
ターフェース動作等を行う。オブジェクト指向モデルに
おけるスモールトーク・コードの実行はそのモデルをタ
ーゲット言語コードに変換する場合に必要となるので、
ジェネレータ・ツール50は、実行が生じるようにスモ
ールトーク仮想装置及びイメージの必要なエレメントを
含むことが望ましい。図3では、実行環境62はツール
50に含まれるものとして示される。
【0026】又、ジェネレータ・ツール50はオブジェ
クト指向ジェネレータ・エンジン64を含んでいる。ジ
ェネレータ・エンジン64は、それと関連したメモリ及
び1つ又は複数個のセットのターゲット言語特有のソー
ス・コード・テンプレートを有する。そのテンプレート
は、その関連したメモリ又はジェネレータ・エンジン6
4によってアクセス可能なメモリに記憶される。スモー
ルトーク・コードの実行を可能にするスモールトーク実
行環境62は、ジェネレータ・エンジン64そのものに
含まれるようにすることも可能であるけれども、ジェネ
レータ・エンジン64から分離しているものとして示さ
れる。
【0027】次に、オブジェクト指向モデルを3GLタ
ーゲット言語ソース・コードに変換する動作を、図4乃
至図7のフローチャートを付加的に参照して説明するこ
とにする。
【0028】図3には、3セットのソース・コード・テ
ンプレート66、68、70が示される。ジェネレータ
・ツール50を通して得られる各ターゲット言語に対し
て、1セットのソース・コード・テンプレートが与えら
れる。典型的には、ターゲット言語は、C又はコボルの
ような3GL言語であろう。ターゲット言語は他の4G
L又は他のオブジェクト指向言語であってもよい。しか
し、以下の説明は、ターゲット言語が3GLであるとい
う状況に関するものである。このアークテクチャは、ソ
ース・コード・ジェネレータ・ツール50を完全に拡張
可能にさせ、実用的には、追加のターゲット言語を表す
任意の数の追加のセットのソース・コード・テンプレー
トがパフォーマンスに関しては最小の影響でもって比較
的容易に追加可能である。テンプレートの各セットにお
ける各ソース・コード・テンプレートは、ターゲット言
語における予約されたキーワードに対応する。各キーワ
ードは基本的プログラム・データ又はプログラム・ロジ
ックに対応する。各ターゲット言語は種々の数のベース
・データ及びロジック・タイプを含むので、ソース・コ
ード・テンプレートの各セットは、典型的には、種々な
数のテンプレートを含むであろう。
【0029】大事なこととして、オブジェクト指向モデ
ルにおける殆どのオブジェクトは、ソース・コード・テ
ンプレートによって表されるようなベース・データ又は
ロジック・タイプに直接に一致するプリミティブ・オブ
ジェクトではないであろう。むしろ、そのモデルにおけ
る殆どのオブジェクトは、他のオブジェクトより成る抽
象的な或いは比較的高いレベルのオブジェクトであろ
う。従って、各オブジェクトがターゲット言語に関する
プリミティブ・オブジェクトであるかどうかについての
決定が各オブジェクトに関して行われるであろう。オブ
ジェクトがプリミティブ・オブジェクトでない場合、そ
れらテンプレートへの必要なマッピングを達成するため
には、そのオブジェクトを構成するプリミティブ・オブ
ジェクトが推測されなければならない。プリミティブ・
レベルに達するために、各非プリミティブ・オブジェク
トは、包含オブジェクトを浮上させるようにそれのスト
ラクチャを生成するよう求められるであろう。その包含
オブジェクトは、プリミティブ・オブジェクト及び非プ
リミティブ・オブジェクトの両方のオブジェクトでよ
い。各非プリミティブ・オブジェクトはそれ自身を再帰
的に生成するよう求められるであろう。このプロセス
は、オリジナル・オブジェクトをそのモデルから構成す
るプリミティブ・オブジェクトがすべて到達するまで継
続するであろう。オブジェクトが種々の他のオブジェク
ト及び再帰的生成のプロセスを含み得るという概念又は
それらから実際に構成可能であるという概念は、共に、
オブジェクト指向テクノロジにおいて知られている。
【0030】典型的には、先ず、オブジェクト指向モデ
ルからのデータ・ストラクチャがすべてそれらのソース
・コード・テンプレートにマップされ、続いて、ロジッ
ク・ストラクチャのすべてがソース・コード・テンプレ
ートにマップされる。プリミティブ構成をソース・コー
ド・テンプレートにマッピングする実施態様を、図4及
び図5のフローチャートを詳細に参照して説明する。
【0031】次に、図4及び図5を参照して、本発明の
主要な処理を説明することにする。ステップ100にお
いて、前述のように、ユーザは、オブジェクト指向ユー
ザ・インターフェース60を利用して所望のプログラム
又はプログラム機能のオブジェクト指向仕様又はモデル
を作成する。又、ユーザは、そのユーザ・インターフェ
ース60を通してターゲット言語を指定する(ステップ
102)。そこで、オブジェクト指向モデルは、ジェネ
レータ・エンジン64により処理するために、そのジェ
ネレータ・エンジンと関連するメモリに供給される(ス
テップ104)。
【0032】そこで、ソース・コード・テンプレートに
マップされるべきモデルからの第1データ・オブジェク
トが選択され、又は決定される(ステップ106)。オ
ブジェクトがマッピングのために選択される順序はクリ
ティカルではない。それは、前述のように、そのモデル
に関するオブジェクト指向コードの実行によって、相互
関係が解析プロセスに維持されるためである。ジェネレ
ータ・エンジン64は、その選択されたデータ・オブジ
ェクトがターゲット言語に関して非プリミティブ・オブ
ジェクトであるかどうかを決定する(ステップ10
8)。オブジェクトの名前がターゲット言語に対するソ
ース・コード・テンプレートのセットにおいて一致した
カウンタパートを有するかどうかを決定することによっ
て、これは達成可能である。オブジェクトがプリミティ
ブ・オブジェクトであることがステップ108において
決定される場合、ステップ110において、そのオブジ
ェクトは、それの対応するソース・コード・テンプレー
トにマップされる。
【0033】オブジェクトがプリミティブ・オブジェク
トでないことがステップ108において決定される場
合、ジェネレータ・エンジン64は、オブジェクトにそ
れ自身を再帰的に生成させて包含オブジェクトを生成す
る(ステップ112)。包含オブジェクトが選択され、
その包含オブジェクトがプリミティブ・オブジェクトで
あるかどうかがステップ114において決定される。そ
の包含オブジェクトがプリミティブ・オブジェクトでな
いと決定された場合、処理はステップ112に戻り、オ
ブジェクトはそれ自身を再帰的に生成する。各プリミテ
ィブ・オブジェクトに到達する時、そのオブジェクトに
対する処理はステップ110に進み、プリミティブ・デ
ータ・オブジェクトがそれの対応するソース・コード・
テンプレートにマップされる。そこで、次の包含オブジ
ェクトがあれば、その包含オブジェクトのために、処理
はステップ108に進む。ステップ108、110、1
12、及び114は、オブジェクト・モデルからのオリ
ジナル・オブジェクトを構成するプリミティブ・オブジ
ェクトがすべて到達するまで繰り返される。
【0034】そのモデルからのオブジェクトが完全にマ
ップされてしまった後、処理ルーチンは、処理されるべ
きオブジェクト指向モデルからの次のデータ・オブジェ
クトのためにステップ108に戻る(ステップ116、
118)。そのモデルからのデータ・オブジェクトがす
べてマップされてしまったことがステップ116におい
て決定される時、マッピングのためにそのモデルからの
第1ロジック・オブジェクトが選択され、或いは決定さ
れる(ステップ120)。そこで、ステップ122にお
いて、その選択されたロジック・オブジェクトがターゲ
ット言語に関する非プリミティブ・オブジェクトである
かどうかが決定される。そのオブジェクトがプリミティ
ブ・オブジェクトである場合、それはそれの対応するテ
ンプレートにマップされる(ステップ128)。そのオ
ブジェクトが非プリミティブ・オブジェクトである場
合、そのオブジェクトはそれのストラクチャを再帰的に
生成する(ステップ124)。そこで、ステップ126
において、その生成されたオブジェクト或いは包含オブ
ジェクトの第1のものがプリミティブ・オブジェクトで
あるかどうか決定される。各プリミティブ・オブジェク
トに対して、処理はマッピングのためにステップ128
に進み、しかる後、次の包含オブジェクトがある場合、
その包含オブジェクトのための処理がステップ122に
進む。
【0035】ステップ122、124、126、及び1
28は、更なる非プリミティブ・オブジェクトが見つか
らなくなるまで、各包含オブジェクトに対して繰り返さ
れる。ステップ128において、オリジナル・ロジック
・オブジェクトからの最後のプリミティブ・オブジェク
トがそれの対応するソース・コード・テンプレートにマ
ップされてしまった後、そのモデルからの何らかの更な
るロジック・オブジェクトがあるかどうかが決定される
(ステップ130)。オブジェクト指向モデルからのマ
ップするための少なくとも1つの更なるロジック・オブ
ジェクトが存在する場合、次のオブジェクトが選択又は
決定され、そしてステップ122乃至128に関して説
明した処理が次のオブジェクトに対して繰り返される。
マッピングを必要とするそのオブジェクト指向モデルか
らの更なるロジック・オブジェクトが存在しないことが
ステップ130において最終的に決定された時、マップ
されたソース・コード・テンプレートがそれの解析アル
ゴリズムに従ってジェネレータ・エンジン64により解
析され(ステップ134)、その結果生じたソース・コ
ードが出力される(ステップ136)。その解析プロセ
スについては、図6及び図7に関連して更に詳細に説明
することにする。
【0036】殆どの場合、各ソース・コード・テンプレ
ートは2つのコンポーネントより成るであろう。その第
1のコンポーネントは実際のターゲット言語ソース・コ
ード・フラグメントであり、第2のコンポーネントは、
好適な実施例では、解析プロセス中に実行するスモール
トーク・コードを含むジェネレータ・ディレクティブで
ある。そのジェネレータ・ディレクティブにおけるスモ
ールトーク・コードは、それが実行される時、ジェネレ
ータ・エンジン64に適当なターゲット言語ストリング
を与えて、ソース・コード・テンプレートにより供給さ
れるターゲット言語ソース・コード・フラグメントを完
成する。各ジェネレータ・ディレクティブは2つの部分
から構成される。第1の部分はオブジェクト識別子であ
り、第2の部分はメッセージ識別子である。オブジェク
ト識別子は、オブジェクト指向モデルからのどのオブジ
ェクトがメッセージ識別子により表されたメッセージを
受け取るべきかを識別する。解析動作中、そのメッセー
ジは、オブジェクト指向実行環境62を利用してその識
別されたオブジェクトに送られ、戻り値がその識別され
たオブジェクトから戻されるであろう。その戻り値は、
追加のソース・コード・フラグメントであるが、一般に
は、変数名、エントリ・ポイント名等のような変数部分
である。ジェネレータ・アルゴリズムは、ソース・コー
ド・テンプレートからのソース・コード・フラグメント
にその戻り値を付加する。オブジェクト指向モデルにお
けるオブジェクトは、この方法で、ソース・コード生成
プロセスに参加する。例えば、「移動ステートメント」
オブジェクトは、それのソース及びターゲット・オペラ
ンドを種々のターゲット言語で参照するために、その方
法を表すソース・コード・フラグメントで応答する。
【0037】前述のように、ジェネレータ・エンジン3
6による各マップされたソース・コード・テンプレート
の処理の結果、実際のターゲット言語ソース・コードの
ストリングが生じる。ツール50を使用して作成された
典型的なプログラムは大量のそのようなストリングを含
むであろう。次のものは、「数値データ項目オブジェク
ト」として知られ且つ「IdNumber」と呼ばれる
データ指向オブジェクトに対するC言語における宣言ソ
ース・コード・テンプレートの一例であり、そのデータ
指向オブジェクトは、4GL仕様で数値データ・エンテ
ィティを表す。即ち、 int <self VarName>;
【0038】このソース・コード・テンプレートのソー
ス・コード・フラグメント部分はストリング「int
」及び「;」より成り、一方、ジェネレータ・ディレ
クティブは「<self VarName>」より成る
部分である。その「<」及び「>」記号は、ジェネレー
タ・ディレクティブの開始及び終了を表す任意の視線誘
導標である。ジェネレータ・ディレクティブにおけるオ
ブジェクト識別子はトークン「self」であり、それ
は、変数宣言、即ち、「IdNumber」としてそれ
自身を生成するように求められるオブジェクトのことで
ある。メッセージ識別子はトークン「varName」
であり、それは、オブジェクト「self」に送られる
メッセージになるであろう。このメッセージは、変数宣
言において使用される時、それ自身を表すストリングを
戻すようにオブジェクト「self」に命じる。この例
では、「IdNumber」という名前を持った「数値
データ項目オブジェクト」がストリング「IdNumb
er」を戻すであろう。その結果生じるターゲット言語
ソース・コード・フラグメントは「int idNum
ber」であり、それはC言語ソース・コード・フラグ
メントである。
【0039】このオブジェクトが、その名前だけでなく
何らかのストリングで応答可能であることは注目すべき
である。これは、例えば、それの名前がターゲット言語
における変数名に対する許容可能な長さよりも長い場合
に必要となる。
【0040】要するに、ソース・コード・テンプレート
・パーザは、オブジェクト指向モデルに抗して言語に特
有のソース・コード・テンプレートを処理し、ジェネレ
ータ・ディレクティブにおけるスモールトーク・コード
を実行させ、そして完成したソース・コード・ストリン
グをターゲット言語で生じさせる。次に、図6及び図7
のフローチャートを参照して、ソース・コード・テンプ
レートの実際の解析を説明することにする。
【0041】ステップ200において、ソース・コード
・テンプレートの1つがパーザに入力される。ステップ
202において、そのソース・コード・テンプレートの
ソース・コード・フラグメント部分がキャッシュ・メモ
リに出力される。即ち、ソース・コード・フラグメント
の終了及びジェネレータ・ディレクティブの開始を表す
「<」記号に到達するまで、又はソース・コード・テン
プレートの終了に到達するまで、ソース・コード・テン
プレートの内容がキャッシュに書き込まれる。後者は、
ソース・コード・フラグメントが処理済みのジェネレー
タ・ディレクティブに後続し且つ追加のソース・コード
・ディレクティブがそのソース・コード・テンプレート
に含まれる時、或いはソース・コード・テンプレートが
ジェネレータ・ディレクティブを含まない時、複雑なソ
ース・コード・テンプレートにおいて生じるであろう。
ソース・コード・テンプレートの終わりに到達したこと
が分かった場合(ステップ204)、処理は後述のステ
ップ216に進む。
【0042】「<」記号に到達した時に生じるジェネレ
ータ・ディレクティブの到達が決定された場合(ステッ
プ206)、その「<」記号は廃棄され、ジェネレータ
・アルゴリズムは、そのジェネレータ・ディレクティブ
を構成する後続のオブジェクト識別子及びメッセージ識
別子を読み取る。それら識別子より成るスモールトーク
は実行環境62によって実行される。メッセージ識別子
は、オブジェクト識別子によって識別されたオブジェク
ト指向モデルにおけるオブジェクトにメッセージとして
送られる(ステップ210)。そこでそのメッセージを
送ることに応答して戻されるテキスト又はストリングの
値がキャッシュに出力される。キャッシュでは、戻り値
がそのテンプレートのソース・コード・フラグメント部
分と結合されてキャッシュにおけるターゲット言語ソー
ス・コード・ストリングを拡張する(ステップ21
2)。そこで「>」記号が廃棄され、解析される個々の
ソース・コード・テンプレートが完全に解析されてしま
ったかどうかに関する決定が行われる(ステップ21
4)。それが否定される場合、解析プロセスはステップ
202に戻り、そのソース・コード・テンプレートが完
全に解析されるまで継続する。ソース・コード・テンプ
レートが完全に解析されてしまった場合、解析プロセス
はステップ216に進む。
【0043】マップされたソース・コード・テンプレー
トが解析されるべき最後のソース・コード・テンプレー
トであることがステップ216において決定される場
合、解析プロセスは終了する。そうでない場合、解析の
ための次のソース・コード・テンプレートが決定され
(ステップ218)、解析のためにパーザに入力される
(ステップ200)。
【0044】解析プロセスはオブジェクト指向テクノロ
ジの強さを利用して、4GLにおいて最初に入力された
所望のプログラミングの種々のコンポーネントの相互関
係を維持する。その相互関係はオブジェクト指向モデル
において維持され、スモールトーク・コードの実行によ
ってターゲット言語コードに送られる。それは、ソース
・コード・テンプレートからのソース・コード・フラグ
メントと結合されるストリングを与える。
【0045】キャッシュ・メモリは、それが満杯か或い
はオーバフローの危険がある状態かどうかを定期的にチ
ェックされる(ステップ220)。どちらかの状態が検
出される時、そのキャッシュ・メモリの内容が所望のプ
ログラムに対するソース・コード・ファイルにターゲッ
ト言語で送り込まれる(ステップ222)。更に、キャ
ッシュ・メモリの内容は、最後のソース・コード・テン
プレートの解析に続いてソース・コード・ファイルに出
力されるであろう。
【0046】キャッシュ・メモリから出力されたソース
・コード・ファイルの集積体は、必要に応じて更なる処
理を行う準備ができ、典型的には、ジェネレータ・エン
ジン64(又は、関連のメモリ)からソース・コード・
ファイルの形で出力される(図5のステップ136)。
第3世代の言語のソース・コードは、典型的には、実行
のためにそれを備えさせるためには、コンパイルを必要
とするであろう。コンパイラは、出力ソース・コードが
自動的に生じるようジェネレータ・ツール50に包含可
能である。更に、他のコード作成ステップがジェネレー
タ・ツール50に包含可能である。例えば、ツール50
は、コードをデバッグするためのデバッガを含むことが
可能である。しかし、コンパイラ及びデバッガのような
エレメントは、実行可能なコードを作成するための既知
のコンポーネントであり、本発明に対するオペレーショ
ンにとって決定的なものではない。
【0047】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0048】(1)コンピュータ環境において、オブジ
ェクト指向プログラム仕様をターゲット言語に対するソ
ース・コードに変換するためのシステムにして、各々が
ターゲット言語における異なる構成に対応し且つコード
のフラグメントを含む一組のコード・テンプレートと、
前記オブジェクト指向プログラム仕様における各オブジ
ェクトが前記構成の1つに対応するかどうかを決定し、
それが対応しない場合には非対応オブジェクトを再帰的
に生成して包含オブジェクトを生成し、必要に応じて前
記包含オブジェクトを再帰的に生成して前記非対応オブ
ジェクトを含み且つ前記構成の1つに対応するオブジェ
クトを見つけるための手段と、前記対応するオブジェク
トの各々を前記コード・テンプレートにマップするため
の手段と、前記マップされたコード・テンプレートを解
析してソース・コードをターゲット言語で生じさせるた
めの解析手段と、を含むシステム。 (2)オブジェクト指向コードの実行を可能にするため
のオブジェクト指向実行環境を含み、前記コード・テン
プレートの各々は前記ターゲット言語からのオブジェク
ト指向コードとソース・コードのフラグメントとを含む
こと、及び前記解析手段は前記マップされたコード・テ
ンプレートの各々におけるオブジェクト指向コードを、
前記オブジェクト指向プログラム仕様に関する前記オブ
ジェクト指向実行環境でもって実行させて追加のソース
・コード・フラグメントを生成し、該追加のソース・コ
ード・フラグメントを前記ソース・コードのフラグメン
トと結合すること、を特徴とする上記(1)に記載のシ
ステム。 (3)複数個のターゲット言語がターゲット設定のため
に使用可能であること、及び一組のコード・テンプレー
トがターゲット言語の各々に与えられることを特徴とす
る上記(1)に記載のシステム。 (4)ターゲット言語を指定するための手段を含み、前
記マップするための手段は前記対応するオブジェクトの
各々を、前記一組のコード・テンプレートから、前記指
定されたターゲット言語に対応するコード・テンプレー
トのうちの対応する1つにマップすることを特徴とする
上記(3)に記載のシステム。 (5)前記構成はターゲット言語のベース・ロジック及
びデータ・コンポーネントであることを特徴とする上記
(1)に記載のシステム。 (6)オブジェクト指向プログラムをターゲット言語に
対するコードに変換するためのシステムにして、各使用
可能なターゲット言語に対応する一組のコード・テンプ
レートであって、該コード・テンプレートの各々は対応
するターゲット言語及びオブジェクト指向コードにおけ
るコード・フラグメントを含み、該コード・テンプレー
トの各々は対応するターゲット言語における異なる構成
に対応するコード・テンプレートと、前記オブジェクト
指向コードを実行することができるオブジェクト指向実
行環境と、ターゲット言語に対するコード・テンプレー
トに対応するすべての基礎となるオブジェクトを見つけ
るために、オブジェクト指向プログラムにおいて各オブ
ジェクトを再帰的に生成するための手段と、基礎となる
オブジェクトの各々をターゲット言語に対する対応する
コード・テンプレートにマップするための手段と、前記
マップされたコード・テンプレートを解析してターゲッ
ト言語でコードを生成するための解析手段と、を含むシ
ステム。 (7)前記解析手段はコード・フラグメントを各マップ
されたコード・テンプレートから取り出し、各マップさ
れたコード・テンプレートにおいてオブジェクト指向コ
ードを実行して追加のコード・フラグメントを生じさ
せ、該追加のコード・フラグメント及び前記コードフラ
グメントを結合し、該結合したコードを出力することを
特徴とする上記(6)に記載のシステム。 (8)前記構成の各々は対応するターゲット言語におけ
るロジック・キーワード又はデータ・キーワードに対応
することを特徴とする上記(6)に記載のシステム。 (9)前記オブジェクト指向プログラムが変換されるタ
ーゲット言語を指定するための手段を含むことを特徴と
する上記(6)に記載のシステム。 (10)オブジェクト指向プログラムをターゲット言語
に変換するための方法にして、前記ターゲット言語に対
する対応するソース・コード・テンプレートを有するす
べてのプリミティブ・オブジェクトを識別するために、
必要に応じて、前記オブジェクト指向プログラムからオ
ブジェクトを再帰的に生成するステップと、前記プリミ
ティブ・オブジェクトの各々を前記対応するソース・コ
ード・テンプレートにマップするステップと、ソース・
コードをターゲット言語で生成するために前記マップさ
れたソース・コード・テンプレートを解析するステップ
と、を含む方法。 (11)前記ソース・コード・テンプレートはターゲッ
ト言語ソース・コード部分及びオブジェクト指向コード
部分を含むこと、及び前記解析するステップは前記ソー
ス・コード・テンプレートの各々のオブジェクト指向コ
ード部分を実行させ、前記オブジェクト指向コード部分
の実行に対するすべての応答を前記ターゲット言語ソー
ス・コード部分と結合し、前記結合された応答及びソー
ス・コード部分を出力すること、を特徴とする上記(1
0)に記載の方法。 (12)前記オブジェクト指向プログラムが変換される
ターゲット言語を指定するステップを含み、複数個のタ
ーゲット言語が使用可能であること、及び一組のソース
・コード・テンプレートが前記ターゲット言語の各々と
関連すること、を特徴とする上記(10)に記載の方
法。
【0049】
【発明の効果】本発明によれば、オブジェクト指向モデ
ルは、必要に応じて各オブジェクトを再帰的に生成する
ジェネレータ・エンジンによって処理され、そのモデル
に含まれるターゲット言語に関するプリミティブ・オブ
ジェクトを表面化させる。各プリミティブ・オブジェク
トは、典型的には第3世代言語である所望のターゲット
言語に対応した一組ソース・コード・テンプレートから
それの対応するテンプレートにマップされる。オブジェ
クト指向ジェネレータ・エンジンはその結果のテンプレ
ート集積体を解析して、所望のターゲット言語で所望の
プログラミング機能を有するソース・コード・ファイル
を形成する。従って、最小のプログラマ介入しか必要と
せずに所望の機能を得ることができるソース・コードフ
ァイルを生成するためのシステムが得られる。即ち、本
発明によって、従来のソース・コード・ジェネレータよ
りも完全且つ正確に所望の機能に適合したソース・コー
ド・ファイルを作ることが可能になる。
【図面の簡単な説明】
【図1】従来技術のソース・コード生成システムのブロ
ック図である。
【図2】本発明が実施可能な代表的なコンピュータ・ハ
ードウエア環境を示す。
【図3】本発明に従ってオブジェクト指向ユーザ・イン
ターフェース及びオブジェクト指向ジェネレータ・エン
ジンを利用するソース・コード生成システムのブロック
図である。
【図4】本発明に従って図3のソース・コード生成シス
テムによりオブジェクト指向仕様を処理し、所望のター
ゲット言語に変換する方法を示すフローチャートの一部
分である。
【図5】本発明に従って図3のソース・コード生成シス
テムによりオブジェクト指向仕様を処理し、所望のター
ゲット言語に変換する方法を示すフローチャートの一部
分である。
【図6】マップされたソース・コード・テンプレートを
解析するために使用される技法を示すフローチャートで
ある。
【図7】マップされたソース・コード・テンプレートを
解析するために使用される技法を示すフローチャートで
ある。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ環境において、オブジェクト
    指向プログラム仕様をターゲット言語に対するソース・
    コードに変換するためのシステムにして、 各々がターゲット言語における異なる構成に対応し且つ
    コードのフラグメントを含む一組のコード・テンプレー
    トと、 前記オブジェクト指向プログラム仕様における各オブジ
    ェクトが前記構成の1つに対応するかどうかを決定し、
    それが対応しない場合には非対応オブジェクトを再帰的
    に生成して包含オブジェクトを生成し、必要に応じて前
    記包含オブジェクトを再帰的に生成して前記非対応オブ
    ジェクトを含み且つ前記構成の1つに対応するオブジェ
    クトを見つけるための手段と、 前記対応するオブジェクトの各々を前記コード・テンプ
    レートにマップするための手段と、 前記マップされたコード・テンプレートを解析してソー
    ス・コードをターゲット言語で生じさせるための解析手
    段と、 を含むシステム。
  2. 【請求項2】オブジェクト指向コードの実行を可能にす
    るためのオブジェクト指向実行環境を含み、 前記コード・テンプレートの各々は前記ターゲット言語
    からのオブジェクト指向コードとソース・コードのフラ
    グメントとを含むこと、及び前記解析手段は前記マップ
    されたコード・テンプレートの各々におけるオブジェク
    ト指向コードを、前記オブジェクト指向プログラム仕様
    に関する前記オブジェクト指向実行環境でもって実行さ
    せて追加のソース・コード・フラグメントを生成し、該
    追加のソース・コード・フラグメントを前記ソース・コ
    ードのフラグメントと結合すること、 を特徴とする請求項1に記載のシステム。
  3. 【請求項3】複数個のターゲット言語がターゲット設定
    のために使用可能であること、及び一組のコード・テン
    プレートがターゲット言語の各々に与えられることを特
    徴とする請求項1に記載のシステム。
  4. 【請求項4】ターゲット言語を指定するための手段を含
    み、 前記マップするための手段は前記対応するオブジェクト
    の各々を、前記一組のコード・テンプレートから、前記
    指定されたターゲット言語に対応するコード・テンプレ
    ートのうちの対応する1つにマップすることを特徴とす
    る請求項3に記載のシステム。
  5. 【請求項5】前記構成はターゲット言語のベース・ロジ
    ック及びデータ・コンポーネントであることを特徴とす
    る請求項1に記載のシステム。
  6. 【請求項6】オブジェクト指向プログラムをターゲット
    言語に対するコードに変換するためのシステムにして、 各使用可能なターゲット言語に対応する一組のコード・
    テンプレートであって、該コード・テンプレートの各々
    は対応するターゲット言語及びオブジェクト指向コード
    におけるコード・フラグメントを含み、該コード・テン
    プレートの各々は対応するターゲット言語における異な
    る構成に対応するコード・テンプレートと、 前記オブジェクト指向コードを実行することができるオ
    ブジェクト指向実行環境と、 ターゲット言語に対するコード・テンプレートに対応す
    るすべての基礎となるオブジェクトを見つけるために、
    オブジェクト指向プログラムにおいて各オブジェクトを
    再帰的に生成するための手段と、 基礎となるオブジェクトの各々をターゲット言語に対す
    る対応するコード・テンプレートにマップするための手
    段と、 前記マップされたコード・テンプレートを解析してター
    ゲット言語でコードを生成するための解析手段と、 を含むシステム。
  7. 【請求項7】前記解析手段はコード・フラグメントを各
    マップされたコード・テンプレートから取り出し、各マ
    ップされたコード・テンプレートにおいてオブジェクト
    指向コードを実行して追加のコード・フラグメントを生
    じさせ、該追加のコード・フラグメント及び前記コード
    フラグメントを結合し、該結合したコードを出力するこ
    とを特徴とする請求項6に記載のシステム。
  8. 【請求項8】前記構成の各々は対応するターゲット言語
    におけるロジック・キーワード又はデータ・キーワード
    に対応することを特徴とする請求項6に記載のシステ
    ム。
  9. 【請求項9】前記オブジェクト指向プログラムが変換さ
    れるターゲット言語を指定するための手段を含むことを
    特徴とする請求項6に記載のシステム。
  10. 【請求項10】オブジェクト指向プログラムをターゲッ
    ト言語に変換するための方法にして、 前記ターゲット言語に対する対応するソース・コード・
    テンプレートを有するすべてのプリミティブ・オブジェ
    クトを識別するために、必要に応じて、前記オブジェク
    ト指向プログラムからオブジェクトを再帰的に生成する
    ステップと、 前記プリミティブ・オブジェクトの各々を前記対応する
    ソース・コード・テンプレートにマップするステップ
    と、 ソース・コードをターゲット言語で生成するために前記
    マップされたソース・コード・テンプレートを解析する
    ステップと、 を含む方法。
  11. 【請求項11】前記ソース・コード・テンプレートはタ
    ーゲット言語ソース・コード部分及びオブジェクト指向
    コード部分を含むこと、及び前記解析するステップは前
    記ソース・コード・テンプレートの各々のオブジェクト
    指向コード部分を実行させ、前記オブジェクト指向コー
    ド部分の実行に対するすべての応答を前記ターゲット言
    語ソース・コード部分と結合し、前記結合された応答及
    びソース・コード部分を出力すること、 を特徴とする請求項10に記載の方法。
  12. 【請求項12】前記オブジェクト指向プログラムが変換
    されるターゲット言語を指定するステップを含み、 複数個のターゲット言語が使用可能であること、及び一
    組のソース・コード・テンプレートが前記ターゲット言
    語の各々と関連すること、 を特徴とする請求項10に記載の方法。
JP7245688A 1994-09-30 1995-09-25 ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 Pending JPH08202545A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/316,174 US5675801A (en) 1994-09-30 1994-09-30 Object oriented system and method for generating target language code
US316174 1999-05-21

Publications (1)

Publication Number Publication Date
JPH08202545A true JPH08202545A (ja) 1996-08-09

Family

ID=23227836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7245688A Pending JPH08202545A (ja) 1994-09-30 1995-09-25 ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法

Country Status (2)

Country Link
US (1) US5675801A (ja)
JP (1) JPH08202545A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067288A (ja) * 2012-09-26 2014-04-17 Toshiba Corp プログラムと設計書の生成装置及びプログラム

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996041258A1 (en) * 1995-06-07 1996-12-19 International Business Machines Corporation Methodology for generating object structures for accessing conventional, non-object-oriented business applications
US6305011B1 (en) * 1996-01-16 2001-10-16 Sun Microsystems, Inc. Tip technology and its application to sparcompiler pascal
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
US5819281A (en) * 1996-02-26 1998-10-06 Electronic Data Systems Corporation Notification of aspect value change in object-oriented programming
US6041179A (en) * 1996-10-03 2000-03-21 International Business Machines Corporation Object oriented dispatch optimization
US5903756A (en) * 1996-10-11 1999-05-11 Sun Microsystems, Incorporated Variable lookahead parser generator
US6513154B1 (en) 1996-10-21 2003-01-28 John R. Porterfield System and method for testing of computer programs in programming effort
US5923878A (en) * 1996-11-13 1999-07-13 Sun Microsystems, Inc. System, method and apparatus of directly executing an architecture-independent binary program
US6141012A (en) * 1997-03-31 2000-10-31 Xerox Corporation Image processing code generation based on structured image (SI) techniques
US6230309B1 (en) * 1997-04-25 2001-05-08 Sterling Software, Inc Method and system for assembling and utilizing components in component object systems
US5943496A (en) * 1997-05-17 1999-08-24 Intertop Corporation Methods for developing and instantiating object classes using a java virtual machine extension
US6115550A (en) * 1997-06-11 2000-09-05 Digital Equipment Corporation Loader conditionally replacing a code sequence with a functionally-alike code sequence in an executable program intended for execution in different run-time environments
US6298389B1 (en) * 1997-06-20 2001-10-02 Compaq Computers, Inc. Method for input and output of structures for the Java language
JPH11126162A (ja) * 1997-10-22 1999-05-11 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
US6128622A (en) * 1997-11-26 2000-10-03 International Business Machines Corporation IMS web studio taskguide
US5978581A (en) * 1997-12-02 1999-11-02 Electronic Data Systems Corporation Object-oriented code generation system and method
US6237136B1 (en) * 1997-12-02 2001-05-22 National Instruments Corporation System and method for automatically creating source code example files for an application program in a plurality of programming languages
US6446047B1 (en) 1998-05-07 2002-09-03 Daniel L. Brier Municipal bond apparatus, product and method
US6742175B1 (en) 1998-10-13 2004-05-25 Codagen Technologies Corp. Component-based source code generator
AU3363400A (en) * 1999-02-11 2000-08-29 Pitney-Bowes Inc. Data parsing system for use in electronic commerce
US6850950B1 (en) 1999-02-11 2005-02-01 Pitney Bowes Inc. Method facilitating data stream parsing for use with electronic commerce
US6370683B1 (en) * 1999-05-07 2002-04-09 Arnold Sobers Computer software for generating flowchart images of a source program
EP1128263B1 (en) * 2000-02-21 2010-05-19 Panasonic Corporation Linking of Java class files for embedded devices
US6757571B1 (en) * 2000-06-13 2004-06-29 Microsoft Corporation System and process for bootstrap initialization of vision-based tracking systems
US7146347B1 (en) * 2000-08-03 2006-12-05 National Instruments Corporation System and method for automatically creating a prototype to perform a process
US20030070159A1 (en) * 2000-08-04 2003-04-10 Intrinsic Graphics, Inc. Object decription language
US20040015832A1 (en) * 2001-05-25 2004-01-22 Michael Stapp Method and apparatus for generating source code
SE0102648A0 (sv) * 2001-08-02 2003-03-06 Lars Höidahl Arrangemang att utföra objekt-orienterad programmering
US20030153998A1 (en) * 2002-02-13 2003-08-14 Micron Technology, Inc. Feature modeling application
US7325226B2 (en) * 2003-06-19 2008-01-29 Microsoft Corporation Modular object serialization architecture
US20050114832A1 (en) * 2003-11-24 2005-05-26 Microsoft Corporation Automatically generating program code from a functional model of software
US8713544B1 (en) * 2003-11-25 2014-04-29 Symantec Corporation Universal data-driven computer proxy
US20050132270A1 (en) * 2003-12-11 2005-06-16 International Business Machines Corporation Method, system, and computer program product for automatic code generation in an object oriented environment
AU2004319192B2 (en) * 2004-04-28 2008-07-31 Fujitsu Limited Source code generation support program and source code generation support method
US7519945B2 (en) * 2004-06-17 2009-04-14 International Business Machines Corporation System and method for supporting data driving a software process using objects of arbitrary data types
WO2006043012A1 (en) * 2004-10-22 2006-04-27 New Technology/Enterprise Limited Data processing system and method
US7707562B1 (en) * 2005-03-31 2010-04-27 Markus Kaltenbach Code translation verification
US7962888B2 (en) * 2006-04-11 2011-06-14 Rojer Alan S Producing unitary class definitions from module specifications
US8091069B2 (en) * 2006-04-11 2012-01-03 Rojer Alan S Module specification language and meta-module
US7934193B2 (en) * 2006-04-11 2011-04-26 Rojer Alan S Processing a module specification to produce a module definition
US8091071B2 (en) * 2006-08-21 2012-01-03 Sap, Ag Method and system for template-based code generation
US7890923B2 (en) * 2006-12-01 2011-02-15 International Business Machines Corporation Configurable pattern detection method and apparatus
US9489418B2 (en) 2007-04-27 2016-11-08 International Business Machines Corporation Processing database queries embedded in application source code from within integrated development environment tool
US8566793B2 (en) * 2007-04-27 2013-10-22 International Business Machines Corporation Detecting and displaying errors in database statements within integrated development environment tool
US9047337B2 (en) * 2007-04-27 2015-06-02 International Business Machines Corporation Database connectivity and database model integration within integrated development environment tool
US8392880B2 (en) * 2007-04-27 2013-03-05 International Business Machines Corporation Rapid application development for database-aware applications
US8375351B2 (en) * 2007-06-23 2013-02-12 International Business Machines Corporation Extensible rapid application development for disparate data sources
US8402449B1 (en) * 2008-01-10 2013-03-19 The Mathworks, Inc. Technique for automatically assigning placement for pipeline registers within code generated from a program specification
KR101537078B1 (ko) * 2008-11-05 2015-07-15 구글 인코포레이티드 사용자 정의 언어 모델들
US8631385B2 (en) * 2009-02-26 2014-01-14 International Business Machines Corporation Optimizing code generation system with input data integration
US9021435B2 (en) 2010-05-20 2015-04-28 Salesforce.Com, Inc. Methods and systems for providing a user interface in a multi-tenant database environment
US8484218B2 (en) * 2011-04-21 2013-07-09 Google Inc. Translating keywords from a source language to a target language
US8930919B2 (en) * 2012-09-25 2015-01-06 The Boeing Company Modernization of legacy software systems based on modeled dependencies
US9262464B2 (en) * 2013-04-24 2016-02-16 Piriform Ltd. Cleaner with browser monitoring
US10162605B2 (en) * 2016-07-20 2018-12-25 Microsoft Technology Licensing, Llc Code snippet content recommendation to define an object literal
US10565110B2 (en) 2016-08-02 2020-02-18 Microsoft Technology Licensing, Llc Reducing memory usage for long standing computations
US10459829B2 (en) * 2017-06-07 2019-10-29 M/S. Cigniti Technologies Limited Overall test tool migration pipeline
CN109976744B (zh) * 2017-12-26 2022-09-23 深圳市优必选科技有限公司 一种可视化编程方法、系统及终端设备
US12547379B2 (en) 2024-01-26 2026-02-10 Alex Schiffman Generating target language code from source language code

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
US5187788A (en) * 1989-05-01 1993-02-16 The United States Of America As Represented By The Secretary Of The Air Force Graphics system for automatic computer code generation
JPH0344764A (ja) * 1989-07-12 1991-02-26 Sharp Corp 機械翻訳装置
US5159687A (en) * 1989-11-14 1992-10-27 Caseworks, Inc. Method and apparatus for generating program code files
US5497319A (en) * 1990-12-31 1996-03-05 Trans-Link International Corp. Machine translation and telecommunications system
US5361350A (en) * 1991-12-12 1994-11-01 International Business Machines Corporation Object oriented method management system and software for managing class method names in a computer system
US5481708A (en) * 1992-06-05 1996-01-02 Borland International, Inc. System and methods for optimizing object-oriented compilations
JPH06103075A (ja) * 1992-07-06 1994-04-15 Internatl Business Mach Corp <Ibm> オブジェクト指向適用業務
US5339433A (en) * 1992-11-19 1994-08-16 Borland International, Inc. Symbol browsing in an object-oriented development system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067288A (ja) * 2012-09-26 2014-04-17 Toshiba Corp プログラムと設計書の生成装置及びプログラム

Also Published As

Publication number Publication date
US5675801A (en) 1997-10-07

Similar Documents

Publication Publication Date Title
US5675801A (en) Object oriented system and method for generating target language code
US6877155B1 (en) System and method for generating target language code utilizing an object oriented code generator
US20040158820A1 (en) System for generating an application framework and components
JP4822817B2 (ja) コンパイルシステム
EP2463771A1 (en) Method for translating a cobol source program into readable and maintainable program code in an object oriented second programming language
JPH0383153A (ja) メツセージ処理システム及び方法
JPWO2000045260A1 (ja) コンパイラ装置、コンパイル方法、およびそのためのプログラムを格納した記憶媒体
US5842205A (en) Method and process of inter-machine communication and generalized method for program preparation therefor
EP1025492B1 (en) Method for the generation of isa simulators and assemblers from a machine description
CN115543290B (zh) 可视化编程方法及系统
CN115062040B (zh) 一种可视化的基于sql语句的代码生成方法及系统
GB2420638A (en) Method of substituting code fragments in Internal Representation
EP0706125A1 (en) Object oriented system and method for generating target language code
JPH09330212A (ja) プログラミング言語処理システム
JP2002132502A (ja) 言語機能解釈による分散オブジェクト自動生成システム及び方法
Bird et al. A practical approach to software engineering by using an interaction handler and skeleton code generator
JP2003330731A (ja) プロジェクト管理ファイル生成装置
JPH03144832A (ja) プリコンパイラ言語プログラムのシンボリックデバッグ装置
Zalavadia Compiler Construction Tools
CN117873468A (zh) 一种基于规则引擎的代码生成系统及方法
CN118819537A (zh) 一种构建编译和部署caa自定义特征插件的方法及系统
Stelovsky et al. A system for specification and rapid prototyping of application command languages
HK40039414B (zh) 一种采用图形化的开发的方法、介质、设备和装置
Chalmers et al. SMEIL: A Domain-Specific Language for Synchronous Message Exchange Networks
JPH02253443A (ja) プログラム生成方法