JP2001516079A - 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ - Google Patents
複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータInfo
- Publication number
- JP2001516079A JP2001516079A JP2000510073A JP2000510073A JP2001516079A JP 2001516079 A JP2001516079 A JP 2001516079A JP 2000510073 A JP2000510073 A JP 2000510073A JP 2000510073 A JP2000510073 A JP 2000510073A JP 2001516079 A JP2001516079 A JP 2001516079A
- Authority
- JP
- Japan
- Prior art keywords
- platform
- template
- code
- interface module
- functions
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Communication Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
に書込まれたアプリケーション・プログラムを、異なるプラットフォームでも実
行できるようにするエミュレータとともに使用され、アプリケーション・プログ
ラム・インターフェース(APLs)を、あるプラットフォームから他のプラットフ
ォームに翻訳する翻訳コード・モジュールのセットを生成するためのソフトウェ
アツールに関する。
ステムのハードウェアに対し、直接的にインターフェースされることはほとんど
ない。その代わり、アプリケーション・プログラム・インターフェース(APIs)
が、ハードウェアを制御するコード・モジュール、又は まだ下位層に置かれた
プログラムされたインターフェースを呼出す。大半のAPIコード・モジュールは 、オペレーティング・システム(OS)内に在り、その他のものは、基本入出力シ
ステム(BIOS)、或いは他の場所に存在する。API機能を果たすコード・モジュ ールは、通常、数十、数百に近いAPI機能を実行するためのルーチンを各々含む 自立構造をした複数のダイナミック・・ライブラリ(DLL)ファイル内に存在す る。
グラムを実行するには、オペレーティング・システム、つまり、もう1つのプラ
ットフォームである他のプラットフォームは、エミュレータ、シミュレータ、イ
ンタープリタ、又はトランスレータのような、色々知られているプログラムを必
要とし、このプログラムによって、命令、データ・フォーマット、アプリケーシ
ョン・プログラム・インターフェース(APIs)、及び アプリケーションの他の
特性を、その原プラットフォームのものから、該エミュレータが実行される固有
プラットフォームの特性に変換する。原プラットフォームが交換される時にも、
元から在るアプリケーションは、新しいプラットフォームにおいても実行され続
けなくてはならない。プログラムが、抽象的なプラットフォームに書込まれてい
る場合には、この抽象的なプラットフォームを扱う各々の固有プラットフォーム
にエミュレータを書込むたけで、同じアプリケーションを多くの異なるプラット
フォームにおいて実行させることが可能である。
しいプラットフォームの中央演算処理装置に相応しい複数の又は複数グループの
命令に変換する。API翻訳層は、固有プラットフォーム用に書込まれたAPIsに対 する呼出しにエミュートされている原プラットフォームからのAPI呼出しを「サ ンク(thunk)」する。つまり、API翻訳層は、エミュレートされたプラットフォー
ム用に書込まれたアプリケーションによって作られたAPI呼出しを遮り、それら の引数を、原プラットフォームの呼出し変換から、固有プラットフォームの呼出
し変換へと変換することによって、API機能を実行するに相応しい固有プラット フォーム・モジュールを呼出す。
用されている。しかし、APIセットは、オペレーティング・システムの進歩とと もに、日々変化する可能性がある。また、APIの数も、非常に多くなる可能性が ある。例えば、マイクロソフト・ウインドウズ NTのオペレーティング・システ
ムは、42の異なるDLLモジュールにおいて3500を越すAPIを含んでいる。従って、
手作業による個々のAPI翻訳コードの作成は、益々非現実的なものとなっている 。益々短くなる商品サイクルは、この問題を倍化している。
API自身から分離した状態に維持されなくてはならず、コスト的に余分な努力が 必要とされる。また、インターフェース・モジュールは、「同期化」の問題に苦
しんでおり、1つ以上のモジュールが、ある開発反復から次のものへの更新を、
うっかりして忘れた場合には、それらのダウン層コードは、APIを翻訳し損なう 可能性があり、つまりシステムを破壊してしまう可能性がある。このような問題
は散見され、これによって開発全体の遅れを余儀なくされている。
壊を繰り返しているという点から、実用的なものとは言えない。 Yi−hsiu Wei 他の「多相RPCシステム用スタブ・ジェネレータ」Journal of
Parallel and Distributed Computing, Vol. 11, No.3 (1991年3月1日), 188-1
97頁には、2つの異なるプラットフォーム間の遠隔手続呼出し用のデータ変換ス
タブを構成するために、異なる目的にテンプレートを使用することを教示してい
る。
込まれたAPIsを翻訳するためのコード・モジュールを作成し、それを自動的に更
新するので、このプログラムは、異なるプラットフォームにおいて適切に実行さ
れることになる。このユーティリティーは、APIsによって遂行される機能に基づ
き、オペレーティング・システム又は他のソフトウエア環境の新開発反復に対し
実行され、翻訳モジュール用ソース・コードを作成するためにテンプレートのセ
ットを使用する。特殊な翻訳要件は、専用の翻訳コードを含む例外テンプレート
によって処理される。他の種類のテンプレートは、原APIsのパラメータ又は引数
から、異なるプラットフォームのそれらへの、タイプの変換を遂行する。
ング・システム又は環境の対してなされた変更と同期化するようにした自動化さ
れた方法を提供することによって、開発反復を一段と迅速化することができる。
コード・ジェネレータは、全翻訳モジュールが、最新の更新レベルにあることを
確実にし、相性の悪いモジュールによって引起されるシステム破壊を防止する。
また、それは、先行して行われる手作業による生成方法に起因する個々のコード
・モジュール内のエラーも飛躍的に低減し、更に、違う人間が異なるモジュール
を別々に作成することから起こるモジュール間のエラーをも排除する。 他の特徴、利点、及び 本発明の範囲に属する変更、付加については、以下の
記載により当業者に対し明らかにされる。
の後に、あるプラットフォーム用に書込まれたAPIsを翻訳するためのコード・モ
ジュールを作成し、更に、それを自動的に更新することによって、それらが異な
るプラットフォーム上で適切に実行されるようにするツールを備える本発明の詳
細な説明を行う。以下、本発明は、パーソナル・コンピュータ(PC)によって実
行される、プログラム・モジュールのようなコンピュータ実行命令の一般的文脈
において説明されるが、他の環境とすることも可能である。プログラム・モジュ
ールは、特定のタスクを遂行する、つまり 特定の抽象データのタイプを作成す
る、ルーチン、プログラム、目的、構成要素、データの各構造 等を含む。本発
明が、手持型の装置、多重プロセッサ、マイクロプロセッサをベースとしたプロ
グラム可能な大衆消費電子製品、ネットワークPC、ミニコンピュータ、メインフ
レーム・コンピュータ 等を含む他のコンピュータシステムの機器構成によって
実践できることは、当業者に十分理解されるであろう。また、本発明は、分散さ
れたコンピュータ環境においても実践でき、そこにおいて、タスクは、通信ネッ
トワークを通じて連結された遠隔中央演算処理装置により遂行される。分散され
たコンピュータ環境において、プログラム・モジュールは、局所及び遠隔の両方
のメモリ記憶装置内に設けることができる。
理ユニットに連結するシステムバス23を備えた、既存のパーソナル・コンピュー
タ20の形態での汎用コンピュータ装置を使用している。システムバス23は、メモ
リバス又はメモリコントローラ、周辺バス、及び 局所バスを含む様々なタイプ
の内の何れでも良く、様々なバス構造の何れでも使用できる。システムメモリ22
は、読取り専用メモリ(ROM)24及びランダムアクセス・メモリ(RAM)25を備え
ている。ROM24に記憶された基本入出力システム(BIOS)26は、パーソナル・コ ンピュータの構成部品間で情報を伝送する基本ルーチンを含んでいる。また、BI
OS24は、システムの起動ルーチンを含んでいる。パーソナル・コンピュータ20は
、更に、ハードディスク(図示せず)からの読出し、またそこへの書込みを行う
ハードディスク・ドライブ27、取外し可能な磁気ディスク29からの読出し、また
そこへの書込みを行う磁気ディスク・ドライブ28、及び CD-ROM又は他の光媒体
のような取外し可能な光ディスク31からの読出し、またそこへの書込みを行う光
ディスク・ドライブ30を備えている。ハードディスク・ドライブ27、磁気ディス
ク・ドライブ28、及び 光ディスク・ドライブ30は、各々、ハードディスク・ド
ライブ・インターフェース32、磁気ディスク・ドライブ・インターフェース33、
及び 光ディスク・ドライブ・インターフェース34によって、システムバス23に
接続される。これらドライブ及びそれらの関連するコンピュータ読出し可能媒体
は、パーソナル・コンピュータ20用の、コンピュータ読出し命令、データ構造、
プログラム・モジュール、及び 他のデータの不揮発性記憶装置を備えている。
ここで説明される例示的環境は、ハードディスク、取外し可能な磁気ディスク29
、及び 取外し可能な光ディスク31を使用しているが、コンピュータによりアク
セス可能なデータを記憶できる他タイプのコンピュータ読出し可能媒体が、この
例示的オペレーティング環境において同様に使用できることは、当業者に十分理
解されるであろう。このような媒体としては、磁気カセット、フラッシュメモリ
カード、デジタル多目的ディスク、ベルヌーイ・カートリッジ、PAMs、POMs 等
を含むことができる。
31、ROM24、及び RAM25に記憶されることができる。プログラム・モジュールは
、オペレーティング・システム35、1つ以上のアプリケーション・プログラム36
、他のプログラム・モジュール37、及びプログラムデータ38を含んでいる。使用
者は、キーボード40や指示装置42のような入力装置を介して、コマンド及び情報
をパーソナル・コンピュータ20に入力できる。その他の入力装置(図示せず)と
しては、マイクロフォン、ジョイステック、ゲームパッド、パラボラアンテナ、
走査器 等を含むことができる。これら及びその他の入力装置は、しばしば、シ
ステムバス23に連結されたシリアルポート・インターフェース46を介して、処理
ユニット21に接続されるが、それらは、パラレルポート、ゲームポート、又は
ユニバーサル・シリアルポート(USP)のような、図1に示されていない他のイン
ターフェースを介して接続されることが可能である。また、モニタ47又は他の表
示装置を、ビデオアダプタ48のようなインターフェースを介して、システムバス
23に接続される。この表示装置に加え、パーソナル・コンピュータは、通常、ス
ピーカやプリンタのような他の周辺出力装置(図示せず)を備える。
ができる。遠隔コンピュータ49は、もう1つのパーソナル・コンピュータ、サー
バ、ルータ、ネットワークPC、ピア(peer)装置、又は 他の一般的ネットワーク
・ノードとすることができる。図1には記憶装置50のみが示されているが、この 遠隔コンピュータは、通常、パーソナル・コンピュータ20に関する上記した構成
部品の多く又は全てを備えている。図1に書かれた論理的接続は、ローカル・エ リア・ネットワーク(LAN)51及び広域ネットワーク(WAN)52を含んでいる。こ
のようなネットワーク環境は、事務所、企業の広範囲なコンピュータ・ネットワ
ーク、イントラネット、インターネットにおいて一般的なものである。
ネットのようなWANネットワーク環境において使用する場合、PC20は、通常、ネ ットワーク52を通じての通信を確立するためのモデム54又は他の手段を備えてい
る。モデム54は、PC20に内蔵又は外付けすることができ、シリアルポートを介し
て、システムバス23に接続される。ネットワーク環境において、20又はその1部 内に存在するように書かれたプログラム・モジュールは、遠隔記憶装置50内に記
憶することができる。当然の事であるが、示されたネットワーク接続は、例示的
なものであり、コンピュータ間の通信リンクを確立する他の手段と置換えること
が可能である。
、Intel社の「X86」系、例えばIntel 80386、80486、又は ペンティアム マイ クロプロセッサで構成した第1プラットフォームにおいて実行されるよう設計さ れた要素である。他の要素は、中央演算処理装置21として使用されるDigital Eq
uipment 社の「Alpha」又は IBM社の「Power PC」マイクロプロセッサのような
第2プラットフォームにおいて実行される。この説明においては、第1及び第2プ ラットフォームを、それぞれ、「X86」及び「固有プラットフォーム」と呼ぶ。 例示目的のため、Microsoft NTオペレーティング・システムの固有プラットフォ
ーム230版が、Fig.1のOS 35として使用される。
ォーム・アプリケーション・プログラムに関する、命令、データ、及び インタ
ーフェース(APIs)を、X86プラットフォームのこれらから、固有プラットフォ ームにおける等価のオペレーションに翻訳する。アプリケーション・プログラム
のAPIsは、実際のところ、図2にほんの1部が示された、APIモジュール251−253 のセット250に対する呼出しである。APIモジュールは、普通、254のようなダイ ナミック・リンク・ライブラリにグループ化されている。先に述べたように、OS
230は、DLLの40という数よりも多い数百のAPIsを持っており、集合的には「Win3
2」として知られているこのセットは、開発作業過程でほとんど毎日、新しい「 構成(build)」に再編成される。アプリケーション210が、API251のような、X86 プラットフォーム用に書込まれたAPIを呼出す場合、エミュレータ240内の既存の
API翻訳層241は、適切なAPIモジュール251を検索し、関連する翻訳コード・モジ
ュール、つまり「サンク」261を呼出し、どのようなAPI配列及びデータでも、固
有プラットフォームに対し正しいフォーマットに変換するとともに、APIが原X86
プラットフォームにおいて実行していたものをエミュレートする機能を果す。サ
ンク260のセットは、X86のAPI251−252の各々に対する個別のモジュール261−26
2を含んでいる。固有プラットフォーム用に書込まれた253のようなAPIsは、OS23
0から呼出され、サンクを必要としない場合には、直接的に実行される。
れたオブジェクト・コードの形式においては図2のものと一致する要素であるが 、図3においてはソース・コードとして存在していることを示すため、図3とは異
なる番号を付している。
Cのような言語で書かれた命令を各々含むファイル311の集合310である。各ファ イルは、1つ以上の機能312を表現し、APIs251−252の内の1つによって実行され る。[@@ Inventor note 1] (ある専門用語:ダイナミック・リンク・ライブ ラリは、3つのソース・ファイル、つまり、Cソース・ファイル、Cヘッダ・ファ
イル、及び DEFファイル、から生成される。コンパイラは、これらを、DLLコー
ド・ファイル及びインポート.LIBファイルの2つのオブジェクト・ファイルに変
換する。)
ト・ライブラリ(.LIB)ファイル321にコンパイルされている。例えば、.DEFフ ァイルにおける入力FOO=BAR@4が、FOOとして内部的に知られている機能を、BA
RとしてDLLからエクスポートするようにリンカー(linker)に命令する場合のよう
に、DLLからエクスポートされたAPIの名前は、ソース・ファイル311における機 能の名前と異なる可能性があるため、.LIBファイルは非常に重要である。サンク
・ジェネレータ330は、.LIBファイル321を使用し、内部的機能の名前をエクスポ
ートされたAPIの名前と関連付けを行う。C言語ファイルは、データのタイプ及び
外部の変動しやすい名前のような、外部インターフェースとしてのコード・ファ
イル311を特定するヘッダ(.H)ファイル313と関連付けされている。具体的には
、ヘッダ・ファイルは、コード・ファイル311における機能312のタイプに関する
情報315を含んでいる。
る。 Typedef struct tagFoo ( int member1; int member2; )*PEOO
コード・モジュール260にコンパイルされる。本発明は、この目的のために、新 規なテンプレート・ファイル350のセットを備える。テンプレート(.TPL)ファ イルは、翻訳コード・モジュール(「サンク」)を生成する方法に関する記述であ
る。それらは、API機能及びそれらの引数全体にわたって反復し、特定のAPIsか ら生じる特殊ケースを処理するために、手作業により生成されたCコードを少し 含んでいる。
cテンプレート351は、APIsに対するデフォルト拡張である。以下の例のテンプレ
ートは、スケルトン・サンク340を生成する。 [Ifunc] TemplateName=HostFuncs CgenBegin= Void wh@ ApiName (PULONG BaseArgs, ULONG RetVal) ( @ApiFnRet *pRetVal = (@ApiFnRet *) RetVal @Types (Locals) @Types (Body) @IfApiRet (*pRetVal = ) @ApinName (@IfArgs (@ArgList ( *( (@ArgType * ) (@ArgAddr (BaseArgs) ) ) @ArgMore ( , ) ) ) ) ; @Types (Return) ) CgenEnd =
キーワードの各々を拡張する。 @ApiName APIの内部の名前 @ApiFnRet APIの復帰タイプ @Types(X) 形式「X」のテンプレートの拡張タイプ @IfApiRet(X) APIの復帰タイプが非ボイドの場合、「X」を拡張する @IfArg(X) APIが引数を有する場合、「X」を拡張する @ArgList(X) 全引数の反復し、各引数に対する「X」を拡張する @ArgType 引数のタイプ @ArgAddr(X) 「X」に関する引数のアドレス @ArgMore(X) 現在の引数に後続する更なる引数が存在する場合に拡張す る
Window)」は、 WhFindWindowA (PULONG pBaseArgs, ULONG RetVal) ( HWND *pRetVal = (HWND * ) RetVal; *pRetVal = FindWindowA ( * (LASTR *) (pBaseArgs + 0) , * (LPSTR * ) (pBaseArgs + 1) ) ; ) に対して拡張する。
フォルトIfuncテンプレート351を無効にする。以下のテンプレート352の例は、 「SetErrorMode」と名づけられた特定のAPIに対する固定コードを作る。[Efunc]
TemplateName = SetErrorMode CgenBegin = Void Wh@ApiName (PULONG BaseArgs, ULONG RetVal) ( @ApiFnRet *PretVal = (@ApiFnRet *) RetVal ; *pRetVal = SetErrorMode ( * (UINT *) (pBaseArgs ) ? SEM_NOALIGNMENTFAULTTEXCEPT ) * pRetVal, & = −NOALIGNMENTFAULTTEXCEPT ; ) CgenEnd = EFuncテンプレートは、APIに対する特注書込みコードのための機能を備えており
、その上、API変更に対してのローバスト性を抑制している。勿論、そのようなA
PIに対するコードは、単に、そのEfuncテンプレートを書換えるだけで、いつで も書換えることができる。
パラメータつまり引数に対するサンク340を作り出す。タイプ・テンプレートは 、新しいAPIsに自動的にそれらを適用するジェネレータ330において力を発揮す る。以下の例を考察されたい。
、デフォルトIFuncテンプレートに対するIFuncコードに加え、特殊目的タイプの
コードを自動的に受入れる。例えば、上述した「FindWindowA」のAPIは、ここで
、 ( HWND *pRetVal = (HWND *) ReVal ; LPSTR lpClass = * ( (LASTR *) (pBaseArgs + 0 ) ; LPSTR lpWindow = * ( (LASTR *) (pBaseArgs + 1 ) ; VALIDATE_LPSTR (lpClass) ; VALIDATE_LPSTR (lpWindow) ; *pRetVal = FindWindowA (lpClass , pWindow ) ; ) に拡張する。
ンプレートと共通にすることが可能なコードを含んでおり、これらのテンプレー
トにおける名前によって参照される。例えば、以下の行 *pRetVal = SetErrorMode ( ( * (UINT *) pBaseArgs ) ? が、異なるテンプレート351、352、又は353において何度の生じる場合には、そ の行は、「serrm」というような名前のコード・テンプレートに置換えることが できる。次に、上記例のように参照されたテンプレートは、その行を、マクロの
名前、例えば、「[@serrm]」によって、単に置換える。そして、既存のCマクロ 機能は、その名前をコードに置換えるが、勿論、Cマクロは、この例よりもずっ と複雑である。 上記テンプレートは、C言語で書かれたのもとして示されたが、それらは、言 語が何であるかに無関係である。テンプレート350は、C++、アセンブリ言語、
或いは他の望ましい形式のコードを生成できる。
記載している。ジェネレータは、APIの再生を必要とするオペレーティング・シ ステム230又は他のエンティティの全集合体に対し、401において作動される。そ
の終末402において、API翻訳モジュールのソース・コード・ファイル340の全セ ットは、同一層において同期化されており、エミュレータ240のAPI翻訳部(「サ
ンク」層)を共に形成する、図2のオブジェクト・コード・モジュール260のセッ
トに、既存の形態でコンパイルされることが可能である。
s(図2における261、262、−−−)のセットを確認する。これらのAPIの名前は 、先に説明したように、各DLLのエクスポート・テーブル314及びインポート.LIB
ファイル321内に存在する。(技術的な挿話として、原タイプのエクスポートの 源は、インポート.LIBである。しかし、それらの多くは、名前の付けられていな
い序数、又は名前を付け直されたC機能である可能性がある。タイプに関する情 報を得るため、ジェネレータ330は、各APIを実行する原機能の名前を再構築しな
くてはならない。従って、このジェネレータは、時には、エクスポートの名前を
機能の名前に戻すようにマップ化しなくてはならない。)次に、ステップ403は 、処理するために、順次、セットの中から最新のAPIを選定する。
。このようなテンプレートが存在する場合には、ステップ421で、関連するEFunk
テンプレートにアクセスし、ステップ422で、そのソース・コードを、そのAPIに
対するサンク・ファイル340に置く。 最新のAPIが、正常なAPIである場合には、ステップ430で、そのエクスポート された機能全ての名前を抽出するために、そのヘッダ・ファイル313のエクスポ ート・テーブル313を読取る。上述したように、ステップは、これらの機能に対 するEFuncテンプレートを拡張する。ステップ431で、最新のAPIのエクスポート された機能が全て抽出されると、出口432は、次のステップに進む。
のパラメータとしての1つが順次選定される。ステップ441で、このパラメータ のタイプに対するタイプ・テンプレートが存在すると、次に、ステップ442で、 このテンプレートのソース・コードが、モジュール340に置かれるため、APIは、
その引数のタイプを正しく処理することになる。大半のタイプ・テンプレートは
、あるパラメータを異なる値に置換える。しかし、タイプ・テンプレートは、パ
ラメータの範囲を有効化するような、他の機能を実行することができる。全ての
タイプ・テンプレートが処理された時、制御は出口443を通過する。
定の名前を付けられたコード・テンプレートが拡張されると共に、このコードを
、呼出しているテンプレートに戻す。 ステップ450は、実際には、サンクのソース・コード・ファイル340が、オブジ ェクト・コード・モジュール260に一般的な形でコンパイルされる後に生じる可 能性がある。
る。本発明は、複数のプラットフォームから、ただ1つのインターフェースが相
反する場合のインターフェース実行させるために使用することができる。更に、
適合するテンプレートは、多くの異なる形態で、例えば、望ましいテンプレート
を直接的に確認するインターフェースにおけるフィールドを持つことによって、
行うことが可能である。他の多くの実施形態が存在することは、上記説明を検討
すれば、当業者にとって明らかなことであろう。従って、本発明の範囲は、請求
の範囲を参照するとともに、その請求範囲に許された均等範囲を考慮することに
よって決定されるべきである。
ある。
Claims (21)
- 【請求項1】 プラットフォームされたデジタル・コンピュータにおいて、 第1プラットフォーム用に書込まれたコードを含み、1つ以上の機能を実行する
インターフェース・モジュール(251、252)を確認するステップ、 上記インターフェース・モジュールを表すソース・コード・ファイルを選定す
るステップ(403)、 上記インターフェース・モジュールの機能を実行する第2プラットフォームに おいて実行可能なコードを含む翻訳モジュール(260、340)を生成するステップ(4
20−451)、及び 多くのインターフェース及び翻訳モジュールに対し、上記ステップを繰り返す
ステップを含む 方法であって、上記翻訳モジュールを生成するステップは、 上記インターフェース・モジュールから、上記インターフェース・モジュール
によって実行される1つ以上の機能を表すデータを抽出するステップ(430)、 上記インターフェース・モジュール機能を、少なくとも1部が上記第2プラット
フォーム用に書込まれた一般化されたプログラム・コードを含むテンプレートの
グループ(350) に照合するとともに、上記グループから、少なくとも1つの適合
するテンプレート(351)を選定するステップ(430)、及び 上記選定されたテンプレートに関し、上記テンプレートにおける上記一般化さ
れたプログラム・コードを、上記翻訳モジュールにおける上記インターフェース
・モジュールの機能を実行する専用化されたプログラム・コードに変換するステ
ップ(431)を含むことを特徴とする方法。 - 【請求項2】 上記専用化されたプログラム・コードは、上記第2プラット フォーム用のソース・コードであることを特徴とする請求項1に記載の方法。
- 【請求項3】 上記第1プラットフォームは、第2プラットフォームにおける
エミュレータ(240)の下で実行することを特徴とする請求項1に記載の方法。 - 【請求項4】 上記プログラムは、第2プラットフォームにおいて実行する 場合には、上記インターフェース・モジュールの代わりとして、翻訳モジュール
を呼出すことを特徴とする請求項3に記載の方法。 - 【請求項5】 上記インターフェース・モジュールは、異なるタイプのグル
ープの少なくとも1つ有するパラメータを受渡すとともに、 上記1つ又は複数のパラメータは、異なるタイプのテンプレートのグループ(35
3)の少なくとも1つに適合し、且つ 上記翻訳モジュールのコードの1部は、上記適合するタイプのテンプレートか ら作成されることを特徴とする請求項1に記載の方法。 - 【請求項6】 上記翻訳モジュールを生成するステップは、 特定のインターフェース・モジュールを認識するステップ、及び 例外テンプレートを、上記選定されたテンプレートの代わりとするステップを
更に含むことを特徴とする請求項1に記載の方法。 - 【請求項7】 上記特定のインターフェース・モジュールは、ジェネレータ
における例外リストを読取ることによって認識されることを特徴とする請求項5 に記載の方法。 - 【請求項8】 上記照合及び変換ステップは、各インターフェース・モジュ
ールにおける複数の機能を反復することを特徴とする請求項1に記載の方法。 - 【請求項9】 上記テンプレート(351)の1つは、コード・テンプレート(354
)のグループの1つの名前を特定することを決定するステップ、及び 上記1つのテンプレートが、翻訳モジュール用のコードを備える場合は、常に 、上記1つのテンプレートに、上記特定されたコード・テンプレートからのソー ス・コードを組込むステップを含むことを特徴とする請求項1に記載の方法。 - 【請求項10】 請求項1の方法を実行するためのプログラム命令(37)及び データ(38)を有する媒体(27、29、31、51、52)
- 【請求項11】 コンピュータシステムにおいて、第1のプラットフォーム において実行されるインターフェース・モジュールのセット(251、252)を、上記
インターフェース・モジュールの機能の1つに対応して実行する、但し、第2プラ
ットフォームにおいて実行する翻訳モジュールのセット(260、340)に変換するた
めのテンプレートのセット(350)を有するとともに、上記インターフェース・モ ジュールが、上記インターフェース・モジュールによってエクスポートされた機
能の名前を含む、関連付けられたヘッダ・ファイル(314)を有するようにしたジ ェネレータ(330)であって、 上記テンプレートは、第2プラットフォームにおいて機能を実行するための一 般化されたコードを含み、更に 上記ジェネレータは、上記ヘッダ・ファイルにエクスポートされた機能の名前
に従って、特定の上記インターフェースのファイルを、少なくとも1つの上記テ ンプレートに照合し、適合した1つ又は複数のテンプレートを拡張し、上記第2 プラットフォームにおいて上記インターフェース・モジュールの機能を実行する
ための翻訳モジュールにソース・コードを作成するようにしたことを特徴とする
ジェネレータ。 - 【請求項12】 上記ヘッダ・ファイルの各々は、上記インターフェース・
モジュールの1つによって実行される機能のリスト(314)を含んでいることを特徴
とする請求項11に記載のジェネレータ。 - 【請求項13】 上記ジェネレータは、上記ヘッダ・ファイル内の機能のリ
スト全体を反復し、上記適合したテンプレート内に専用化されたコードとして上
記機能の各々を拡張するようにしたことを特徴とする請求項11に記載のジェネレ
ータ。 - 【請求項14】 上記ヘッダ・ファイルは、上記インターフェース・モジュ
ールによって受け渡されたパラメータを特定することを特徴とする請求項11に記
載のジェネレータ。 - 【請求項15】 上記テンプレートの1部は、上記パラメータを異なる形式 に変換するタイプ・テンプレートであることを特徴とする請求項14に記載のジェ
ネレータ。 - 【請求項16】 上記ジェネレータは、複数のパラメータ全体を反復し、上
記パラメータの各々に対し、異なる可能性のある上記タイプ・テンプレートの1
つを選択することを特徴とする請求項15に記載のジェネレータ。 - 【請求項17】 上記ジェネレータは、あるファイルが、例外ファイルとし
て認識された際は,上記特定のインターフェース・ファイルの照合を迂回するよ うにしたことを特徴とする請求項11に記載のジェネレータ。 - 【請求項18】 上記ジェネレータは、上記特定のインターフェース・ファ
イルに対する例外ファイルを選定し、上記例外ファイルを、上記第2プラットフ ォームに対するコードに拡張するようにしたことを特徴とする請求項17に記載の
ジェネレータ。 - 【請求項19】適切にプログラムされたデジタル・コンピュータ(20)に、 第1プラットフォーム用に書込まれたコードを含み、1つ以上の機能を実行する
インターフェース・モジュール(251、252)を確認するステップ、 上記インターフェース・モジュールを表すソース・コード・ファイルを選定す
るステップ(403)、 上記インターフェース・モジュールの機能を実行する第2プラットフォームに おいて実行可能なコードを含む翻訳モジュール(260、340)を生成するステップ(4
20−451)、及び 多くのインターフェース及び翻訳モジュールに対し、上記ステップを繰り返す
ステップを含む 方法を実行させるため、プログラム命令(37)を実行する媒体(27、29、31、51、5
2)であって、上記翻訳モジュールを生成するステップは、 上記インターフェース・モジュールから、上記インターフェース・モジュール
によって実行される1つ以上の機能を表すデータを抽出するステップ(430)、 上記インターフェース・モジュール機能を、少なくとも1部が上記第2プラット
フォーム用に書込まれた一般化されたプログラム・コードを含むテンプレートの
グループ(350) に照合するとともに、上記グループから、少なくとも1つの適合
するテンプレート(351)を選定するステップ(430)、及び 上記選定されたテンプレートに関し、上記テンプレートにおける上記一般化さ
れたプログラム・コードを、上記翻訳モジュールにおける上記インターフェース
・モジュールの機能を実行する専用化されたプログラム・コードに変換するステ
ップ(431)を含むことを特徴とする媒体。 - 【請求項20】 上記媒体は、磁気的(27、29)、又は光学的(31)記録媒体で
あることを特徴とする請求項19に記載のジェネレータ。 - 【請求項21】 上記媒体は、ネットワークにおける信号(51、52)であるこ
とを特徴とする請求項19に記載のジェネレータ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/912,454 | 1997-08-18 | ||
US08/912,454 US6026238A (en) | 1997-08-18 | 1997-08-18 | Interface conversion modules based upon generalized templates for multiple platform computer systems |
PCT/US1998/017008 WO1999009474A1 (en) | 1997-08-18 | 1998-08-17 | Program-interface converter for multiple-platform computers |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004310175A Division JP4128995B2 (ja) | 1997-08-18 | 2004-10-25 | 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001516079A true JP2001516079A (ja) | 2001-09-25 |
JP3641430B2 JP3641430B2 (ja) | 2005-04-20 |
Family
ID=25431951
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000510073A Expired - Fee Related JP3641430B2 (ja) | 1997-08-18 | 1998-08-17 | 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ |
JP2004310175A Expired - Fee Related JP4128995B2 (ja) | 1997-08-18 | 2004-10-25 | 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004310175A Expired - Fee Related JP4128995B2 (ja) | 1997-08-18 | 2004-10-25 | 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ |
Country Status (6)
Country | Link |
---|---|
US (3) | US6026238A (ja) |
EP (1) | EP1021762B1 (ja) |
JP (2) | JP3641430B2 (ja) |
AT (1) | ATE252743T1 (ja) |
DE (1) | DE69819188T2 (ja) |
WO (1) | WO1999009474A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164265A (ja) * | 2004-12-03 | 2006-06-22 | Microsoft Corp | サブシステム間のリソース共有の可能化 |
JP2010517134A (ja) * | 2007-01-22 | 2010-05-20 | イースリーネット、カンパニー、リミテッド | 異機種間プログラム連動方法及びそのミドルウェアプラットホームエンジン |
Families Citing this family (121)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6960133B1 (en) * | 2000-08-28 | 2005-11-01 | Igt | Slot machine game having a plurality of ways for a user to obtain payouts based on selection of one or more symbols (power pays) |
US6026238A (en) | 1997-08-18 | 2000-02-15 | Microsoft Corporatrion | Interface conversion modules based upon generalized templates for multiple platform computer systems |
US20010039564A1 (en) * | 1997-10-20 | 2001-11-08 | Victor Hahn | Log on personal computer |
US6330006B1 (en) * | 1998-05-12 | 2001-12-11 | Silverstream Software, Inc. | Method and apparatus for synchronizing an application's interface and data |
US6480952B2 (en) | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US6192512B1 (en) * | 1998-09-24 | 2001-02-20 | International Business Machines Corporation | Interpreter with virtualized interface |
US6598169B1 (en) * | 1999-07-26 | 2003-07-22 | Microsoft Corporation | System and method for accessing information made available by a kernel mode driver |
US6772106B1 (en) * | 1999-08-20 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | Retargetable computer design system |
US6442752B1 (en) * | 1999-08-26 | 2002-08-27 | Unisys Corporation | Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner |
US6745385B1 (en) * | 1999-09-01 | 2004-06-01 | Microsoft Corporation | Fixing incompatible applications by providing stubs for APIs |
US6853868B1 (en) * | 1999-10-15 | 2005-02-08 | Sun Microsystems, Inc. | Cross-platform audio feedback for GUI components |
US6587888B1 (en) * | 1999-12-15 | 2003-07-01 | Networks Associates Technology, Inc. | Dynamic software wrapper |
WO2002073501A1 (en) * | 2001-03-08 | 2002-09-19 | Shuffle Master, Inc. | Computerized gaming system, method and apparatus |
US7043641B1 (en) * | 2000-03-08 | 2006-05-09 | Igt | Encryption in a secure computerized gaming system |
CA2402389A1 (en) * | 2000-03-08 | 2002-09-19 | Shuffle Master, Inc. | Computerized gaming system, method and apparatus |
US7988559B2 (en) * | 2001-03-08 | 2011-08-02 | Igt | Computerized gaming system, method and apparatus |
US6721949B1 (en) * | 2000-03-27 | 2004-04-13 | General Instrument Corporation | Kernel abstraction layer for digital television set-top box firmware |
US6941520B1 (en) * | 2000-05-09 | 2005-09-06 | International Business Machines Corporation | Method, system, and program for using a user interface program to generate a user interface for an application program |
US6769985B1 (en) | 2000-05-31 | 2004-08-03 | Igt | Gaming device and method for enhancing the issuance or transfer of an award |
US7699699B2 (en) | 2000-06-23 | 2010-04-20 | Igt | Gaming device having multiple selectable display interfaces based on player's wagers |
US7695363B2 (en) * | 2000-06-23 | 2010-04-13 | Igt | Gaming device having multiple display interfaces |
US6684388B1 (en) * | 2000-08-22 | 2004-01-27 | International Business Machines Corporation | Method for generating platform independent, language specific computer code |
US6935955B1 (en) | 2000-09-07 | 2005-08-30 | Igt | Gaming device with award and deduction proximity-based sound effect feature |
US6968541B1 (en) * | 2000-10-04 | 2005-11-22 | International Business Machines Corporation | Apparatus and method for template instantiation with a cross compiler |
US6739973B1 (en) * | 2000-10-11 | 2004-05-25 | Igt | Gaming device having changed or generated player stimuli |
US7574346B2 (en) * | 2000-10-30 | 2009-08-11 | Microsoft Corporation | Kernel emulator for non-native program modules |
US20020138821A1 (en) * | 2001-01-23 | 2002-09-26 | Vadim Furman | Method and apparatus for seamless porting of object code between operating system environments |
US20030033588A1 (en) * | 2001-01-29 | 2003-02-13 | John Alexander | System, method and article of manufacture for using a library map to create and maintain IP cores effectively |
AU2002226583A1 (en) * | 2001-01-29 | 2002-08-12 | Celoxica Limited | Application program interface for programmable architecture cores |
US7203841B2 (en) * | 2001-03-08 | 2007-04-10 | Igt | Encryption in a secure computerized gaming system |
US6749502B2 (en) * | 2001-03-21 | 2004-06-15 | Igt | Gaming device having a multi-characteristic matching game |
US7640153B2 (en) * | 2001-06-04 | 2009-12-29 | Hewlett-Packard Development Company, L.P. | Networked client-server architecture for transparently transforming and executing applications |
US7016963B1 (en) * | 2001-06-29 | 2006-03-21 | Glow Designs, Llc | Content management and transformation system for digital content |
GB0120611D0 (en) * | 2001-08-24 | 2001-10-17 | Igt Uk Ltd | Video display systems |
US7618317B2 (en) * | 2001-09-10 | 2009-11-17 | Jackson Mark D | Method for developing gaming programs compatible with a computerized gaming operating system and apparatus |
US7931533B2 (en) * | 2001-09-28 | 2011-04-26 | Igt | Game development architecture that decouples the game logic from the graphics logics |
US6902481B2 (en) * | 2001-09-28 | 2005-06-07 | Igt | Decoupling of the graphical presentation of a game from the presentation logic |
US8708828B2 (en) * | 2001-09-28 | 2014-04-29 | Igt | Pluggable modular gaming modifiers and configuration templates for gaming environments |
US7901291B2 (en) | 2001-09-28 | 2011-03-08 | Igt | Gaming device operable with platform independent code and method |
US7666098B2 (en) | 2001-10-15 | 2010-02-23 | Igt | Gaming device having modified reel spin sounds to highlight and enhance positive player outcomes |
US6848996B2 (en) * | 2001-10-15 | 2005-02-01 | Igt | Gaming device with sound recording changes associated with player inputs |
US7708642B2 (en) * | 2001-10-15 | 2010-05-04 | Igt | Gaming device having pitch-shifted sound and music |
US7107584B2 (en) * | 2001-10-23 | 2006-09-12 | Microsoft Corporation | Data alignment between native and non-native shared data structures |
WO2003045519A1 (en) * | 2001-11-26 | 2003-06-05 | Igt | Pass-through live validation device and method |
US6763423B2 (en) * | 2001-11-30 | 2004-07-13 | International Business Machines Corporation | Storage area network methods and apparatus for logical-to-physical block address mapping |
US7284240B1 (en) * | 2002-02-14 | 2007-10-16 | Microsoft Corporation | API schema language and transformation techniques |
CA2382195A1 (en) * | 2002-04-17 | 2003-10-17 | Ibm Canada Limited-Ibm Canada Limitee | Support for wild card characters in code assistance |
US20030203755A1 (en) * | 2002-04-25 | 2003-10-30 | Shuffle Master, Inc. | Encryption in a secure computerized gaming system |
US7210132B2 (en) * | 2002-05-30 | 2007-04-24 | Microsoft Corporation | Interoperability of objects between various platforms |
CA2391717A1 (en) * | 2002-06-26 | 2003-12-26 | Ibm Canada Limited-Ibm Canada Limitee | Transferring data and storing metadata across a network |
US7058933B2 (en) * | 2002-09-11 | 2006-06-06 | Sun Microsystems, Inc. | Extending custom application development environment modules to a second application development environment |
US7194737B2 (en) * | 2002-10-02 | 2007-03-20 | Infinity Systems Software, Inc. | System and method for expediting and automating mainframe computer setup |
US8423976B2 (en) * | 2003-03-13 | 2013-04-16 | Northrop Grumman Corporation | Extreme pipeline and optimized reordering technology |
US7337438B1 (en) | 2003-03-31 | 2008-02-26 | Applied Micro Circuits Corporation | Macros to support structures for an assembler that does not support structures |
GB0307805D0 (en) * | 2003-04-04 | 2003-05-07 | Intuwave Ltd | A method of enabling source code to be used to generate a first and a second software application,each compatible with a different operating system |
US7254816B2 (en) * | 2003-05-05 | 2007-08-07 | Microsoft Corporation | Device driver conversion and creation |
US8108534B2 (en) * | 2003-05-08 | 2012-01-31 | Jda Software Group, Inc. | Data integration system with programmatic source and target interfaces |
GB0316531D0 (en) * | 2003-07-15 | 2003-08-20 | Transitive Ltd | Method and apparatus for performing native binding |
US7207038B2 (en) * | 2003-08-29 | 2007-04-17 | Nokia Corporation | Constructing control flows graphs of binary executable programs at post-link time |
US7789748B2 (en) * | 2003-09-04 | 2010-09-07 | Igt | Gaming device having player-selectable music |
US7105736B2 (en) * | 2003-09-09 | 2006-09-12 | Igt | Gaming device having a system for dynamically aligning background music with play session events |
WO2005026952A2 (en) * | 2003-09-17 | 2005-03-24 | Research In Motion Limited | System and method for management of mutating applications |
US8424023B2 (en) * | 2003-10-24 | 2013-04-16 | Hewlett-Packard Development Company, L.P. | Program interface architecture |
US7487493B1 (en) | 2003-12-30 | 2009-02-03 | Itt Manufacturing Enterprises, Inc. | Method and apparatus for developing standard architecture compliant software for programmable radios |
US7694315B2 (en) * | 2004-02-13 | 2010-04-06 | Microsoft Corporation | Schema-based machine generated programming models |
US7853742B2 (en) * | 2004-04-26 | 2010-12-14 | Intel Corporation | System and method to conditionally shrink an executable module |
US7860894B2 (en) * | 2004-05-12 | 2010-12-28 | Oracle International Corporation | Template driven type and mode conversion |
US7814426B2 (en) * | 2004-06-30 | 2010-10-12 | Sap Aktiengesellschaft | Reusable component in a collaboration workspace |
US7370318B1 (en) * | 2004-09-02 | 2008-05-06 | Borland Software Corporation | System and methodology for asynchronous code refactoring with symbol injection |
US7356808B2 (en) * | 2004-09-23 | 2008-04-08 | International Business Machines Corporation | Method, system and program product for porting code utilizing a portable execution environment |
US8043155B2 (en) * | 2004-10-18 | 2011-10-25 | Igt | Gaming device having a plurality of wildcard symbol patterns |
EP1669919A1 (en) * | 2004-12-01 | 2006-06-14 | Sap Ag | A data processing system and data processing method |
US8364565B2 (en) * | 2004-12-01 | 2013-01-29 | Sap Ag | Systems and methods for data processing |
US20060143222A1 (en) * | 2004-12-23 | 2006-06-29 | Maxime Daniel | Method, program and system for automatic reengineering of a client code |
US7685593B2 (en) * | 2005-05-12 | 2010-03-23 | Microsoft Corporation | Systems and methods for supporting multiple gaming console emulation environments |
US8046777B2 (en) * | 2005-06-02 | 2011-10-25 | The Mathworks, Inc. | Calling of late bound functions from an external program environment |
US20070169010A1 (en) * | 2005-10-31 | 2007-07-19 | Dhi Technologies, Inc. | Multiplatform programming environment |
US7624362B2 (en) * | 2006-01-11 | 2009-11-24 | Panasonic Corporation | Circuit analysis device using processor information |
JP4218766B2 (ja) * | 2006-03-09 | 2009-02-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シナリオをテストする方法、装置、及びプログラム |
US20070220531A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Method and system for shimming COM objects |
DE102006033863A1 (de) * | 2006-07-21 | 2008-01-24 | Siemens Ag | Verschaltungsschnittstelle für flexibles Online/Offline-Deployment einer n-schichtigen Softwareapplikation |
US7886284B2 (en) * | 2006-09-05 | 2011-02-08 | International Business Machines Corporation | Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems |
US20080288582A1 (en) * | 2006-09-25 | 2008-11-20 | Sms.Ac | Systems and methods for passing application pods between multiple social network service environments |
US8491392B2 (en) * | 2006-10-24 | 2013-07-23 | Igt | Gaming system and method having promotions based on player selected gaming environment preferences |
US8166492B2 (en) * | 2007-04-10 | 2012-04-24 | Microsoft Corporation | Application compatibility using a hybrid environment |
US20090259771A1 (en) * | 2008-04-09 | 2009-10-15 | Tanik Haluk K | Identification of memory cards by host |
US8484609B2 (en) * | 2008-07-16 | 2013-07-09 | Apple Inc. | Specification files for call translation and trace |
US8591308B2 (en) | 2008-09-10 | 2013-11-26 | Igt | Gaming system and method providing indication of notable symbols including audible indication |
JP5482011B2 (ja) * | 2009-08-11 | 2014-04-23 | 株式会社リコー | 画像形成装置、プログラム管理システム、プログラム管理方法、及びプログラム管理プログラム |
US8346710B2 (en) * | 2010-01-29 | 2013-01-01 | Google Inc. | Evaluating statistical significance of test statistics using placebo actions |
JP2011198298A (ja) * | 2010-03-23 | 2011-10-06 | Dainippon Printing Co Ltd | Icカード及びコンピュータプログラム |
US8943483B2 (en) * | 2010-11-11 | 2015-01-27 | International Business Machines Corporation | Application programming interface naming using collaborative services |
US20120278125A1 (en) * | 2011-04-29 | 2012-11-01 | Verizon Patent And Licensing Inc. | Method and system for assessing process management tools |
US8776094B2 (en) | 2011-08-11 | 2014-07-08 | Microsoft Corporation | Runtime system |
US8695021B2 (en) * | 2011-08-31 | 2014-04-08 | Microsoft Corporation | Projecting native application programming interfaces of an operating system into other programming languages |
CN103092599A (zh) * | 2011-11-05 | 2013-05-08 | 京瓷办公信息系统株式会社 | 软件开发套件 |
US9134969B2 (en) | 2011-12-13 | 2015-09-15 | Ipar, Llc | Computer-implemented systems and methods for providing consistent application generation |
US8460090B1 (en) | 2012-01-20 | 2013-06-11 | Igt | Gaming system, gaming device, and method providing an estimated emotional state of a player based on the occurrence of one or more designated events |
US8740689B2 (en) | 2012-07-06 | 2014-06-03 | Igt | Gaming system and method configured to operate a game associated with a reflector symbol |
US9245407B2 (en) | 2012-07-06 | 2016-01-26 | Igt | Gaming system and method that determines awards based on quantities of symbols included in one or more strings of related symbols displayed along one or more paylines |
US8776031B1 (en) * | 2012-08-09 | 2014-07-08 | Noble Systems Corporation | Manipulating resources embedded in a dynamic-link library |
US9141325B2 (en) * | 2013-02-01 | 2015-09-22 | Amadeus S.A.S. | Communications management |
US9192857B2 (en) | 2013-07-23 | 2015-11-24 | Igt | Beat synchronization in a game |
JP5754524B2 (ja) * | 2014-02-19 | 2015-07-29 | 株式会社リコー | 装置、情報処理システム、情報処理方法、及び情報処理プログラム |
US9680708B2 (en) | 2014-03-14 | 2017-06-13 | Veritas Technologies | Method and apparatus for cloud resource delivery |
US20150281378A1 (en) * | 2014-03-14 | 2015-10-01 | Avni Networks Inc. | Method and apparatus for automating creation of user interface across multi-clouds |
US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
US9529630B1 (en) | 2015-01-21 | 2016-12-27 | Pivotal Software, Inc. | Cloud computing platform architecture |
US10007500B1 (en) | 2015-01-21 | 2018-06-26 | Pivotal Software, Inc. | Cloud computing platform architecture |
FR3036206B1 (fr) * | 2015-05-11 | 2017-06-09 | Thales Sa | Procede de reutilisation de moyens certifies de mise en oeuvre d'une fonction embarquee notamment a bord d'un aeronef |
US9986040B2 (en) | 2015-07-21 | 2018-05-29 | Amadeus S.A.S. | Communications management system with a separate peripherals server |
US9947170B2 (en) | 2015-09-28 | 2018-04-17 | Igt | Time synchronization of gaming machines |
KR101696101B1 (ko) * | 2015-10-21 | 2017-01-13 | 주식회사 포스코 | 철강 공정 미들웨어 서비스 개발 시스템의 태스크 서버 및 미들웨어 서버 |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
EP3427148B1 (en) | 2016-03-11 | 2022-01-12 | LZLabs GmbH | Load module compiler |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US10503498B2 (en) | 2017-11-16 | 2019-12-10 | Sas Institute Inc. | Scalable cloud-based time series analysis |
CN110058864B (zh) * | 2019-04-18 | 2023-08-22 | 成都四方伟业软件股份有限公司 | 微服务的部署方法及装置 |
CN112114789B (zh) * | 2019-06-20 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种业务开发方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6195449A (ja) * | 1984-10-17 | 1986-05-14 | Nec Corp | ソ−スプログラム管理方式 |
JPH05127880A (ja) * | 1991-11-01 | 1993-05-25 | Toyota Motor Corp | 電子制御用プログラム開発支援装置 |
JPH05224943A (ja) * | 1992-02-14 | 1993-09-03 | Nec Corp | 原始プログラム変換装置 |
JPH064298A (ja) * | 1992-06-18 | 1994-01-14 | Hitachi Ltd | プログラム開発環境構築システム |
JPH09179728A (ja) * | 1995-12-22 | 1997-07-11 | Hitachi Ltd | 異パーソナリティ・アプリケーションの起動方法およびコンピュータ・システム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2203572B (en) * | 1987-03-24 | 1991-11-27 | Insignia Solutions Limited | Improvements in data processing means |
TW313282U (en) * | 1991-03-07 | 1997-08-11 | Digital Equipment Corp | Apparatus for automatically interfacing call conventions between two dissimilar program units |
US5390314A (en) * | 1992-10-09 | 1995-02-14 | American Airlines, Inc. | Method and apparatus for developing scripts that access mainframe resources that can be executed on various computer systems having different interface languages without modification |
IL111154A0 (en) * | 1993-10-21 | 1994-12-29 | Martino Ii John A | Systems and methods for electronic messaging |
US5715459A (en) * | 1994-12-15 | 1998-02-03 | International Business Machines Corporation | Advanced graphics driver architecture |
US5687376A (en) * | 1994-12-15 | 1997-11-11 | International Business Machines Corporation | System for monitoring performance of advanced graphics driver including filter modules for passing supported commands associated with function calls and recording task execution time for graphic operation |
US5729748A (en) * | 1995-04-03 | 1998-03-17 | Microsoft Corporation | Call template builder and method |
US5764974A (en) | 1995-08-30 | 1998-06-09 | Unisys Corporation | System with user specified pattern definitions for matching input messages and associated decisions for conditionally responding to the input messages |
US5910180A (en) * | 1995-11-21 | 1999-06-08 | Diamond Multimedia Systems, Inc. | Context virtualizing device driver architecture |
US5754858A (en) * | 1996-05-01 | 1998-05-19 | Microsoft Corporation | Customizable application project generation process and system |
DE69728640T2 (de) * | 1997-02-21 | 2005-04-21 | Alcatel Sa | Verfahren zur Erzeugung eines Rechnerprogrammes |
US6026238A (en) * | 1997-08-18 | 2000-02-15 | Microsoft Corporatrion | Interface conversion modules based upon generalized templates for multiple platform computer systems |
-
1997
- 1997-08-18 US US08/912,454 patent/US6026238A/en not_active Expired - Lifetime
-
1998
- 1998-08-17 EP EP98939965A patent/EP1021762B1/en not_active Expired - Lifetime
- 1998-08-17 JP JP2000510073A patent/JP3641430B2/ja not_active Expired - Fee Related
- 1998-08-17 AT AT98939965T patent/ATE252743T1/de not_active IP Right Cessation
- 1998-08-17 DE DE69819188T patent/DE69819188T2/de not_active Expired - Lifetime
- 1998-08-17 WO PCT/US1998/017008 patent/WO1999009474A1/en active IP Right Grant
-
1999
- 1999-12-15 US US09/461,860 patent/US6233731B1/en not_active Expired - Fee Related
-
2001
- 2001-02-22 US US09/791,006 patent/US6810517B2/en not_active Expired - Fee Related
-
2004
- 2004-10-25 JP JP2004310175A patent/JP4128995B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6195449A (ja) * | 1984-10-17 | 1986-05-14 | Nec Corp | ソ−スプログラム管理方式 |
JPH05127880A (ja) * | 1991-11-01 | 1993-05-25 | Toyota Motor Corp | 電子制御用プログラム開発支援装置 |
JPH05224943A (ja) * | 1992-02-14 | 1993-09-03 | Nec Corp | 原始プログラム変換装置 |
JPH064298A (ja) * | 1992-06-18 | 1994-01-14 | Hitachi Ltd | プログラム開発環境構築システム |
JPH09179728A (ja) * | 1995-12-22 | 1997-07-11 | Hitachi Ltd | 異パーソナリティ・アプリケーションの起動方法およびコンピュータ・システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164265A (ja) * | 2004-12-03 | 2006-06-22 | Microsoft Corp | サブシステム間のリソース共有の可能化 |
JP2010517134A (ja) * | 2007-01-22 | 2010-05-20 | イースリーネット、カンパニー、リミテッド | 異機種間プログラム連動方法及びそのミドルウェアプラットホームエンジン |
Also Published As
Publication number | Publication date |
---|---|
US6233731B1 (en) | 2001-05-15 |
EP1021762A1 (en) | 2000-07-26 |
US6810517B2 (en) | 2004-10-26 |
DE69819188T2 (de) | 2004-05-19 |
EP1021762B1 (en) | 2003-10-22 |
ATE252743T1 (de) | 2003-11-15 |
US6026238A (en) | 2000-02-15 |
JP3641430B2 (ja) | 2005-04-20 |
DE69819188D1 (de) | 2003-11-27 |
US20010008023A1 (en) | 2001-07-12 |
WO1999009474A1 (en) | 1999-02-25 |
JP4128995B2 (ja) | 2008-07-30 |
JP2005100437A (ja) | 2005-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001516079A (ja) | 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ | |
US6898788B2 (en) | System for modifying the functionality of compiled computer code at run-time | |
US7010796B1 (en) | Methods and apparatus providing remote operation of an application programming interface | |
US6230117B1 (en) | System for automated interface generation for computer programs operating in different environments | |
US6011916A (en) | Java I/O toolkit for applications and applets | |
US8196138B2 (en) | Method and system for migrating virtual machines between hypervisors | |
US6035121A (en) | Method and system for localizing a computer program | |
US20020013862A1 (en) | Method for data access code generation | |
US5881289A (en) | Remote compiling of source code for cross development | |
US20030009747A1 (en) | Apparatus and method for porting applications to different platforms | |
JPH10111802A (ja) | 分散オブジェクトシステムの応用分野におけるコード生成器 | |
Orr et al. | OMOS-an object server for program execution | |
Neumann et al. | Wafe-An X Toolkit Based Frontend for Application Programs in Various Programming Languages. | |
Spinellis | Outwit:{UNIX}{Tool-Based} Programming Meets the Windows World | |
Meyer | Teaching object technology | |
KR960013965B1 (ko) | 이동통신 기지국 관리시스템의 메뉴 자동 생성 방법 | |
Fennessy | Plan 9: Bad movie, good operating system | |
Anderson | An Introductory User’s Guide to IRAF Scripts | |
Zelkowitz | Evolution towards specifications environment: experiences with syntax editors | |
JPH0683630A (ja) | プログラム自動変換装置 | |
Baker et al. | Ada bindings for C interfaces: Lessons learned from the florist implementation | |
Köster | FEATFLOW in a Windows environment | |
Packard’s SoftBench | Object-oriented software-development tools | |
Macmillan | ANSAware/RT 1.1 Release Notes | |
JP2001014172A (ja) | プログラム変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20030728 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040423 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040604 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040827 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041008 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050121 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110128 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110128 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130128 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |