JP3041222B2 - ソース・コード作成システム及び方法 - Google Patents

ソース・コード作成システム及び方法

Info

Publication number
JP3041222B2
JP3041222B2 JP7214348A JP21434895A JP3041222B2 JP 3041222 B2 JP3041222 B2 JP 3041222B2 JP 7214348 A JP7214348 A JP 7214348A JP 21434895 A JP21434895 A JP 21434895A JP 3041222 B2 JP3041222 B2 JP 3041222B2
Authority
JP
Japan
Prior art keywords
code
source code
oriented
template
target language
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.)
Expired - Fee Related
Application number
JP7214348A
Other languages
English (en)
Other versions
JPH08115209A (ja
Inventor
アンソニー・ヘイデン・リンドゼイ
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 JPH08115209A publication Critical patent/JPH08115209A/ja
Application granted granted Critical
Publication of JP3041222B2 publication Critical patent/JP3041222B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
コード作成器を用いて目的とする言語によるソース・コ
ードを作成するシステム及び方法を対象とする。特に、
本発明は、入力の第4の作成言語設計コードが、オブジ
ェクト指向的な設計へと修正された後、目的の言語のた
めのソース・コード・テンプレートに対してマッピング
され、目的の言語によるソース・コード・ファイルを生
成するべく作成器アルゴリズムによって処理されるよう
なシステム及び方法を対象とする。
【0002】
【従来の技術】今日のコンピュータ技術に対する一般的
な認識の1つに、コンピュータ・ハードウェアの発達に
比べてコンピュータ・ソフトウェアの発達が大きく遅れ
ているということがある。その原因としては、極めて多
数のコンピュータ言語が存在すること、1つの大まかに
完成したコンピュータ・プログラムを成熟させるために
必要なプログラミング技法の範囲が広いこと、様々な産
業において使用される様々なコンピュータ・プログラム
間の機能が多岐に亘っていること、及び、熟達したコン
ピュータ・プログラマが非常に不足していることが挙げ
られる。C、コボル(Cobol)、あるいはフォートラン(Fo
rtran)等の第3世代言語(third generation language:
3GL)により作業する場合に、大まかに完成したプロ
グラムを、必要な機能やグラフィカル・ユーザ・インタ
フェースを含めて構築するために必要とされる技法を一
人のプログラマが備えていることは極めて困難である。
このようなプログラムは、例えば、非常に重大な厳正さ
や工業的に強固な使用耐性を有していたり、又は銀行業
務や軍用等の重要な状況下で使用されるに十分な信頼性
を備えていたりするものである。
【0003】このような現状において、最近、より低い
技法レベルによりコンピュータ・プログラムを書けるよ
うにすることを試みた多くのシステムが開発されてき
た。そして、第4世代言語(forth generation languag
e:4GL)と称されるものが開発された。4GLにおい
ては、3GLに比べてシンタクスがより単純であり、プ
ログラマはより少ない命令文を特定しなければならな
い。よって、新しいユーザにとっては、学習曲線が低く
なる。しかしながら、このように比較的容易に使用でき
る代わりに、4GLで書かれたプログラムにより実行さ
れる実際の処理を制御する機能が低下した。プログラマ
が4GLで書くコードは、3GLで書くコードに比べて
より簡潔であるが、コンピュータのプロセッサにより実
行される実際のマシン命令からはかけ離れている。
【0004】4GLは、ソース・コード作成器として知
られるものを含めて、プログラミング・プロセスを簡単
にするための多数のツールへと組み込まれた。従来のソ
ース・コード作成器のツールは、ユーザが4GLで入力
する設計を受け取り、ソース・コード作成器エンジンを
利用してこの4GLの設計を処理する。ソース・コード
作成器エンジンは、入力された設計に対応する機能をも
つソース・コードを、特定の出力言語で出力する。この
出力は、通常、3GLである(が、実行中に実行時間エ
ンジンにより解釈される固有の言語であってもよい)。
ソース・コード作成器エンジンは、基本的に、ユーザが
入力した4GLのコード設計を、3GLの対応する所定
のソース・コードの断片(fragment)へマッピングす
る。ソース・コード作成器エンジンは、4GL設計コー
ドの各基本要素に対してこのマッピング機能を実行し、
そして所望の言語によるソース・ファイルを出力する。
【0005】このようなソース・コード作成器には、多
数の欠点がある。例えば、従来のシステムは拡張性に欠
けており、変更が困難である。所定の3GLの断片が作
成器エンジン全体に亘って広がっていることが、非常に
多い。3GLの断片に対して変更を行う場合には、この
作成器エンジンの知識が必要とされる。同様に、3GL
の断片を追加することにより作成器エンジンの性能を向
上させたり拡張したりしようとする場合、影響を受ける
作成器の機能及び影響を受ける3GLコード断片の場所
を見出してアドレス指定するという極めて複雑な問題が
生じがちである。その結果得られる作成器エンジンは、
複雑さが増し構造性が低下したものとなるであろう。さ
らに、多くのこのようなシステムにより作成されたコー
ドは、ユーザの所望する3GLプログラムのシェルのみ
であることがしばしばある。これは、このようなシステ
ムに見られるマッピングの不正確さ及び本質的な限界に
起因する。
【0006】米国特許第5159687号は、従来のソ
ース・コード作成器の問題点のいくつかを解決するため
の一つの試みを開示している。当該特許は、異なる言語
によるプログラミング・コードの自動作成において用い
られる多数の異なる知識ベースについて記載している。
当該特許の出願人であるCaseworks, Inc.による文献に
は、いくつかの異なる3GL言語によるアプリケーショ
ンのグラフィカル・ユーザ・インタフェース部分を作成
する際に、コード作成器により用いられる多数の異なる
拡張可能な知識ベースを含む製品が記載されている。記
載された製品は、様々な知識ベースを保持しかつ拡張す
るために固有の言語を用いる。よって、この試みは、拡
張性及び変更可能性の欠如の問題に対処しようとしたも
のでありながら、適用の限られている固有の言語の学習
をユーザに要求するという新しいレベルの複雑さが追加
されてしまった。さらに、複雑さ、完全性、及び本質的
なマッピングの限界という基本的な問題は、尚、残され
ている。
【0007】従って、保持と拡張がフレキシブルであ
り、かつ多数の言語による完全なソース・コード出力フ
ァイルを作成することができる改良されたコード作成器
が必要とされている。
【0008】
【発明が解決しようとする課題】本発明の目的は、所望
の機能を得るためにプログラマに対して最小限の作業し
か必要とせずに目的の言語によるソース・コード・ファ
イルを作成するシステムを提供することである。
【0009】本発明の別の目的は、従来のソース・コー
ド作成器を用いて作成される出力ソース・コード・ファ
イルよりも、さらに完全でかつさらに的確に所望の機能
に合致する出力ソース・コード・ファイルを作成するソ
ース・コード作成器を提供することである。
【0010】本発明のさらに別の目的は、極めて拡張性
が高くかつ容易に変更可能なソース・コード作成器を提
供することである。
【0011】本発明のさらに別の目的は、コード作成変
更において必要な保持及び更新が比較的容易であるよう
なソース・コード作成器を提供することである。
【0012】
【課題を解決するための手段】上記の目的を達成するべ
く、そして本明細書中に広範に記載されている本発明の
目的に従って、以下の構成を開示する。コンピューティ
ング環境において、4GL仕様を目的の言語によるソー
ス・コードへと変換するためのシステムは、所望の演算
機能を表現する4GL仕様を作成するための手段と、そ
の4GL仕様をそのオブジェクト指向モデルへと変換す
るための手段と、コード断片を含むコード・テンプレー
トと、上記オブジェクト指向仕様をこのコード・テンプ
レートへマッピングするための手段と、所望の目的の言
語によるソース・コードを作成するべく上記のマッピン
グされたコード・テンプレートをパーシング(構文解
析)するための手段とを有する。さらに上記システム
は、オブジェクト指向コードの実行を可能とするオブジ
ェクト指向実行環境を有し、かつ、上記コード・テンプ
レートがさらに目的の言語によるオブジェクト指向コー
ドとソース・コードの断片とを含む。さらに上記パーシ
ング手段が、マッピングされたコード・テンプレートの
オブジェクト指向コードをオブジェクト指向実行環境に
より実行することによって、マッピングされたソース・
コード・テンプレートからのソース・コード断片と結合
されることになる追加のソース・コード断片を作成す
る。このシステムは、このシステムを用いて利用可能な
目的の言語の各々に対する一組のコード・テンプレート
を提供し、そしてマッピング手段が、利用可能な目的の
言語のうちの所望の1つに対応する一組に対してオブジ
ェクト指向モデルをマッピングすることができる。さら
にシステムは、目的の言語を指示するための手段を有す
る。
【0013】さらにシステムは、オブジェクト指向プロ
グラムを目的の言語コードへと変換する機能を備えてお
り、各利用可能な目的の言語に対応する一組のソース・
コード・テンプレートを含み、これらのソース・コード
・テンプレートの各々は、その対応する目的の言語にお
けるソース・コード断片とオブジェク指向コードとを含
む。上記オブジェクト指向コードを実行可能なオブジェ
クト指向実行環境と、オブジェクト指向プログラムの各
オブジェクトを、目的の言語に対応する一組のソース・
コード・テンプレートのオブジェクトに対応するソース
・コード・テンプレートへとマッピングするためのマッ
ピング手段と、各マッピングされたソース・コード・テ
ンプレートからソース・コード断片を抽出した後各マッ
ピングされたソース・コード・テンプレートのオブジェ
クト指向コードを実行して追加するソース・コード断片
を作成しかつその追加するソース・コード断片とソース
・コード断片とを結合して得られるソース・コードを出
力することによってそのマッピングされたソース・コー
ド・テンプレートをパーシングするための手段とを含
む。本発明における上記の及び他の特徴、態様、及び有
用性は、以降の説明、特許請求の範囲、及び添付の図面
により明らかとされるであろう。
【0014】
【発明の実施の形態】本発明は、米国特許出願第316
174号「Object Oriented System and Method for Ge
nerating Target Language Code」(IBM整理番号 C
R994011)に関連しており、ここに参照する。
【0015】従来技術におけるソース・コード作成シス
テムについて、図1を参照して説明する。通常のソース
・コード作成器においては、コンピューティング環境に
常駐する4GLソース・コード作成器ツール10は、そ
の4GLユーザ・インタフェース12を介してユーザ入
力を受け入れる。ユーザは、キーボード14、マウス1
6、又は他のインタフェース装置18等の既知の手段を
通して4GLユーザ・インタフェース12と対話するこ
とにより所望のプログラミング機能を指定する。この手
法では、ユーザが、4GL言語による所望の機能を有す
るプログラムの4GL仕様を構築する。そして、この4
GL仕様は、作成器ツール10の作成器エンジン20へ
与えられる。従来の作成器エンジンの多くは、その中に
搭載された全ての可能な目的の言語について3GLソー
ス・コード命令文を含む。4GL仕様の命令文は、作成
器エンジン20中の対応する3GLソース・コード命令
文に合わせられ、4GLのシンタクスは一組の3GL命
令文として保存され、そして得られた3GLソース・コ
ード命令文の組が出力される。出力された3GLソース
・コード命令文の組は、その作成器ツール10の複雑さ
及びユーザからの4GL入力の完全さに応じて、完全な
プログラム、プログラムの一部、又はプログラムのシェ
ルのいずれを構成していてもよい。
【0016】このようなシステムにおける問題点と限界
は、前述の通りである。本発明は、ソース・コードの作
成に対してオブジェクト指向技術を適用することによ
り、前述の問題点を解決しかつ限界を克服する。本発明
を、図2乃至図6を参照して説明する。本発明は、様々
な既知のコンピューティング環境のいずれにおいても実
施することができる。これらの環境には、通常、プロセ
ッサ、メモリ、及びユーザ入力を受け取るためのキーボ
ードやマウスを利用するモニタ等のユーザ・インタフェ
ースが含まれる。例えば、本発明は、スタンドアロン型
ワークステーションにおいても、クライアント/サーバ
型環境においても実施可能である。
【0017】本発明によるソース・コード作成器ツール
30は、4GLを用いることが好ましく、これによりユ
ーザは所望のプログラミング機能やプログラム又はアプ
リケーション全体を指定する。ユーザは、4GLユーザ
・インタフェース32と対話するべく、キーボード1
4、マウス16、又は他のインタフェース装置18等の
既知の入力手段を利用する。4GLユーザ・インタフェ
ース32は、好適には、既知の技術により実施され、例
えば、従来のソース・コード作成器ツールの4GLユー
ザ・インタフェース等がある。ユーザは、所望のプログ
ラミング機能のための仕様を開発するために4GLユー
ザ・インタフェース32を利用する。この仕様は、4G
L命令文(ステップ100)の形式となる。
【0018】この4GL仕様は、オブジェクト指向変換
器34へ与えられ、ここで4GL仕様から4GL仕様の
オブジェクト指向モデルへと変換される。4GL仕様の
論理項目は、論理指向オブジェクトへと変換され(ステ
ップ102)、4GL仕様のデータ項目はデータ指向オ
ブジェクトへと変換される(ステップ104)。
【0019】この変換は、次のように実現される。通常
の4GLは、一定数の論理要素とデータ要素とから構成
される。オブジェクト指向変換器34は、4GLにおい
てユーザが利用可能な要素に対応するオブジェクト指向
構成を含む。好適例においては、これらのオブジェクト
指向構成は、スモールトーク(Smalltalk)言語から得ら
れる。存在し得る4GLの各論理要素及び各データ要素
に対して、一つのスモールトーク・クラスが与えられ
る。オブジェクト指向言語では、クラスは、クラス・イ
ンスタンスの生成のためのテンプレートである。クラス
のインスタンスは、オブジェクトと称される。クラス
は、得られるオブジェクトの属性、動作、及びインプリ
メンテーションの完全な記述を含むという点で、オブジ
ェクトの仕様と云える。オブジェクトの動作は、メッセ
ージと称される受信された要求を介して明らかとなる。
メッセージは、オブジェクトのクラス内に規定されたメ
ソッドに対してマッピングされ、各メソッドは、他のオ
ブジェクトへの最も基本的レベルにおけるメッセージか
ら構成される。そして、ダイナミック・リンク・ライブ
ラリを呼び出す等のルーチンを実行させることによって
実際の処理を行う。本発明において生成されるオブジェ
クトもまたインスタンス・データを含み、これらもまた
メッセージを用いて取り扱うことができる。
【0020】オブジェクト指向構成は前述のような性質
をもつので、4GL仕様の論理項目やデータ項目を対応
する論理指向オブジェクトやデータ指向オブジェクトへ
と変換することは、比較的直接的なことである。4GL
仕様は、本質的に、ユーザにより選択された4GLから
の利用可能な要素を並べた集合である。各要素は、何回
でも使用できるし、あるいは、その仕様で全く使用しな
いこともできる。オブジェクト指向変換器34は、4G
Lからの各要素に対応するクラスを含む。オブジェクト
指向変換器34内の所与のクラスは論理指向であり、そ
れ以外のクラスはデータ指向である。オブジェクト指向
変換器34は、4GL仕様からの各項目をその項目に対
応する4GL要素のオブジェクト指向クラスへとマッピ
ングする。従って、4GL仕様のオブジェクト指向モデ
ルは、基本的に、論理指向オブジェクト指向とデータ指
向オブジェクト指向との集合となり、これらのオブジェ
クトは、インスタンス・データ及びインスタンス・メソ
ッドに基づいて互いに関連する。この形態は、4GL仕
様のセマンティクスを保有している。論理要素の例とし
ては、MoveStatementクラスやApplicationクラスがあ
る。データ要素の例としては、IndexedRecordクラスやN
umericDataItemクラスがある。このように、オブジェク
ト指向変換器34は、4GL仕様からの論理項目及びデ
ータ項目を、オブジェクト指向モデルを構成する論理指
向クラス及びデータ指向クラスのインスタンスへと変換
する。
【0021】得られたオブジェクト指向モデルもまた、
本質的にオブジェクト指向のアプリケーション又はプロ
グラムであり、これは適宜の実行環境により実行するこ
とができる。すなわち、好適例においては、得られたモ
デルがスモールトークのアプリケーション又はプログラ
ムになり、そしてその実行環境は、通常、適宜のスモー
ルトーク仮想マシン及びスモールトーク・イメージを含
む。これらは、オブジェクト間でメッセージを送ること
を可能とし、メソッドにより表現される基本処理ルーチ
ン及び機能を含みかつ実行し、下層のオペレーティング
・システム等との適宜のインタフェースを与える。オブ
ジェクト指向モデルのスモールトーク・コードの実行に
おいては、そのモデルを目的の言語へ変換することが必
要となるので、作成器ツール30がスモールトーク仮想
マシン及びイメージの必要なエレメントを含むことによ
り実行を可能とすることが好ましい。好適例において
は、スモールトーク実行環境44が作成器ツール30に
備えられているが、この実行環境は、作成器ツール30
によりアクセス可能であるならば、コンピューティング
環境の中のいずれに配置されていてもよい。
【0022】作成器ツール30もまた、オブジェクト指
向作成器エンジン36を含む。作成器エンジン36は関
連するメモリを有し、オブジェクト変換4GL設計は関
連のメモリへと入力される(ステップ106)。オブジ
ェクト指向作成器エンジン36もまた、目的の言語固有
のソース・コード・テンプレートの1又は複数の組を有
し、これらもまた、関連のメモリへ記憶されるか又はエ
ンジン36によりアクセス可能なメモリへ記憶される。
そして、作成器エンジン36は、スモールトーク・コー
ドの実行を可能とする基本スモールトーク実行環境も有
する。ソース・コード作成プロセスの各ステップについ
ては、作成器エンジン36の機能部分として記述する
が、これらのステップは分散させることもできる。
【0023】図2には、ソース・コード・テンプレート
の3つの組38、40、42が示されている。作成器ツ
ール30を通して利用可能な目的の言語の各々に対し
て、一組のソース・コード・テンプレートが設けられ
る。通常、目的の言語は、Cやコボル等の3GLとな
る。しかしながら、目的の言語が、別の4GLであって
もよく又はオブジェクト指向言語であってもよい。以降
の記述においては、目的の言語が3GLである場合を対
象とする。このアーキテクチャによれば、ソース・コー
ド作成器ツール30を完全に拡張可能とすることができ
る。そして実際に、性能に影響を与えることなく、追加
する目的の言語を表現するソース・コード・テンプレー
トをいくつでも追加することが可能である。各テンプレ
ートの組における個々のソース・コード・テンプレート
は、オブジェクト指向変換器34の利用可能なクラスの
1つに対応し、そしてオブジェクト指向変換器34の各
クラスは、4GLの利用可能な要素に対応する。
【0024】図2には、オブジェクト指向実行環境44
も示されている。この実行環境44は、作成器エンジン
36とは別に示されているが、実際には、作成器エンジ
ン内に配置することもでき、また、変換器34を介して
利用可能なオブジェクト指向言語の要素のために必要な
基本部分の実行環境のみを含めてもよい。あるいは、完
全な実行環境であってもよいが、コンピューティング環
境内の物理的に別の場所に配置して、作成器ツール30
のみでなく任意の数のツールやアプリケーションにより
利用されるようにしてもよい。
【0025】4GL仕様のオブジェクト指向モデルを利
用することにより、4GL入力を3GLソース・コード
・プログラムへと変換することに伴って作成器エンジン
に通常見られる複雑さの大部分が、排除される。本発明
による作成器エンジン36は、そのモデルの各オブジェ
クトを、目的の言語について対応するソース・コード・
テンプレートに対してマッピングするステップと、マッ
ピングされたテンプレートをパーシングするステップと
を実行する。第2のステップを実行するべく、作成器エ
ンジン36は、そのモデルのオブジェクトの内容に従
い、マッピングされたソース・コード・テンプレートを
パーシングして目的の言語による完全なソース・コード
命令文とする作成器アルゴリズムを含む。テンプレート
の中のオブジェクト指向コードは、パーシング中に、そ
のモデルと環境44に関係して実行される。このパーシ
ングについては、図5及び図6を参照して後に詳述す
る。作成器ツール30のこのアーキテクチャは、目的の
言語のソース・コードを作成器エンジンから分離するこ
と及び4GL仕様を表現するためにオブジェクト指向モ
デルを利用することを含むが、このアーキテクチャもま
た、ユーザが、4GLインタフェースを介して比較的容
易に利用可能な機能を拡張することができる。ユーザ・
インタフェース32を介して、各々の又は全てのソース
・コード・テンプレートの組に対して追加するソース・
コード・テンプレートを追加し、そして対応する4GL
の論理要素又はデータ要素を追加することによって、新
規のプログラミング機能を追加することができる。その
際、ユーザ・インタフェース32の他の要素、他のクラ
ス、他の機能、もしくは他のテンプレート、オブジェク
ト指向変換器34、オブジェクト指向作成器エンジン3
6、又はソース・コード・テンプレート38、40、4
2の各々に対しては、ほとんど全く影響を与えない。
【0026】オブジェクト指向モデルが適切なソース・
コード・テンプレートの組38、40、42へ適用され
るように、目的の言語が識別されなければならない(ス
テップ108)。ユーザが4GL仕様を作成するとき、
ユーザによりその目的の言語を入力することができる。
あるいは、マッピングしようとするとき、ユーザにより
指定することもできる。さらに、もしユーザが目的の言
語を指定しない場合は、利用可能な言語の1つを利用す
ることができる。またさらに、各オブジェクト変換モデ
ルは、ユーザが必要とするまで、利用可能な言語の1つ
としてメモり内に保持することもできる。このモデル
は、メモリ、ユーザにより指定された目的の言語、及び
指定された言語によるソース・コードを与えるべく実行
される処理からアクセスすることが可能である。これに
ついては、後述する。テンプレートのマッピングが完了
すると、そのモデルはメモリに返されるか又は保存さ
れ、そして後に、異なる言語へ変換するためにアクセス
される。
【0027】その後、オブジェクト指向作成器エンジン
36は、4GL仕様のオブジェクト指向モデルを処理す
る。目的の言語のほとんどは、先ずデータ定義を作成す
ることを要求するので、オブジェクト指向作成器エンジ
ン36は、先ずオブジェクト指向モデルから全てのデー
タ指向オブジェクトを集める。これらのデータ指向オブ
ジェクトと、これらに対応する目的の言語のソース・コ
ード・テンプレートの組の中のソース・コード・テンプ
レートとをマッピングさせた後、目的の言語によるソー
ス・コード・データ定義及びスモールトーク命令を出力
する。これらは、関連するメモリへの対応するソース・
コード・テンプレートを構成する(ステップ110)。
その後、オブジェクト指向作成器エンジン36は、同様
に全ての論理指向オブジェクトを集める。これらのオブ
ジェクトと、これらに対応する目的の言語のソース・コ
ード・テンプレートの組からのソース・コード・テンプ
レートとをマッピングさせた後、目的の言語によるソー
ス・コード・データ定義及びスモールトーク命令を出力
する。これらは、関連するメモリへの対応するソース・
コード・テンプレートを構成する(ステップ112)。
この方法により、全てのオブジェクトが、対応するテン
プレートへマッピングされたならば、オブジェクト指向
作成器エンジン36において、作成器アルゴリズムに従
ってその出力がパーシングされ、実行される(ステップ
114)。
【0028】多くの場合、各ソース・コード・テンプレ
ートは、2つの要素からなる。第1の要素は、実際の目
的言語のソース・コード断片である。第2の要素は、作
成器の指示要素であり、好適例では、パーシング・プロ
セス中に実行するスモールトーク・コードを含む。作成
器指示要素中のスモールトーク・コードは、実行される
と、作成器エンジンに対して適切な目的言語のストリン
グを与えることによってソース・コード・テンプレート
から供給されたその目的言語のソース・コード断片を完
成する。各作成器指示要素は、2つの部分からなる。第
1の部分は、オブジェクト識別子であり、第2の部分
は、メッセージ識別子である。オブジェクト識別子は、
オブジェクト指向モデルからのいずれのオブジェクト
が、メッセージ識別子により表現されたメッセージを受
け取るべきかを識別する。パーシング中にオブジェクト
指向実行環境44を用いて、そのメッセージが識別され
たオブジェクトへと送られる。さらに、その識別された
オブジェクトから戻り値が返される。この戻り値は追加
のソース・コード断片であるが、通常は、変数名やエン
トリ・ポイント名等のVARIABLE部分である。作成器アル
ゴリズムは、ソース・コード・テンプレートからのソー
ス・コード断片に対してその戻り値を付け加える。この
ようにして、オブジェクト指向モデル内のオブジェクト
が、ソース・コード作成プロセスに加わる。例えば、Mo
veStatementオブジェクトは、種々の目的言語の中のそ
のSOURCEとTARGETのオペランドを参照するための方法を
表現するソース・コード断片と共に返される。
【0029】上述のように、作成器エンジン36が、各
マッピングされたソース・コード・テンプレートを処理
することによって、実際の目的言語のソース・コードの
ストリングが得られる。ツール30を用いて作成される
通常のプログラムは、このような大量のストリングを含
むことになる。次に、データ指向オブジェクトのための
C言語による宣言ソース・コード・テンプレートの例を
示す。このデータ指向オブジェクトは、NumericDataIte
mObjectとして知られ、「IdNumber」と称される。これ
は、4GL仕様における数値データ・エンティティを表
現する。 int <self VarName>; このソース・コード・テンプレートのソース・コード断
片部分は、ストリング「int」及び「;」からなり、一
方、作成器指示要素は、「<self VarName>」からなる部
分である。記号「<」及び「>」は、任意の区切り文字で
あって、作成器指示要素の始まり及び終わりを示す。作
成器指示要素のオブジェクト識別子は「self」であり、
これは、変数宣言すなわち「IdNumber」のようにそれ自
身を作成するべく問合わせを受けるオブジェクトを意味
する。メッセージ識別子は「VarName」であり、これ
は、オブジェクト「self」へ送られるメッセージとな
る。このメッセージは、変数宣言において用いられたと
き、オブジェクト「self」に対してそれ自身を表現する
ストリングを戻すよう告げる。この例では、「IdNumbe
r」というネームであるNumericDataItemObjectが、スト
リング「idNumber」を戻すことになる。得られた目的言
語のソース・コード断片は「int idNumber」であり、こ
れはC言語のソース・コード断片である。
【0030】ここで、このオブジェクトが、そのネーム
以外のいずれかのストリングと共に戻すことも可能であ
ることを注記する。例えばそのネームが、目的言語にお
ける変数名として許容される長さよりも長い場合に、こ
のことが必要となる場合がある。
【0031】まとめると、ソース・コード・テンプレー
トの構文解析器(パーサ)は、オブジェクト指向モデル
に対してその言語固有のソース・コード・テンプレート
を処理し、作成器指示要素の中のスモールトーク・コー
ドを実行させ、そして目的言語による完全なソース・コ
ード・ストリングを生成する。次に、ソース・コード・
テンプレートの実際のパーシングについて、図5及び図
6の流れ図を参照して説明する。
【0032】ステップ200において、ソース・コード
・テンプレートの1つが、パーサへ入力される。ステッ
プ202において、ソース・コード・テンプレートのソ
ース・コード断片部分がキャッシュ・メモリへ出力され
る。すなわち、記号「<」に到達するまで、ソース・コ
ード・テンプレートの内容がキャッシュ・メモリへ書き
込まれる。記号「<」は、ソース・コード断片の終わり
と作成器指示要素の始まりとを示す。記号「<」がない
場合は、そのソース・コード・テンプレートの終わりま
で書き込まれる。記号「<」がないという状況が起こり
易いのは、ソース・コード断片が、既に処理された作成
器指示要素に続いておりかつそのソース・コード・テン
プレートに含まれる別の指示要素がないというような複
雑なソース・コード・テンプレートである場合や、その
ソース・コード・テンプレートが作成器指示要素を含ま
ない場合である。ソース・コード・テンプレートの終わ
りに到達したならば(ステップ204)、処理は後述の
ステップ216へ進む。作成器指示要素に到達したと判
断された場合、すなわち記号「<」に到達した場合(ス
テップ206)、記号「<」は破棄され、それに続く作
成器指示要素を構成するオブジェクト識別子及びメッセ
ージ識別子を作成器アルゴリズムが読み取る(ステップ
208)。これらの識別子を構成するスモールトーク・
コードは、実行環境46により実行される。メッセージ
識別子は、オブジェクト識別子により識別されたオブジ
ェクト指向モデル内のオブジェクトへのメッセージとし
て送られる(ステップ210)。メッセージを送ること
に応答して戻される値もしくは文字又はストリングは、
キャッシュ・メモリへ出力される。キャッシュ・メモリ
内では、この戻り値とテンプレートのソース・コード断
片部分とが結合されて、キャッシュ・メモリ内の目的言
語のソース・コード・ストリングが拡張される(ステッ
プ212)。それから記号「>」が破棄され、そしてパ
ーシングされる個々のソース・コード・テンプレートが
全てパーシングされたか否かが判断される(ステップ2
14)。まだ残っている場合は、このパーシング・プロ
セスはステップ202へ戻り、ソース・コード・テンプ
レートが完全にパーシングされるまで処理を続ける。ソ
ース・コード・テンプレートが完全にパーシングされた
場合は、パーシング・プロセスはステップ216へ進
む。
【0033】ステップ216において、そのマッピング
されたソース・コード・テンプレートが、パーシングさ
れるべき最後のソース・コード・テンプレートであると
判断された場合、このパーシング・プロセスは終了す
る。そうでない場合は、次のソース・コード・テンプレ
ートがパーシングするべく決定され(ステップ21
8)、パーサへと入力される(ステップ200)。
【0034】パーシング・プロセスは、オブジェクト指
向技術の有利な点を利用することにより、本来4GLに
より入力された所望のプログラミングに含まれる種々の
構成要素同士の相互関係を保持することができる。これ
らの相互関係は、オブジェクト指向モデルの中に保持さ
れ、そしてスモールトーク・コードの実行により目的言
語のコードへと送られる。これは、ソース・コード・テ
ンプレートからのソース・コード断片と結合させられた
ストリングを与える。
【0035】キャッシュ・メモリは、満杯になったり溢
れたりするおそれがあるか否かを周期的に検査される
(ステップ220)。上記のような状態が検知されたな
らば、キャッシュ・メモリの内容は、目的言語による所
望のプログラムのためのソース・コード・ファイルへと
入れられ、キャッシュ・メモリは空にされる(ステップ
222)。さらに、キャッシュ・メモリの内容は、最後
のソース・コード・テンプレートのパーシングに続いて
ソース・コード・ファイルへ出力される。
【0036】キャッシュ・メモリから出力されたソース
・コード・ファイルの集まりは、必要であれば更に処理
され、そして通常はソース・コード・ファイルの形態で
作成器エンジン36(又は関連のメモリ)から出力され
ることになる(図4のステップ116)。第3の作成言
語ソース・コードは、通常、これを実行する準備のため
にコンパイルすることが必要となる。出力されたソース
・コードのコンパイルが自動的に行われるように、作成
器ツール30の中にコンパイラを含めてもよい。加え
て、他のコード準備ステップを作成器ツール30に含め
てもよい。例えば、作成器ツール30に、コードをデバ
ッグするためのデバッガを含めることができる。しかし
ながら、コンパイラやデバッガ等のエレメントは、実行
可能なコード作成のための周知の構成要素であって、本
発明のオペレーションにおいて重要ではない。
【0037】本発明を実施するために必要な手法は、当
業者であれば自明であろう。以上、本発明の一実施例を
説明してきたが、本発明の要旨を逸脱することなく様々
な修正や変更が可能であることは、当業者であれば理解
できるであろう。
【0038】まとめとして、本発明の構成について以下
の事項を開示する。
【0039】(1) コンピューティング環境において
第4世代言語仕様を目的言語によるソース・コードへと
変換するためのソース・コード作成システムであって、
前記第4世代言語仕様を、その第4世代言語仕様のオブ
ジェクト指向へと変換するための手段と、コードの断片
から構成されるコード・テンプレートと、前記オブジェ
クト指向モデルを前記コード・テンプレートへとマッピ
ングするための手段と、所望の目的言語によるソース・
コードを作成するべく、前記マッピングされたコード・
テンプレートをパーシングするための手段とを有するソ
ース・コード作成システム。 (2)オブジェクト指向コードの実行を可能とするオブ
ジェクト指向実行環境をさらに有し、かつ前記コード・
テンプレートが、オブジェクト指向コードと目的言語に
よるソース・コードの断片とを有し、前記パーシング手
段が、前記オブジェクト指向実行環境を用いて前記マッ
ピングされたコード・テンプレートのオブジェクト指向
コードを実行させることによって該マッピングされたソ
ース・コード・テンプレートからのソース・コードの断
片と結合される追加のソース・コード断片を作成する上
記(1)に記載のソース・コード作成システム。 (3)前記システムを用いて利用可能な前記目的言語の
各々に対して、一組のコード・テンプレートが備えら
れ、かつ前記マッピング手段が、前記オブジェクト指向
モデルを、該利用可能な目的言語の所望の一つに対応す
る一組に対してマッピングする上記(1)に記載のソー
ス・コード作成システム。 (4)目的言語を指示するための手段を有する上記
(1)に記載のソース・コード作成システム。 (5)所望のプログラム機能を表現する前記第4世代言
語仕様を生成するための手段を有する上記(1)に記載
のソース・コード作成システム。 (6)前記変換手段が、第4世代言語仕様を生成するべ
く用いられるその第4世代言語の利用可能な各要素に対
応するクラスを有する上記(1)に記載のソース・コー
ド作成システム。 (7)オブジェクト指向プログラムを目的言語のコード
へと変換するためのシステムであって、各利用可能な目
的言語に対応しかつその対応する目的言語によるソース
・コード断片及びオブジェクト指向コードを含む一組の
ソース・コード・テンプレートと、前記オブジェクト指
向コードを実行可能なオブジェクト指向実行環境と、前
記オブジェクト指向プログラム内のオブジェクトを、前
記目的言語に対応する前記一組のソース・コード・テン
プレート内の該オブジェクトに対応するソース・コード
・テンプレートへとマッピングするためのマッピング手
段と、各マッピングされたソース・コード・テンプレー
トから前記ソース・コード断片を抽出し、追加するソー
ス・コード断片を作成するべく各マッピングされたソー
ス・コード・テンプレート内の前記オブジェクト指向コ
ードを実行し、該追加するコードと該ソース・コード断
片とを結合し、得られたソース・コードを出力すること
によって、該マッピングされたソース・コード・テンプ
レートをパーシングするための手段とを有するシステ
ム。 (8)前記目的言語が、第3世代言語である上記(7)
に記載のシステム。 (9)第4世代言語プログラム・モデルを、第3世代言
語ソース・コードへと変換するための方法であって、前
記第4世代言語プログラム・モデルを、該モデルのオブ
ジェクト指向言語等価モデルへと変換するステップと、
前記オブジェクト指向言語等価モデルからの各オブジェ
クト指向を、目的言語に関連する一組のコード・テンプ
レートからの対応するテンプレートへとマッピングする
ステップと、前記目的言語によるソース・コードを作成
するべく前記マッピングされたコード・テンプレートを
パーシングするステップとを含む変換方法。 (10)前記パーシング・ステップが、前記マッピング
されたコード・テンプレートの各々に対して、各マッピ
ングされたコード・テンプレート内から目的言語コード
部分とオブジェクト指向コード部分とを分離するステッ
プと、前記オブジェクト指向言語等価モデルに関係する
該オブジェクト指向コード部分を実行しかつ戻り値を受
け取るステップと、該目的言語コード部分と該戻り値と
を結合しかつ該結合されたものを前記目的言語によるソ
ース・コードとして出力するステップとを含む上記
(9)に記載の変換方法。
【0040】
【発明の効果】本発明によるソース・コード作成システ
ム及び方法によれば、オブジェクト指向変換器が第4世
代言語仕様を、該仕様に規定された機能及び相互関係を
保持するオブジェクト指向モデルへと変換する。オブジ
ェクト指向モデルは、通常は第3世代言語である所望の
目的言語のための一組のソース・コード・テンプレート
に対して適用される。オブジェクト指向作成器エンジン
は、得られたテンプレートの集まりをパーシングするこ
とにより、所望のプログラミング機能を備えた所望の目
的言語によるソース・コード・ファイルを形成すること
ができる。
【図面の簡単な説明】
【図1】従来のソース・コード作成システムのブロック
図である。
【図2】本発明によるオブジェクト指向ソース・コード
作成システムのブロック図である。
【図3】図2のシステムにより4GLプログラム仕様を
処理しかつ変換する方法を示した流れ図である。
【図4】図2のシステムにより4GLプログラム仕様を
処理しかつ変換する方法を示した流れ図である。
【図5】マッピングされたソース・コード・テンプレー
トをパーシングするために用いられる技術を示した流れ
図である。
【図6】マッピングされたソース・コード・テンプレー
トをパーシングするために用いられる技術を示した流れ
図である。
【符号の説明】
14 キーボード 16 マウス 18 インタフェース装置 32 4GLユーザ・インタフェース 34 オブジェクト指向変換器 36 オブジェクト指向作成器エンジン 38、40、42 ソース・コード・テンプレートの組 44 オブジェクト指向実行環境
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 米国特許5159687(US,A) 「日経オープンシステム」(1993− 10)P.135−144 「情報処理学会研究報告」Vol. 89,No.63(1989)(89−DBS− 72)P.81−87 (58)調査した分野(Int.Cl.7,DB名) G06F 9/06,9/44

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピューティング環境において、第4世
    代言語の仕様書を目的言語のソース・コードへと変換す
    るためのシステムであって、 前記第4世代言語の仕様書を、該第4世代言語の仕様書
    のオブジェクト指向モードへと変換するための手段と、 オブジェクト指向コード、および前記目的言語のソース
    ・コードのコード断片を含むコード・テンプレートと、 前記オブジェクト指向コードの実行を可能にするオブジ
    ェクト指向実行環境と、 前記オブジェクト指向モードを前記コード・テンプレー
    トへとマッピングする手段と、 所望の目的言語のソース・コードを作成するために、マ
    ッピングされた前記コード・テンプレートを解析し、マ
    ップされた前記コード・テンプレートからのソース・コ
    ードのコード断片と結合されるべき追加のソース・コー
    ドのコード断片を生成するために、マップされた前記コ
    ード・テンプレートにおける前記オブジェクト指向コー
    ドが前記オブジェクト指向実行環境で実行されるように
    する手段と、 を具備するシステム。
  2. 【請求項2】オブジェクト指向コードの実行を可能とす
    るオブジェクト指向実行環境をさらに有し、かつ前記コ
    ード・テンプレートが、オブジェクト指向コードと目的
    言語のソース・コードの断片とを有し、前記パーシング
    手段が、前記オブジェクト指向実行環境を用いて前記マ
    ッピングされたコード・テンプレートのオブジェクト指
    向コードを実行させることによって該マッピングされた
    ソース・コード・テンプレートからのソース・コードの
    断片と結合される追加のソース・コード断片を作成する
    請求項1に記載のソース・コード作成システム。
  3. 【請求項3】前記システムを用いて利用可能な前記目的
    言語の各々に対して、一組のコード・テンプレートが備
    えられ、かつ前記マッピング手段が、前記オブジェクト
    指向モードを、該利用可能な目的言語の所望の一つに対
    応する一組に対してマッピングする請求項1に記載のソ
    ース・コード作成システム。
  4. 【請求項4】目的言語を指示するための手段を有する請
    求項1に記載のソース・コード作成システム。
  5. 【請求項5】所望のプログラム機能を表現する前記第4
    世代言語の仕様書を生成するための手段を有する請求項
    1に記載のソース・コード作成システム。
  6. 【請求項6】前記変換手段が、第4世代言語の仕様書を
    生成するべく用いられるその第4世代言語の利用可能な
    各要素に対応するクラスを有する請求項1に記載のソー
    ス・コード作成システム。
  7. 【請求項7】オブジェクト指向プログラムを目的言語の
    コードへと変換するためのシステムであって、 各利用可能な目的言語に対応しかつその対応する目的言
    語のソース・コード断片及びオブジェクト指向コードを
    含む一組のソース・コード・テンプレートと、 前記オブジェクト指向コードを実行可能なオブジェクト
    指向実行環境と、 前記オブジェクト指向プログラム内のオブジェクトを、
    前記目的言語に対応する前記一組のソース・コード・テ
    ンプレート内の該オブジェクトに対応するソース・コー
    ド・テンプレートへとマッピングするためのマッピング
    手段と、 各マッピングされたソース・コード・テンプレートから
    前記ソース・コード断片を抽出し、追加するソース・コ
    ード断片を作成するべく各マッピングされたソース・コ
    ード・テンプレート内の前記オブジェクト指向コードを
    実行し、該追加するコードと該ソース・コード断片とを
    結合し、得られたソース・コードを出力することによっ
    て、該マッピングされたソース・コード・テンプレート
    をパーシングするための手段とを有するシステム。
JP7214348A 1994-09-30 1995-08-23 ソース・コード作成システム及び方法 Expired - Fee Related JP3041222B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US315743 1994-09-30
US08/315,743 US5875331A (en) 1994-09-30 1994-09-30 System and method for generating target language code utilizing an object oriented code generator

Publications (2)

Publication Number Publication Date
JPH08115209A JPH08115209A (ja) 1996-05-07
JP3041222B2 true JP3041222B2 (ja) 2000-05-15

Family

ID=23225860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7214348A Expired - Fee Related JP3041222B2 (ja) 1994-09-30 1995-08-23 ソース・コード作成システム及び方法

Country Status (4)

Country Link
US (2) US5875331A (ja)
EP (1) EP0709773B1 (ja)
JP (1) JP3041222B2 (ja)
DE (1) DE69525706T2 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875331A (en) * 1994-09-30 1999-02-23 International Business Machines Corp. System and method for generating target language code utilizing an object oriented code generator
US6704744B1 (en) * 1994-12-07 2004-03-09 Next Computer, Inc. Method and apparatus for mapping objects to multiple tables of a database
US5742818A (en) * 1995-12-15 1998-04-21 Microsoft Corporation Method and system of converting data from a source file system to a target file system
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US6275871B1 (en) * 1996-07-03 2001-08-14 Siemens Aktiengesellschaft Asynchronous transport optimizing observer-pattern-like system supporting several modes for an interface definition language-less communication subsystem
US6141012A (en) * 1997-03-31 2000-10-31 Xerox Corporation Image processing code generation based on structured image (SI) techniques
GB2324890B (en) 1997-05-03 2002-05-08 Ibm Data processing method and apparatus
GB2327786B (en) * 1997-07-31 2002-04-03 Ibm Method and apparatus for strategic compilation of source programs into two or more target languages
JPH11126162A (ja) * 1997-10-22 1999-05-11 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
US6189137B1 (en) * 1997-11-21 2001-02-13 International Business Machines Corporation Data processing system and method for simulating “include” files in javascript
US6446047B1 (en) 1998-05-07 2002-09-03 Daniel L. Brier Municipal bond apparatus, product and method
FR2786003A1 (fr) * 1998-11-16 2000-05-19 Cit Alcatel Procede de generation du code source d'un programme pour un equipement informatique
US6370683B1 (en) * 1999-05-07 2002-04-09 Arnold Sobers Computer software for generating flowchart images of a source program
US6560770B1 (en) * 1999-05-25 2003-05-06 Oracle Corporation Extending the attributes of an application generated using a fourth generation programming tool
US6560633B1 (en) * 1999-06-10 2003-05-06 Bow Street Software, Inc. Method for creating network services by transforming an XML runtime model in response to an iterative input process
US7152228B2 (en) * 1999-07-08 2006-12-19 Science Applications International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6769095B1 (en) 1999-07-23 2004-07-27 Codagen Technologies Corp. Hierarchically structured control information editor
JP3871832B2 (ja) * 1999-08-20 2007-01-24 日本電気株式会社 データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US7334216B2 (en) * 2000-04-04 2008-02-19 Sosy, Inc. Method and apparatus for automatic generation of information system user interfaces
CA2311870A1 (en) * 2000-06-15 2001-12-15 Ibm Canada Limited-Ibm Canada Limitee Xml based system for updating a domain model and generating a formatted output
US6968541B1 (en) * 2000-10-04 2005-11-22 International Business Machines Corporation Apparatus and method for template instantiation with a cross compiler
US7853922B1 (en) * 2001-05-15 2010-12-14 The Mathworks, Inc. Data objects for model-based design
US20040015832A1 (en) * 2001-05-25 2004-01-22 Michael Stapp Method and apparatus for generating source code
US20030115548A1 (en) * 2001-12-14 2003-06-19 International Business Machines Corporation Generating class library to represent messages described in a structured language schema
US20030212954A1 (en) * 2001-12-17 2003-11-13 Patrudu Pilla Gurumurty Conceptual process redactor
US7152222B2 (en) * 2002-01-08 2006-12-19 International Business Machines Corporation Method and system for localizing Java™ JAR files
US20030182626A1 (en) * 2002-03-22 2003-09-25 Eran Davidov On-demand creation of MIDlets
US7565647B2 (en) * 2002-03-22 2009-07-21 Sun Microsystems, Inc. Markup compiler that outputs MIDlets
US7305671B2 (en) * 2002-03-22 2007-12-04 Sun Microsystems, Inc. Conversion of an object model to a source file generation model
US7512932B2 (en) * 2002-03-22 2009-03-31 Sun Microsystems, Inc. Language and object model for describing MIDlets
US20030181196A1 (en) * 2002-03-22 2003-09-25 Eran Davidov Extensible framework for code generation from XML tags
US7185313B1 (en) * 2002-05-21 2007-02-27 Microsoft Corporation Method and system for designing and implementing shapes in a software module
US8656372B2 (en) * 2002-11-20 2014-02-18 Purenative Software Corporation System for translating diverse programming languages
US9965259B2 (en) 2002-11-20 2018-05-08 Purenative Software Corporation System for translating diverse programming languages
US9086931B2 (en) 2002-11-20 2015-07-21 Purenative Software Corporation System for translating diverse programming languages
FR2872600B1 (fr) * 2004-07-02 2008-04-18 Thales Sa Procede de transformation de code informatique et produit/ programme d'ordinateur pour la mise en oeuvre d'un tel procede
US20060090155A1 (en) * 2004-10-12 2006-04-27 Gurevich Michael N Methods and apparatus for message oriented invocation
US7564458B2 (en) * 2004-12-15 2009-07-21 Microsoft Corporation System and method for interactively linking data to shapes in a diagram
US7643907B2 (en) 2005-02-10 2010-01-05 Abb Research Ltd. Method and apparatus for developing a metadata-infused software program for controlling a robot
US7707562B1 (en) * 2005-03-31 2010-04-27 Markus Kaltenbach Code translation verification
US8756044B2 (en) * 2005-05-31 2014-06-17 The Mathworks, Inc. Graphical partitioning for parallel execution of executable block diagram models
US8447580B2 (en) * 2005-05-31 2013-05-21 The Mathworks, Inc. Modeling of a multiprocessor system
CN100483342C (zh) * 2005-09-26 2009-04-29 鸿富锦精密工业(深圳)有限公司 量测程序智能生成系统及方法
US20070182841A1 (en) * 2006-02-07 2007-08-09 Donnie Drake Image sensing microelectronic device with glass tilt control features, and various methods of making same
US8006226B2 (en) * 2006-06-09 2011-08-23 Sorriso Technologies Inc. Methods and apparatus for generating a web site from a use case
US7574701B2 (en) * 2006-08-21 2009-08-11 Microsoft Corporation Syntax for members added through object protocol systems and methods
US7917890B2 (en) * 2006-08-31 2011-03-29 Jon Barcellona Enterprise-scale application development framework utilizing code generation
US8589869B2 (en) * 2006-09-07 2013-11-19 Wolfram Alpha Llc Methods and systems for determining a formula
US8037450B2 (en) * 2007-08-29 2011-10-11 Sap Ag System and methods for tracing code generation in template engines
US8291374B2 (en) * 2007-11-05 2012-10-16 Cullum Owen H G System and method for generating modified source code based on change-models
US20090150773A1 (en) * 2007-12-05 2009-06-11 Sun Microsystems, Inc. Dynamic product configuration user interface
US9098290B2 (en) * 2008-01-30 2015-08-04 Intuit Inc. Method and apparatus for facilitating diagnostic logging for software components
US8656349B2 (en) * 2008-03-07 2014-02-18 Sap Ag Systems and methods for template reverse engineering
US8245186B2 (en) * 2008-04-03 2012-08-14 Microsoft Corporation Techniques for offering and applying code modifications
US8595689B2 (en) * 2008-12-24 2013-11-26 Flir Systems Ab Executable code in digital image files
US8448132B2 (en) * 2009-05-07 2013-05-21 Sap Ag Systems and methods for modifying code generation templates
US8788524B1 (en) 2009-05-15 2014-07-22 Wolfram Alpha Llc Method and system for responding to queries in an imprecise syntax
US8601015B1 (en) 2009-05-15 2013-12-03 Wolfram Alpha Llc Dynamic example generation for queries
US8626825B2 (en) * 2009-09-07 2014-01-07 Oracle International Corporation Facilitating a service application to operate with different service frameworks in application servers
US8484015B1 (en) 2010-05-14 2013-07-09 Wolfram Alpha Llc Entity pages
US8812298B1 (en) 2010-07-28 2014-08-19 Wolfram Alpha Llc Macro replacement of natural language input
US9069814B2 (en) 2011-07-27 2015-06-30 Wolfram Alpha Llc Method and system for using natural language to generate widgets
US9703533B2 (en) * 2011-08-30 2017-07-11 Embarcadero Technologies, Inc. Application platform for designing and executing applications
CN102289375B (zh) * 2011-09-02 2017-10-20 中兴通讯股份有限公司 代码生成方法及系统
US9734252B2 (en) 2011-09-08 2017-08-15 Wolfram Alpha Llc Method and system for analyzing data using a query answering system
JP5702265B2 (ja) * 2011-11-11 2015-04-15 株式会社日立製作所 プログラム自動生成装置およびプログラム自動生成方法
US9851950B2 (en) 2011-11-15 2017-12-26 Wolfram Alpha Llc Programming in a precise syntax using natural language
EP2610739B1 (en) * 2011-12-29 2017-09-27 Software AG Method and system for executing a 3GL program and / or an assembler program within a 4GL runtime environment
US9405424B2 (en) 2012-08-29 2016-08-02 Wolfram Alpha, Llc Method and system for distributing and displaying graphical items
US9231819B2 (en) * 2012-11-30 2016-01-05 Red Hat Israel, Ltd. Abstracting restful web service HTTP between a client and a server
US20150294423A1 (en) * 2014-04-14 2015-10-15 Thomson Reuters (Markets) Llc Systems and methods for flexible field mapping
WO2016099539A1 (en) * 2014-12-19 2016-06-23 Hewlett Packard Enterprise Development Lp Model-driven architecture for user-centered design
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
US10929759B2 (en) * 2017-04-06 2021-02-23 AIBrain Corporation Intelligent robot software platform
US10963493B1 (en) 2017-04-06 2021-03-30 AIBrain Corporation Interactive game with robot system
US11151992B2 (en) 2017-04-06 2021-10-19 AIBrain Corporation Context aware interactive robot
US10606566B2 (en) 2017-06-03 2020-03-31 Apple Inc. Integration of learning models into a software development system
US10310821B2 (en) * 2017-06-03 2019-06-04 Apple Inc. Integration of learning models into a software development system
US11537368B2 (en) 2017-06-03 2022-12-27 Apple Inc. Integrating machine learning models into an interpreted software development environment
US10459829B2 (en) * 2017-06-07 2019-10-29 M/S. Cigniti Technologies Limited Overall test tool migration pipeline
US10877735B1 (en) 2017-09-25 2020-12-29 Amazon Technologies, Inc. Automated generation of software applications using analysis of submitted content items
US10740550B1 (en) 2017-11-20 2020-08-11 Amazon Technologies, Inc. Network-accessible data management service with web-of-sheets data model
US10705805B1 (en) 2017-12-12 2020-07-07 Amazon Technologies, Inc. Application authoring using web-of-sheets data model
US11954461B2 (en) * 2018-02-26 2024-04-09 Ukg Inc. Autonomously delivering software features
US11586603B1 (en) 2018-05-23 2023-02-21 Amazon Technologies, Inc. Index sheets for robust spreadsheet-based applications
CN109117125B (zh) * 2018-07-20 2021-05-25 北京航空航天大学 数字飞行器多平台多运行模式源代码的人工智能书写方法
US10725748B2 (en) * 2018-11-19 2020-07-28 Microsoft Technology Licensing, Llc Extracting program features for assisting software development
CN110210212A (zh) * 2019-03-14 2019-09-06 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及相关设备
US11194793B1 (en) 2019-06-25 2021-12-07 Amazon Technologies, Inc. Dynamically materialized views for sheets based data
US11086894B1 (en) 2019-06-25 2021-08-10 Amazon Technologies, Inc. Dynamically updated data sheets using row links
US11334324B2 (en) 2019-11-08 2022-05-17 Software Ag Systems and/or methods for error-free implementation of non-java program code on special purpose processors
US11748074B2 (en) 2021-05-28 2023-09-05 Software Ag User exit daemon for use with special-purpose processor, mainframe including user exit daemon, and associated methods
US12020004B1 (en) 2023-08-08 2024-06-25 Eygs Llp Systems and methods to generate human-readable instruction code based on a declarative specification

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989132A (en) * 1988-10-24 1991-01-29 Eastman Kodak Company Object-oriented, logic, and database programming tool with garbage collection
US5159687A (en) 1989-11-14 1992-10-27 Caseworks, Inc. Method and apparatus for generating program code files
GB9105278D0 (en) * 1990-04-27 1991-04-24 Sun Microsystems Inc Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system
US5699310A (en) * 1990-06-29 1997-12-16 Dynasty Technologies, Inc. Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
US5875331A (en) * 1994-09-30 1999-02-23 International Business Machines Corp. System and method for generating target language code utilizing an object oriented code generator
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US5898872A (en) * 1997-09-19 1999-04-27 Tominy, Inc. Software reconfiguration engine

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「情報処理学会研究報告」Vol.89,No.63(1989)(89−DBS−72)P.81−87
「日経オープンシステム」(1993−10)P.135−144

Also Published As

Publication number Publication date
US5875331A (en) 1999-02-23
DE69525706D1 (de) 2002-04-11
JPH08115209A (ja) 1996-05-07
EP0709773A1 (en) 1996-05-01
EP0709773B1 (en) 2002-03-06
US6877155B1 (en) 2005-04-05
DE69525706T2 (de) 2003-04-03

Similar Documents

Publication Publication Date Title
JP3041222B2 (ja) ソース・コード作成システム及び方法
US5675801A (en) Object oriented system and method for generating target language code
US5848274A (en) Incremental byte code compilation system
US5761510A (en) Method for error identification in a program interface
US5680622A (en) System and methods for quickly detecting shareability of symbol and type information in header files
EP1178404B1 (en) Method and system for compiling multiple languages
US5764989A (en) Interactive software development system
KR101137126B1 (ko) 확장성 컴파일러 및 툴의 기반 구조에 대한 기술 언어
US6381737B1 (en) Automatic adapter/stub generator
US6141792A (en) Object oriented framework for specifying the format of compiler output with a template facility
US6874140B1 (en) Debug annotations
JPH0836494A (ja) 動的拡張可能オブジェクト用のタイプ・セーフ・フレームワークのための方法及び装置
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
US8621429B2 (en) Software development support apparatus, function extension method and storage medium for storing function extension program
US5911076A (en) Object oriented framework for creating new emitters for a compiler
JPH0383153A (ja) メツセージ処理システム及び方法
US5991538A (en) System for generating and using programs in an object-oriented environment with a message dispatch architecture
JP2002525744A (ja) テキスト・オブジェクトのコンパイル方法およびシステム
US5715460A (en) Template based facility for formatting compiler output
US20090320007A1 (en) Local metadata for external components
Long et al. Consistent code generation from UML models
US11429358B2 (en) Representing asynchronous state machine in intermediate code
Boujarwah et al. Testing syntax and semantic coverage of Java language compilers
EP0706125A1 (en) Object oriented system and method for generating target language code
JP3085956B2 (ja) オブジェクト指向言語の翻訳処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees