JPH1083293A - 誤り訂正コンパイラ - Google Patents

誤り訂正コンパイラ

Info

Publication number
JPH1083293A
JPH1083293A JP9076916A JP7691697A JPH1083293A JP H1083293 A JPH1083293 A JP H1083293A JP 9076916 A JP9076916 A JP 9076916A JP 7691697 A JP7691697 A JP 7691697A JP H1083293 A JPH1083293 A JP H1083293A
Authority
JP
Japan
Prior art keywords
program
computer
compiler
identifier
unknown
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
JP9076916A
Other languages
English (en)
Inventor
Walter Nielsen
ニールセン ウォルター
James Holmlund
ホームルンド ジェームズ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1083293A publication Critical patent/JPH1083293A/ja
Pending 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/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェア変換を自動化することができる
ツールを備えたシステム及び方法を提供する。 【解決手段】 一つのオペレーティング環境から別のオ
ペレーティング環境へのソフトウェア・プログラムの自
動化された変換を容易にするソフトウェア変換ツール。
より特定的には、コンピュータ・プログラムは、コンピ
ュータ・プログラムによって想定されたソフトウェア環
境以外のソフトウェア環境に対するコンパイラを用いて
コンパイルされる。結果として、コンパイラは、誤りメ
ッセージを生成し、かつ誤りメッセージに応じて、コン
ピュータ・プログラム内のソース・コードは、誤りをも
たらしている条件を除去するために自動的に変更され
る。ソフトウェア変換ツールは、誤り訂正コンパイラ、
即ち、誤りを検出しかつそれらをユーザに与えるだけの
代わりに、それらがリコンパイレーション中に発生しな
いように実際に誤りを訂正することができるコンパイラ
を結果として形成すべく、標準コンパイラでありうる、
コンパイラと共同で動作する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトウェア開発ツー
ルに関し、特にソフトウェア変換ツールに関する。
【0002】
【従来の技術】ソフトウェア開発は、時間が掛かりかつ
面倒な処理である。先に書かれたソフトウェアを保守し
かつ再加工することは、少なくとも同様に面倒である。
幾度も、一つのソフトウェア環境において走るべく書か
れたプログラムを別の異なるソフトウェア環境において
走るフォームに変換するための必要性が生じる。そのよ
うな変換は、古いシステムを参照するプログラムにおけ
る全ての言語構成要素を見出しかつ新しいシステムを参
照する言語構成要素でそれらを置換することを必要とす
る。プログラムが大きく、数十万または百万のコードの
ラインを含んでいるならば、手動でそのような変換を実
行することは、膨大なタスクである。明らかに、そのよ
うな変換を実行する機械援助型方法を工夫することが望
ましい。
【0003】
【発明が解決しようとする課題】残念ながら、特定テキ
スト・ストリングの全ての発生が異なる特定テキスト・
ストリングで置換されるような、簡単な“探索及び置
換”戦略は、有用な結果を供給するにはあまりにも簡単
すぎる。自然言語におけるようにコンピュータ言語にお
いて、特定言語構成要素の意味は、かなりコンテキスト
−依存性である。時々、例えば、ネームのローカル・バ
ージョンが現れる。ネームのローカル・バージョンを汎
用の新しいネームで置換することは、走らないかまたは
正しく走らないプログラムを結果として生ずる。従っ
て、上記した型のソフトウェア変換を、可能な限り、自
動化するソフトウェア・ツールに対する必要性が存在す
る。
【0004】本発明の目的は、上記従来の技術の必要性
に応じて、ソフトウェア変換を自動化することができる
ツールを備えたシステム及び方法を提供することであ
る。
【0005】
【課題を解決するための手段】本発明の上記目的は、第
2の、異なるソフトウェア環境で走る変更されたコンピ
ュータ・プログラムを生成するために第1のソフトウェ
ア環境で走るべく書かれたコンピュータ・プログラムを
変更するコンピュータ−インプリメンティッド方法であ
って:コンピュータ・プログラムに現されるプログラム
識別子及び変更されたコンピュータ・プログラムで用い
られるべき異なるプログラム識別子を含んでいるデータ
ベース・エントリを包含している辞書データベースをア
センブルし;第2の異なるソフトウェア環境に対するコ
ンパイラを用いてコンピュータ・プログラムをコンパイ
ルし、コンパイラは、未知のプログラム識別子に出会っ
たとき、未知のプログラム識別子を含んでいる誤りメッ
セージを生成し;誤りメッセージに応じて、それで未知
のプログラム識別子を置換するエントリをデータベース
から検索し;かつエントリに含まれた異なるプログラム
識別子でコンピュータ・プログラムの未知のプログラム
識別子の少なくとも一例を置換する段階を具備するコン
ピュータ−インプリメンティッド方法によって達成され
る。
【0006】本発明の方法では、第2の異なるソフトウ
ェア環境に対するコンパイラを用いてコンピュータ・プ
ログラムをリコンパイルする更なる段階を具備するよう
にしてもよい。本発明の方法では、上記記載の段階を複
数回繰り返すことを具備するようにしてもよい本発明の
方法では、異なるプログラム識別子がデータベースに含
まれるような各未知識別子が、その異なるプログラム識
別子によって置換されるまで上記記載の段階を複数回繰
り返すことを具備するようにしてもよい。本発明の方法
では、コンパイラによって生成された誤りメッセージに
対するデータベースにおいてエントリが見出されなくな
るまで上記記載の段階を複数回繰り返すことを具備する
ようにしてもよい。
【0007】また、本発明の上記目的は、コンピュータ
・プログラムによって想定されたソフトウェア環境以外
のソフトウェア環境に対するコンパイラを用いてコンピ
ュータ・プログラムをコンパイルし、コンパイリング・
オペレーションは、誤りメッセージを生成し;かつ誤り
メッセージに応じて、誤りをもたらしている条件を除去
するためにコンピュータ・プログラム内のソース・コー
ドを自動的に変更する段階を具備するコンピュータ−イ
ンプリメンティッド方法によって達成される。本発明の
方法では、コンピュータ・プログラムをコンパイルする
前に、コンピュータ・プログラムに現されるプログラム
識別子及び変更されたコンピュータ・プログラムで用い
られるべき異なるプログラム識別子を含んでいるデータ
ベース・エントリを包含している辞書データベースをア
センブルする段階を更に具備するようにしてもよい。
【0008】本発明の方法では、変更する段階は、:誤
りメッセージに応じて、未知プログラム識別子に対する
エントリをデータベースから検索し;かつエントリに含
まれた異なるプログラム識別子で未知プログラム識別子
の少なくとも一例を置換することを具備するようにして
もよい。本発明の方法では、第2の異なるソフトウェア
環境に対するコンパイラを用いてコンピュータ・プログ
ラムをリコンパイルする更なる段階を具備するようにし
てもよい。本発明の方法では、上記記載の段階を複数回
繰り返すことを具備するようにしてもよい。本発明の方
法では、コンパイラが誤りメッセージを生成しなくなる
まで上記記載の段階を繰り返すことを具備するようにし
てもよい。
【0009】本発明の方法では、コンパイラによって生
成された誤りメッセージに対するデータベースにおいて
エントリが見出されなくなるまで上記記載の段階を繰り
返すことを具備するようにしてもよい。更に、本発明の
上記目的は、第1のソフトウェア環境に対して書かれた
プログラムを第2の、異なるソフトウェア環境に対する
変換されたプログラムに変換するコンピュータ・ソフト
ウェア・システムであって:未知プログラム識別子がプ
ログラムで出会うときに誤りメッセージを生成する、第
2の、異なるソフトウェア環境に対するコンパイラ;コ
ンパイラから誤りメッセージを受取りかつ未知プログラ
ム識別子及びプログラム内の未知プログラム識別子の位
置を出力するパーサ;未知プログラム識別子及び変換さ
れたコンピュータ・プログラムで用いられるべき異なる
プログラム識別子を含んでいるデータベース・エントリ
を包含しており、未知プログラム識別子を受取りかつ異
なるプログラム識別子をそれに応じて出力する辞書デー
タベース;及びコンピュータ・プログラム内の異なるプ
ログラム識別子で未知プログラム識別子を置換するため
に未知プログラム識別子の位置及び異なるプログラム識
別子に応答する置換コードを備えているコンピュータ・
ソフトウェア・システムによって達成される。
【0010】本発明のシステムでは、それにより変換さ
れたプログラムを生成すべくシステムを反復的に置換及
びリコンパイルさせるコンパイラ、パーサ、データベー
ス、及び置換コードに結合された制御コードを更に備え
てもよい。本発明の上記目的は、その中に構成されたコ
ンピュータ読取り可能プログラム・コードを有している
コンピュータ使用可能媒体を含んでいる製造物におけ
る、コンピュータ読取り可能コードであって:コンパイ
ラからの誤りメッセージに応じて、コンパイラにより知
られていない未知プログラム識別子に対するエントリを
データベースから検索すべく構成されるコンピュータ読
取り可能プログラム・コード;及びデータベースのエン
トリに包含された異なるプログラム識別子で未知プログ
ラム識別子の少なくとも一例を置換すべく構成されたコ
ンピュータ読取り可能プログラム・コードを備えている
コンピュータ読取り可能コードによって達成される。
【0011】
【作用】本発明は、一般的に言えば、一つのオペレーテ
ィング環境から別のオペレーティング環境へのソフトウ
ェア・プログラムの自動化された変換を容易にするソフ
トウェア変換ツールを提供する。本発明の一実施例によ
れば、コンピュータ・プログラムは、コンピュータ・プ
ログラムによって想定されたソフトウェア環境以外のソ
フトウェア環境に対するコンパイラを用いてコンパイル
される。結果として、コンパイラは、誤りメッセージを
生成する。誤りメッセージに応じて、コンピュータ・プ
ログラム内のソース・コードは、誤りをもたらす条件を
除去するために自動的に変更される。ソフトウェア変換
ツールは、誤り訂正コンパイラ、即ち、誤りを検出しか
つユーザにそれらを与えるだけの代わりに、それらがリ
コンパイレーション中に発生しないように誤りを実際に
訂正することができるコンパイラを結果として形成すべ
く、標準コンパイラでありうる、コンパイラと共同して
動作する。
【0012】本発明は、添付した図面に関する以下の説
明から更に理解されうる。
【0013】
【実施例】誤り訂正コンパイラが用いられうるコンピュ
ータ・システムがまず説明され、より特定的に誤り訂正
コンパイラそれ自体の説明が続く。図1をまず参照する
と、誤り訂正コンパイラは、モニタ110、キーボード
120及びマウス130を有している、図示された型の
コンピュータ・ワークステーションで用いられうる。マ
ウス・カーソル140は、モニタ画面上に現れかつマウ
スが動かされるように動く。図1のコンピュータ・ワー
クステーションの内部ハードウェアは、図2に示すよう
な簡略化されたブロック図の形で表されうる。コンピュ
ータ・システムは、中央処理装置202、システム・メ
モリ204、ディスプレイ206、プリンタ208、キ
ーボード210、ポインティング・デバイス212、デ
ィスク記憶サブシステム214、I/Oコントローラ2
16、及びシステム・バスのような相互接続手段218
を有する。
【0014】本発明のハードウェア環境を説明したの
で、誤り訂正コンパイラのソフトウェア・コンポーネン
ト及びそれらの相関関係をより特定的に図3を参照して
ここで説明する。誤り訂正コンパイラは、実際にはソフ
トウェア変換プログラムと共同で動作している標準コン
パイラである。一実施例では、ソフトウェア変換プログ
ラムは、一つのアプリケーション・インターフェイス
(例えば、NextStep) とコンパチブルなオブジェクティ
ブCプログラムを別のアプリケーション・インターフェ
イス(例えば、OpenStep) とコンパチブルなオブジェク
ティブCプログラムに変換するために用いられ、かつオ
ブジェクティブCの一つのバージョンから別のバージョ
ンにコードを変換するプログラムによって実行される機
能を示している、“cvtcc ”と名前が付けられる。
【0015】図3を参照すると、変換プログラム310
は、4つの主コンポーネント、単純構文解析系(シンプ
ル・パーサ)311、データベース313、置換(subst
itution)プログラム315及び制御プログラム317を
有する。変換プログラム310は、古いソフトウェア環
境を想定する古いプログラム330を、新しいソフトウ
ェア環境を想定する新しいプログラム340の中に変換
すべく標準コンパイラ320と共同で動作する。パーサ
311及び置換プログラム315は、アクセス・プログ
ラムとして一緒に機能する。データベース313及びア
クセス・プログラムは、古い言語構成要素を新しい言語
構成要素の中にマップする。特に、パーサ311は、コ
ンパイラ20から誤りメッセージを受け取りかつ古い資
源名及びファイル名及び古い資源名が現れるライン番号
を誤りメッセージから抽出する。古い名前は、データベ
ース313における対応している新しい名前を調べるた
めに用いられる。新しい名前、ファイル名及びライン番
号は、次いで、古い名前に対する新しい名前の実際の置
換を実行する、置換プログラム315に供給される。デ
ータベースは、古いソフトウェア環境及び新しいソフト
ウェア環境の両方に慣れている有能なプログラマによっ
て手動で構築される。
【0016】古いプログラムを新しいプログラムに変換
するために、変換プログラム310は、制御プログラム
317によって繰り返し走らされる。まず、ユーザは、
古いプログラムをコンパイルするために、古いシステム
環境の代わりに新しいシステム環境にコンパイルすべく
設計または構成された、コンパイラを呼出す。結果とし
て、古いシステム言語構成要素の使用で誤りが生成され
る。制御プログラムの制御下で、誤り訂正コンパイラ
(即ち、コンパイラ320と共同する変換プログラム3
10)は、一つ以上の古いシステム構成要素を変換デー
タベースにおいて見出される対応している新しい構成要
素で繰り返し置換しかつリコンパイルする。それゆえ
に、誤り訂正コンパイラは、それ以上の誤りをフィック
スすることができなくなるまで合成誤りをフィックスす
るような、実際のコンパイラを呼出し続ける。
【0017】より特定的に図4を参照すると、誤り訂正
コンパイラが走り始めるとき、フラグfixedSome (フィ
ックスド・サム)は、false (フォールス)に設定され
る(ステップ401)。レギュラ・コンパイラは、次い
で、変換されるべきプログラムをコンパイルすべく呼出
され、かつコンパイラからの誤りリスティングが捕捉さ
れる(ステップ403)。次いで、最初の誤りメッセー
ジがパースされる(ステップ405)。誤りが認識され
る型のものではないならば(ステップ407)、そして
次の誤りメッセージが存在するならば(ステップ40
9)、それは、パースされる、等。誤りが認識される
型、即ち、“identifier not found”(識別子が見出さ
れなかった)メッセージのような、誤り訂正コンパイラ
がフィックスすることが可能でありうる型のものであれ
ば(ステップ407)、古いプログラム的構成要素の名
前は、古い名前への参照の位置(ファイル、ライン番
号)と一緒に、誤りメッセージから抽出される(ステッ
プ411)。古い名前は、次いで、データベースにおい
て調べられる(ステップ413)。古い名前がデータベ
ースにおいて見出されなければ(ステップ415)、次
の誤りメッセージ(あれば)が処理される。古い名前が
データベースにおいて見出されるならば(ステップ41
5)、古い名前は、データベースにおいて見出される新
しい名前で置換され(ステップ417)、その後フラグ
fixedSome は、真に設定される(ステップ419)。
【0018】上記オペレーションのシーケンスは、次の
誤りメッセージが存在しなくなるまで誤りメッセージの
全てに対して実行される(ステップ409)。次いで、
fixedSome が真であれば(ステップ421)、処理は、
fixedSome をfalse にリセットし(ステップ401)か
つ変更されたプログラムをリコンパイルする(ステップ
403)ことによって、始めから繰り替えされる。オペ
レーションは、誤り訂正コンパイラがそれ以上の誤りを
フィックスすることができなくなるまで、即ち、ステッ
プ421でfixedSome がfalse に留まるまでこのファッ
ションで進行する。次いで誤り訂正コンパイラは、停止
する。誤り訂正コンパイラがフィックスすることができ
なかった誤りは、次いで、手動でフィックスされうる。
【0019】誤り訂正コンパイラは、次に示す添付資料
からさらに理解されうる。表1に示す添付資料Aは、サ
ンプル・データベースのリスティングである。表2に示
す添付資料Bは、誤り訂正コンパイラの使用中に生成さ
れた画面プリントアウトである。
【0020】
【表1】
【0021】
【表2】 添付資料Aを参照すると、説明された実施例における、
データベースは、非常に簡単な構成である。最初のテキ
スト・カラムで始まっているエントリは、置換されるべ
き古い名前である。置換エントリがデータベースにおい
て見出されるならば、それは、第2のテキスト・カラム
で始まっている、直後のラインに入力される。全ての古
い名前が対応している新しい名前をもっているわけでは
なく、その逆もそうである。記号“#”、“@”、
“+”、“−”は、オブジェクティブCにおいて認識さ
れた意味を有する。添付資料Bを参照すると、誤り訂正
コンパイラのオペレーションの具体的な例を供給するた
めに、SparcStation(スパークステーション)・コンピ
ュータで走っておりかつSunOS (サンオーエス)オペレ
ーティング・システム下で走っている誤り訂正コンパイ
ラのバージョンは、ライン1〜7の例示プログラムに呼
出された。ライン8から始まって、コンパイラが走らさ
せ、ライン11〜14にリストされた4つの誤りメッセ
ージを結果として生ずる。ライン16から始まって、変
換プログラムは、コンパイラによって生成された誤りメ
ッセージ・ファイルを用いて走らさせる。変換プログラ
ムは、組込みファイル誤りをフィックスすることをまず
試みる。そこでライン21〜24において、変換プログ
ラムは、それが、データベースにおいて特定されたよう
に組込みファイルの名前を変更したことを報告する。コ
ンパイラは、次いで、変更されたプログラムをリコンパ
イルすべく再び呼出される(ライン26)。更なる誤り
メッセージに報告された誤りは、次いで、フィックスさ
れる。ライン44では、誤り訂正コンパイラは、可能な
限り全ての誤りをフィックスしたことを報告する。合成
変更プログラムは、ライン48〜54にリストされる。
オリジナル・プログラムの“Menu”は、“NSMenu”に変
更され、かつ“initTitle ”は、“initWithTitle ”に
変更されたということに注目する。
【0022】本発明は、その精神または重要な特徴から
逸脱することなく他の特定のフォームで実施することが
できるということが当業者によって理解されるであろ
う。上述の記載は、従って全ての関して説明のためであ
り限定的でなものではない。本発明の範疇は、特許請求
の範囲によって示され、かつその同等物の意味及び範囲
内にある全ての変更は、その中に含まれることを意図す
る。
【0023】
【発明の効果】本発明のコンピュータ−インプリメンテ
ィッド方法は、第2の、異なるソフトウェア環境で走る
変更されたコンピュータ・プログラムを生成するために
第1のソフトウェア環境で走るべく書かれたコンピュー
タ・プログラムを変更するコンピュータ−インプリメン
ティッド方法であって:コンピュータ・プログラムに現
されるプログラム識別子及び変更されたコンピュータ・
プログラムで用いられるべき異なるプログラム識別子を
含んでいるデータベース・エントリを包含している辞書
データベースをアセンブルし;第2の異なるソフトウェ
ア環境に対するコンパイラを用いてコンピュータ・プロ
グラムをコンパイルし、コンパイラは、未知のプログラ
ム識別子に出会ったとき、未知のプログラム識別子を含
んでいる誤りメッセージを生成し;誤りメッセージに応
じて、それで未知のプログラム識別子を置換するエント
リをデータベースから検索し;かつエントリに含まれた
異なるプログラム識別子でコンピュータ・プログラムの
未知のプログラム識別子の少なくとも一例を置換する段
階を具備するので、ソフトウェア変換を可能な限り自動
化することができる。
【0024】本発明のコンピュータ−インプリメンティ
ッド方法は、コンピュータ・プログラムによって想定さ
れたソフトウェア環境以外のソフトウェア環境に対する
コンパイラを用いてコンピュータ・プログラムをコンパ
イルし、コンパイリング・オペレーションは、誤りメッ
セージを生成し;かつ誤りメッセージに応じて、誤りを
もたらしている条件を除去するためにコンピュータ・プ
ログラム内のソース・コードを自動的に変更する段階を
具備するので、ソフトウェア変換を可能な限り自動化す
ることができる。本発明のコンピュータ・ソフトウェア
・システムは、第1のソフトウェア環境に対して書かれ
たプログラムを第2の、異なるソフトウェア環境に対す
る変換されたプログラムに変換するコンピュータ・ソフ
トウェア・システムであって:未知プログラム識別子が
プログラムで出会うときに誤りメッセージを生成する、
第2の、異なるソフトウェア環境に対するコンパイラ;
コンパイラから誤りメッセージを受取りかつ未知プログ
ラム識別子及びプログラム内の未知プログラム識別子の
位置を出力するパーサ;未知プログラム識別子及び変換
されたコンピュータ・プログラムで用いられるべき異な
るプログラム識別子を含んでいるデータベース・エント
リを包含しており、未知プログラム識別子を受取りかつ
異なるプログラム識別子をそれに応じて出力する辞書デ
ータベース;及びコンピュータ・プログラム内の異なる
プログラム識別子で未知プログラム識別子を置換するた
めに未知プログラム識別子の位置及び異なるプログラム
識別子に応答する置換コードを備えているので、ソフト
ウェア変換を可能な限り自動化することができる。
【0025】本発明のコンピュータ読取り可能コード
は、その中に構成されたコンピュータ読取り可能プログ
ラム・コードを有しているコンピュータ使用可能媒体を
含んでいる製造物における、コンピュータ読取り可能コ
ードであって:コンパイラからの誤りメッセージに応じ
て、コンパイラにより知られていない未知プログラム識
別子に対するエントリをデータベースから検索すべく構
成されるコンピュータ読取り可能プログラム・コード;
及びデータベースのエントリに包含された異なるプログ
ラム識別子で未知プログラム識別子の少なくとも一例を
置換すべく構成されたコンピュータ読取り可能プログラ
ム・コードを備えているので、ソフトウェア変換を可能
な限り自動化することができる。
【図面の簡単な説明】
【図1】本発明が用いられうる通常のコンピュータ・ワ
ークステーションの斜視図である;
【図2】図1のコンピュータ・ワークステーションの一
部のブロック図である;
【図3】本発明の誤り訂正コンパイラのブロック図であ
る;
【図4】図3の誤り訂正コンパイラのオペレーションを
説明するフロー図である。
【符号の説明】
310 変換プログラム 311 単純構文解析系(シンプル・パーサ) 313 データベース 315 置換プログラム 317 制御プログラム 320 標準コンパイラ 330 古いプログラム 340 新しいプログラム
フロントページの続き (72)発明者 ジェームズ ホームルンド アメリカ合衆国 カリフォルニア州 94303 パロ アルト アーストワイルド コート 73

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 第2の、異なるソフトウェア環境で走る
    変更されたコンピュータ・プログラムを生成するために
    第1のソフトウェア環境で走るべく書かれたコンピュー
    タ・プログラムを変更するコンピュータ−インプリメン
    ティッド方法であって:コンピュータ・プログラムに現
    されるプログラム識別子及び変更されたコンピュータ・
    プログラムで用いられるべき異なるプログラム識別子を
    含んでいるデータベース・エントリを包含している辞書
    データベースをアセンブルし;第2の異なるソフトウェ
    ア環境に対するコンパイラを用いてコンピュータ・プロ
    グラムをコンパイルし、コンパイラは、未知のプログラ
    ム識別子に出会ったとき、未知のプログラム識別子を含
    んでいる誤りメッセージを生成し;誤りメッセージに応
    じて、それで未知のプログラム識別子を置換するエント
    リをデータベースから検索し;かつエントリに含まれた
    異なるプログラム識別子でコンピュータ・プログラムの
    未知のプログラム識別子の少なくとも一例を置換する段
    階を具備することを特徴とするコンピュータ−インプリ
    メンティッド方法。
  2. 【請求項2】 第2の異なるソフトウェア環境に対する
    コンパイラを用いてコンピュータ・プログラムをリコン
    パイルする更なる段階を具備することを特徴とする請求
    項1に記載の方法。
  3. 【請求項3】 請求項2に記載の段階を複数回繰り返す
    ことを具備する請求項2に記載の方法。
  4. 【請求項4】 異なるプログラム識別子がデータベース
    に含まれるような各未知識別子が、その異なるプログラ
    ム識別子によって置換されるまで請求項2に記載の段階
    を複数回繰り返すことを具備する請求項3に記載の方
    法。
  5. 【請求項5】 コンパイラによって生成された誤りメッ
    セージに対するデータベースにおいてエントリが見出さ
    れなくなるまで請求項2に記載の段階を複数回繰り返す
    ことを具備する請求項3に記載の方法。
  6. 【請求項6】 コンピュータ・プログラムによって想定
    されたソフトウェア環境以外のソフトウェア環境に対す
    るコンパイラを用いてコンピュータ・プログラムをコン
    パイルし、コンパイリング・オペレーションは、誤りメ
    ッセージを生成し;かつ誤りメッセージに応じて、誤り
    をもたらしている条件を除去するためにコンピュータ・
    プログラム内のソース・コードを自動的に変更する段階
    を具備することを特徴とするコンピュータ−インプリメ
    ンティッド方法。
  7. 【請求項7】 コンピュータ・プログラムをコンパイル
    する前に、コンピュータ・プログラムに現されるプログ
    ラム識別子及び変更されたコンピュータ・プログラムで
    用いられるべき異なるプログラム識別子を含んでいるデ
    ータベース・エントリを包含している辞書データベース
    をアセンブルする段階を更に具備することを特徴とする
    請求項6に記載の方法。
  8. 【請求項8】 変更する段階は、:誤りメッセージに応
    じて、未知プログラム識別子に対するエントリをデータ
    ベースから検索し;かつエントリに含まれた異なるプロ
    グラム識別子で未知プログラム識別子の少なくとも一例
    を置換することを具備することを特徴とする請求項7に
    記載の方法。
  9. 【請求項9】 第2の異なるソフトウェア環境に対する
    コンパイラを用いてコンピュータ・プログラムをリコン
    パイルする更なる段階を具備することを特徴とする請求
    項8に記載の方法。
  10. 【請求項10】 請求項9に記載の段階を複数回繰り返
    すことを具備する請求項9に記載の方法。
  11. 【請求項11】 コンパイラが誤りメッセージを生成し
    なくなるまで請求項9に記載の段階を繰り返すことを具
    備する請求項10に記載の方法。
  12. 【請求項12】 コンパイラによって生成された誤りメ
    ッセージに対するデータベースにおいてエントリが見出
    されなくなるまで請求項9に記載の段階を繰り返すこと
    を具備する請求項10に記載の方法。
  13. 【請求項13】 第1のソフトウェア環境に対して書か
    れたプログラムを第2の、異なるソフトウェア環境に対
    する変換されたプログラムに変換するコンピュータ・ソ
    フトウェア・システムであって:未知プログラム識別子
    がプログラムで出会うときに誤りメッセージを生成す
    る、第2の、異なるソフトウェア環境に対するコンパイ
    ラ;コンパイラから誤りメッセージを受取りかつ未知プ
    ログラム識別子及びプログラム内の未知プログラム識別
    子の位置を出力するパーサ;未知プログラム識別子及び
    変換されたコンピュータ・プログラムで用いられるべき
    異なるプログラム識別子を含んでいるデータベース・エ
    ントリを包含しており、未知プログラム識別子を受取り
    かつ異なるプログラム識別子をそれに応じて出力する辞
    書データベース;及びコンピュータ・プログラム内の異
    なるプログラム識別子で未知プログラム識別子を置換す
    るために未知プログラム識別子の位置及び異なるプログ
    ラム識別子に応答する置換コードを備えていることを特
    徴とするコンピュータ・ソフトウェア・システム。
  14. 【請求項14】 それにより変換されたプログラムを生
    成すべくシステムを反復的に置換及びリコンパイルさせ
    るコンパイラ、パーサ、データベース、及び置換コード
    に結合された制御コードを更に備えていることを特徴と
    する請求項13に記載の装置。
  15. 【請求項15】 その中に構成されたコンピュータ読取
    り可能プログラム・コードを有しているコンピュータ使
    用可能媒体を含んでいる製造物における、コンピュータ
    読取り可能コードであって:コンパイラからの誤りメッ
    セージに応じて、コンパイラにより知られていない未知
    プログラム識別子に対するエントリをデータベースから
    検索すべく構成されるコンピュータ読取り可能プログラ
    ム・コード;及びデータベースのエントリに包含された
    異なるプログラム識別子で未知プログラム識別子の少な
    くとも一例を置換すべく構成されたコンピュータ読取り
    可能プログラム・コードを備えていることを特徴とする
    コンピュータ読取り可能コード。
JP9076916A 1996-04-01 1997-03-28 誤り訂正コンパイラ Pending JPH1083293A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/625,376 US5905892A (en) 1996-04-01 1996-04-01 Error correcting compiler
US08/625376 1996-04-01

Publications (1)

Publication Number Publication Date
JPH1083293A true JPH1083293A (ja) 1998-03-31

Family

ID=24505791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9076916A Pending JPH1083293A (ja) 1996-04-01 1997-03-28 誤り訂正コンパイラ

Country Status (3)

Country Link
US (1) US5905892A (ja)
EP (1) EP0827072A1 (ja)
JP (1) JPH1083293A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015026365A (ja) * 2013-07-26 2015-02-05 富士通株式会社 ソースコードをポーティングする方法及び装置

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026233A (en) * 1997-05-27 2000-02-15 Microsoft Corporation Method and apparatus for presenting and selecting options to modify a programming language statement
US6367068B1 (en) * 1998-11-13 2002-04-02 Microsoft Corporation Dynamic parsing
US6611924B1 (en) * 1999-07-16 2003-08-26 Lucent Technologies Inc. Reducing code size of debug output statements
US6496976B1 (en) * 1999-08-05 2002-12-17 Unisys Corporation Method and system for dynamic recompilation of statements of a first language embedded in a program having statements of a second language
US20110191747A1 (en) * 1999-10-05 2011-08-04 Borland Software Corporation Supporting and deploying distributed computing components
US7337437B2 (en) * 1999-12-01 2008-02-26 International Business Machines Corporation Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code
US6715109B1 (en) 2000-02-04 2004-03-30 International Business Machines Corporation Method, computer program product, and system for making standard stream data accessible that would otherwise be lost in application programs
US7127704B2 (en) * 2000-06-02 2006-10-24 Sun Microsystems, Inc. Interactive software engineering tool with support for embedded lexical contexts
US6578196B1 (en) 2000-06-07 2003-06-10 International Business Machines Corporation Checking of units and dimensional homogeneity of expressions in computer programs
US8176108B2 (en) * 2000-06-20 2012-05-08 International Business Machines Corporation Method, apparatus and computer program product for network design and analysis
US7406682B2 (en) * 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
JP2003006255A (ja) * 2001-06-22 2003-01-10 Fujitsu Ltd Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体
US7117479B2 (en) * 2001-10-01 2006-10-03 Sun Microsystems, Inc. Language-sensitive whitespace adjustment in a software engineering tool
US7386834B2 (en) * 2002-06-28 2008-06-10 Sun Microsystems, Inc. Undo/redo technique for token-oriented representation of program code
US20040003374A1 (en) * 2002-06-28 2004-01-01 Van De Vanter Michael L. Efficient computation of character offsets for token-oriented representation of program code
US20040003373A1 (en) * 2002-06-28 2004-01-01 Van De Vanter Michael L. Token-oriented representation of program code with support for textual editing thereof
US7331042B2 (en) * 2002-12-21 2008-02-12 International Business Machines Corporation Fault-tolerant dynamic editing of GUI display and source code
US20040225997A1 (en) * 2003-05-06 2004-11-11 Sun Microsystems, Inc. Efficient computation of line information in a token-oriented representation of program code
US20040225998A1 (en) * 2003-05-06 2004-11-11 Sun Microsystems, Inc. Undo/Redo technique with computed of line information in a token-oriented representation of program code
US7171544B2 (en) * 2003-12-15 2007-01-30 International Business Machines Corporation Run-time parallelization of loops in computer programs by access patterns
US8127181B1 (en) * 2007-11-02 2012-02-28 Nvidia Corporation Hardware warning protocol for processing units
EP2360590A3 (en) * 2009-12-10 2011-10-26 Prelert Ltd. Apparatus and method for analysing a computer infrastructure
US20150235312A1 (en) 2014-02-14 2015-08-20 Stephen Dodson Method and Apparatus for Detecting Rogue Trading Activity
EP2645257A3 (en) 2012-03-29 2014-06-18 Prelert Ltd. System and method for visualisation of behaviour within computer infrastructure
US9678728B1 (en) * 2012-03-29 2017-06-13 Emc International Company Version compatibility
GB2519941B (en) 2013-09-13 2021-08-25 Elasticsearch Bv Method and apparatus for detecting irregularities on device
US9110672B2 (en) 2013-11-07 2015-08-18 International Business Machines Corporation Compiler generation of thunking code
US11017330B2 (en) 2014-05-20 2021-05-25 Elasticsearch B.V. Method and system for analysing data
CN112631599B (zh) * 2020-12-09 2024-03-19 潍柴动力股份有限公司 编译方法、装置和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2240861A (en) * 1990-02-09 1991-08-14 Hewlett Packard Co Apparatus and method for adapting computer program from one operating environment to another
US5459868A (en) * 1990-11-30 1995-10-17 St Computer Systems & Services Interpretive object-oriented facility which can access pre-compiled classes
US5598560A (en) * 1991-03-07 1997-01-28 Digital Equipment Corporation Tracking condition codes in translation code for different machine architectures
US5673390A (en) * 1992-09-03 1997-09-30 International Business Machines Corporation Method and system for displaying error messages
US5432942A (en) * 1993-06-10 1995-07-11 The United States Of America As Represented By The Secretary Of The Navy Data structure extraction, conversion and display tool
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US5519867A (en) * 1993-07-19 1996-05-21 Taligent, Inc. Object-oriented multitasking system
DE69430421T2 (de) * 1994-01-14 2003-03-06 Sun Microsystems Inc Verfahren und Gerät zur Automatisierung der Umgebungsanpassung von Rechnerprogrammen
US5675803A (en) * 1994-01-28 1997-10-07 Sun Microsystems, Inc. Method and apparatus for a fast debugger fix and continue operation
US5581697A (en) * 1994-01-28 1996-12-03 Sun Microsystems, Inc. Method and apparatus for run-time error checking using dynamic patching

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015026365A (ja) * 2013-07-26 2015-02-05 富士通株式会社 ソースコードをポーティングする方法及び装置

Also Published As

Publication number Publication date
EP0827072A1 (en) 1998-03-04
US5905892A (en) 1999-05-18

Similar Documents

Publication Publication Date Title
JPH1083293A (ja) 誤り訂正コンパイラ
KR0125774B1 (ko) 대화형 소프트웨어 애플리케이션내 텍스트 필드의 번역을 용이하게 하기 위한 방법 및 그를 포함하는 데이터 처리 시스템
US7334219B2 (en) Method and system for object level software testing
JP3963394B2 (ja) ソフトウェア障害情報をレポートするための装置
US7536294B1 (en) Method and apparatus for translating computer programs
US7937688B2 (en) System and method for context-sensitive help in a design environment
EP1021762B1 (en) Program-interface converter for multiple-platform computers
US8875103B2 (en) Method of testing multiple language versions of a software system using one test script
US5287444A (en) Message processing system
US8156478B2 (en) Optimized program analysis
US20040158820A1 (en) System for generating an application framework and components
US20040199516A1 (en) Source information adapter and method for use in generating a computer memory-resident hierarchical structure for original source information
CN108762743B (zh) 一种数据表操作代码生成方法及装置
GB2360609A (en) Dynamically generating expanded user messages in a computer system
JPH10326255A (ja) 言語から独立したメッセージの操作方法
US20110144972A1 (en) Method and System for Generating a Localized Software Product
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
US7313785B2 (en) Method and system for generating executable code for formatting and printing complex data structures
GB2321731A (en) Remote compiling of computer source code for cross development
CN112379917B (zh) 浏览器兼容性提升方法、装置、设备及存储介质
JP2001084147A (ja) 文字列変換装置、文字列変換方法及び、記録媒体
US7415405B2 (en) Database script translation tool
Andrews et al. The formal definition of Modula-2 and its associated interpreter
WO2000055786A9 (en) Multilingual vehicle servicing equipment
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法