JP2002525744A - テキスト・オブジェクトのコンパイル方法およびシステム - Google Patents

テキスト・オブジェクトのコンパイル方法およびシステム

Info

Publication number
JP2002525744A
JP2002525744A JP2000571342A JP2000571342A JP2002525744A JP 2002525744 A JP2002525744 A JP 2002525744A JP 2000571342 A JP2000571342 A JP 2000571342A JP 2000571342 A JP2000571342 A JP 2000571342A JP 2002525744 A JP2002525744 A JP 2002525744A
Authority
JP
Japan
Prior art keywords
tokens
regular expression
file
computer
class
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
JP2000571342A
Other languages
English (en)
Inventor
ケイ. ドーミ、ドゥウェイン
Original Assignee
ネットクリエイト システムズ インコーポレイテッド
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 ネットクリエイト システムズ インコーポレイテッド filed Critical ネットクリエイト システムズ インコーポレイテッド
Publication of JP2002525744A publication Critical patent/JP2002525744A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis

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)

Abstract

(57)【要約】 機械語のコードでない2進オブジェクトおよびテキスト・オブジェクトを発生することができるテキスト・オブジェクト・コンパイラおよび言語。任意のテキストまたは2進フォーマットで情報の目的ファイルを生成するオブジェクト指向のコンピュータ言語であって、ファイルは“page”としてプログラマによって定義され、ファイルのロケーションが“targets”としてプログラマによって定義される。コンパイラは言語をコンパイルして任意の各種の出力を発生し、その出力はテキスト・フォーマット(HTML、SGML、および他のスクリプト言語など)および2進フォーマット(グラフィック画像、2進データ、または他のマルチメディア情報など)を含む。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、ソフトウェア・コンパイラの分野に関し、特に、1つまたはそれ以
上のソース・ファイルから情報のファイルを生成する方法に関する。
【0002】 (関連技術の説明) 1989年3月に、European Laboratory for Pa
rticle Physics(粒子物理学のためのヨーロッパ研究所)または
CERN(Conseil Europeen pour la Recher
che Nucleaire)がワールド・ワイド・ウェブ(WWW、または単
に「ウェブ」)を開発した。それは1つのコンピュータ上のユーザが他のコンピ
ュータ上に格納されている情報に世界中のネットワークを経由してアクセスする
ことができるインターネット・ベースのコンピュータ・ネットワークである。ウ
ェブ・ブラウザとして知られている直感的なユーザ・インターフェースにより、
ウェブは急速にテキストおよび2進情報の送信およびアクセスのための方法とし
て普及した。それ以来、ワールド・ワイド・ウェブ・サイトの数、およびウェブ
上に置かれる情報の量が爆発的に増えてきている。
【0003】 電子ファイル、文書、画像、音声および他のフォーマットの形式での情報が、
インターネットおよびウェブ・コンテンツのベースを形成し、有用で意味のある
ウェブ・サイトを生成するための重要な要素となっている。
【0004】 ウェブ上に情報を置くためには、その情報は「ファイル」の中に2進フォーマ
ットまたはテキスト・フォーマットで格納されなければならない。バイナリ文書
は格納される情報によって変わる既知のフォーマットで保存されている。例えば
、二次元画像は“Joint Photographic Experts G
roup”(JPEG)または“Graphical Image Forma
t”(GIF)の標準フォーマットで格納されることが多い。音声ファイルおよ
び動画像には、同様に他のフォーマット、例えば、“WAV”、“MOV”、お
よび“MPEG”などのフォーマットがある。テキスト文書の場合、文書は、H
yperText Markup Language(HTML)のフォーマッ
トで格納される。HTMLフォーマットはウェブのテキスト文書(“ウェブ・ペ
ージ”とも呼ぶ)の体裁および構造を指定する。
【0005】 これらのフォーマットは、ウェブ・ブラウザに対する互換性を生成するために
必要であるが、これらの固定されたフォーマットでウェブ・サイトを変更し、情
報を更新することは困難であり、時間が掛かる。例えば、すべてのウェブ・ペー
ジに著作権の注意書きがあると仮定する。すべてのページ上の著作権の注意書き
を更新するには、ウェブ・サイトの管理者が手ですべてのページを変更するか、
あるいはグローバル・サーチ・アンド・リプレースの方法を使用しなければなら
ない。しかし、いくつかのウェブ・サイトでの方法が一様でないために、グロー
バル・サーチ・アンド・リプレースは使用できない可能性がある。もっと複雑な
ウェブ・ページの変更、例えば、“アプレット”として知られている小規模アプ
リケーションを変更することもさらに困難である。更新することができる単独の
ロケーションまたはファイルがあって、その変更がウェブ・サイト全体に対して
、あるいは適切なウェブ・ページだけに対して伝播する場合はまだよい。ごく単
純に云えば、大量のデータを任意のフォーマットで維持および生成する非常に単
純な問題は、困難であり、非常に時間が掛かる。
【0006】 いくつかの解決策が提案されており、それぞれ問題がある。 特定のウェブ開発者は、“what you see is what yo
u get”(WYSIWYG)なウェブ・ページ・エディタによりウェブ・ペ
ージを生成することを選定する。そのようなエディタは、ページの設計を単純化
するグラフィック・インターフェースを通してウェブ・ページをアセンブルする
が、その結果は制限される。何故なら、それはその情報を維持するためのニーズ
を解決しないからである。上記の例を使用して、すべてのページ上での著作権の
注意書きを更新するには、ウェブ・サイトの管理者が、ウェブ・ページを個々に
編集しなければならないか、あるいはウェブ・ページ・エディタのプログラムが
グローバル・サーチ・アンド・リプレースの方法を使用することもできる。
【0007】 代わりに、HTMLファイルをアセンブルするために単純なプリプロセッサ・
プログラムが使用されている。そのようなプリプロセッサによってウェブ・ペー
ジ設計者は、文書を前処理し、リストされている文書をマスタ文書の中に挿入す
ることができる。例えば、“foo.doc”と呼ばれる別のリストの文書ファ
イルをマスタ文書の中に含めるために、ウェブ・ページ設計者は次のようにタイ
プすることができる。
【0008】 #include “foo.doc” そうすると、そのリストされた文書が含められる。これによって共通のHTML
コードのフラグメントを文書の中に挿入することができるが、ウェブ・サイトが
成長し、より多くのページがそのサイトに追加されるにつれて、そのようなシス
テムのメンテナンスが急速にロジスティック上の悪夢となる。また、そのフラグ
メントは、それらが文書の中に含められているポイントにおいて再定義すること
ができない。さらに、そのようなシステムは、テキスト・ベースの文書に厳密に
制限され、2進形式の情報を扱うことはできない。
【0009】 引用によって本明細書の記載に援用する「文書管理および生産システム」とい
う名称のスミス他の、1993年1月19日発行の米国特許第5,181,16
2号は、文書を、オブジェクト指向のコンピュータ環境において独立した「オブ
ジェクト」として格納される論理構成要素に分解するシステムを開示している。
そのようなシステムは、その文書がプリントされ、電子的に表示され、あるいは
電子的に伝送されるたびに発生する関係データベースに対する問合わせに依存し
ている。ページを1分間に数千回送信することができるウェブ・サイトの場合、
この解決策は、そのウェブ・サーバの演算リソースにおいて重荷となる。結果と
して、そのシステムは、低速であり、そのような要求度の高い環境に対しては有
効性が限定されたものになる。同様に、クライアント・マシン上で数ページの情
報を配送するために関係データベースを使用することが試みられてきている。こ
れはそのクライアント・マシンに対してそれらが配送される時に文書の動的な構
造を提供するが、この解決策もページ情報を絶えず再生しなければならないので
、サーバの演算リソースに対して重荷となる。キャッシングによって生成される
ページは、その演算リソースの問題をある程度解決することができるが、キャッ
シュされたページは古くなる可能性があるので、新しい問題が発生する。
【0010】 すべてを本明細書の記載に援用するいくつかの関連特許、すなわち、1997
年9月16日付けのゴスリングの、米国特許第5,668,999号(「バイト
・コードのプログラム・ループの中でのスタックの使用の予備検証のためのシス
テムおよび方法」)、マックマニスの米国特許第5,692,047号(「信頼
されるソースからの検証不能なプログラムを使用するためのファシリティによる
検証可能なプログラムを実行するためのシステムおよび方法」)および、フォー
リー他の、米国特許第5,706,502号(「インターネット・イネーブル型
のポートフォリオ・マネージャのシステムおよび方法」)も、この問題を解決す
ることができない。まとめて、これらの特許はクライアントのワークステーショ
ン上で遠隔でアプリケーションを実行するためにバイトコード言語で書かれたコ
ンピュータ・プログラムの保全性を検証する方法およびシステムを開示している
。この解決策は動的なクライアント・マシン・アプリケーションを生成すること
ができるが、それはシステムの中で情報を維持することの問題を解決しない。
【0011】 必要なものは、異なるファイル・フォーマットのファイルを生成することがで
き、しかも維持することが容易である2進およびテキストの両方の情報を処理す
る、より柔軟性のある方法である。
【0012】 本発明の、「テキスト・オブジェクト・コンパイラ」の方法によって、ユーザ
は情報を抽象化し、実質的に任意のファイル・フォーマットで情報を作り出すこ
とができる。
【0013】 現代のほとんどすべてのコンピュータは、機械語に対して応答するレジスタ・
ベースのノイマン型コンピュータである。これらの機械語はレジスタの内容につ
いて演算する命令を含む。元々、コンピュータのソフトウェア命令は、機械語の
操作に関して編成されていた。コンピュータがさらに複雑になるにつれて、機械
語でのプログラミングが困難になり、ますます厄介なものになってきた。結果と
して、コンピュータ科学者は機械命令を抽象化し、式および手順に関して構築さ
れたソース言語として知られている高級言語を生成した。ソフトウェアが進化す
るにつれて、ソース言語を機械語での命令に変換するための2つの戦略、すなわ
ち、インタプリタおよびコンパイラが開発された。
【0014】 ネイティブ機械語で書かれたインタプリタは、コンピュータがソース言語の1
つで書かれているプログラムを実行するように構成する。ソース言語の基本的な
演算子またはコマンドが与えられたマシンのネイティブ機械語で書かれたサブル
ーチンのライブラリとして実装されている。インタプリタはソース言語を1つず
つ読み取り、その指定された操作を実行する。解釈されるべきプログラム、すな
わち、ソース・プログラムは、データ構造として表現されている。インタプリタ
は、そのデータ構造を移動し、そのソース・プログラムを分析する。その際、コ
ンピュータはライブラリから適切な基本操作を呼び出すことによって、そのソー
ス・プログラムの意図された挙動をシミュレートする。
【0015】 ソース・プログラムを分析して実行時に機械語に変換する代わりに、プログラ
ム実行の前にこれらのタスクを実行し、より効率的なプログラム実行を可能にす
ることができる。このソース言語を命令に変換する代わりの方法がコンパイルと
呼ばれている。ソース・プログラムを分析して、そのソース・プログラムを機械
語に戻すプログラムはコンパイラと呼ばれる。図1に示されているように、与え
られたソース言語およびマシンに対する伝統的な(すなわち、従来の技術の)コ
ンパイラ2は、ソース・コード1(すなわち、高水準「コンピュータ言語」で書
かれたプログラム)を、この分野の技術においては「機械語」として呼ばれてい
るオブジェクト・コード3、すなわち、そのコンピュータのネイティブ言語で書
かれたプログラムに変換する。
【0016】 図2によって示されている従来のコンパイラ2は、語いアナライザ10、パー
ザ20、およびコード・ジェネレータ30から構成されている。語いアナライザ
10は、コンピュータのソース・コード1を取り、そのコードを語いトークンに
分解する。そのような語いトークンは関連の高級コンピュータ言語における命令
または他のキーワードに基づくことができる。パーザ20は、そのトークンを取
り、それらをソース言語およびコンピュータのソース・コード1によって設定さ
れている関係に基づいて論理的にグループ化する。最後にコード・ジェネレータ
30はパーザ20によって設定されたその関係を取り、それらをコンピュータの
機械語での実行可能なコンピュータ・オブジェクト・コード3に変換する。
【0017】 従来のコンパイラは、引用によって本明細書の記載に援用する米国特許第5,
560,015号(1996年9月24日付けのオノデラの、「コンパイラおよ
びコンパイル方法」)、米国特許第5,442,792号(1995年8月15
日付けのチョンの、「エキスパート・システムのコンパイル方法」)、および米
国特許第5,768,592号(1998年6月16日付けのチャンの、「プロ
ファイル・データを管理するための方法および装置」)などの従来の技術におい
て周知である。
【0018】 従来のインタプリタおよびコンパイラは、コンピュータの高級言語のソース・
コードをコンピュータ上で実行されるオブジェクト・コードに変換する。実効的
に、インタプリタおよびコンパイラによって、コンピュータのプログラマは高レ
ベルの抽象化されたコンピュータ・プログラムを作成し、オブジェクト・コード
を生成することができる。
【0019】 (発明の概要) 本発明の「テキスト・オブジェクト・コンパイラ」(TOC)の方法およびシ
ステムは、コンピュータ・プログラムに対して従来のコンパイラが適用するのと
同じレベルの情報に対する抽象化を適用する。ユーザは、機械語のオブジェクト
・コードではない抽象的なソース・コードを設計し、それが1つのファイルまた
は複数のファイルにコンパイルされる。代わりに、TOCはテキストまたはバイ
ナリ・ファイルなどの実質的に任意の情報フォーマットで情報を発生する。TO
Cは、「テキスト・オブジェクト言語」(TOL)としてASCIIテキストで
書かれた1つまたはそれ以上のソース・ファイルを読み出し、そのソース・ファ
イルを任意の文書フォーマットでの1つまたはそれ以上の出力ファイルに処理す
る。そのコンパイル・プロセスは、ソース・ファイルの中の情報を出力の文書フ
ォーマットに再編成し、文書生成プロセスを容易化するために、コンパイル時の
ユーティリティ・コマンドを含むことができる。
【0020】 第1の実施形態においては、語いアナライザがTOLの正規表現で書かれたソ
ース入力をトークン化し、トークン表現のソース入力を作り出す。そのようなT
OLの式は、変数、関数、およびクラスを含むことができる。パーザはトークン
間の関係を決定し、ページ・ジェネレータが、そのトークンとトークン間の関係
を評価して出力を発生することができるようにする。その結果の出力をソース入
力によって指定された目的ロケーションにおいてファイルとして書き込むことが
できる。
【0021】 本発明のもう1つの態様においては、ソース入力が語いに分析されて、そのソ
ース入力の正規表現を表しているトークンが作られる。その正規表現はテキスト
・オブジェクト言語で書かれ、変数、関数およびクラスを含むことができる。そ
の正規表現が構文解析されてトークン間の関係が決定される。例えば、トークン
間の任意のクラス関係が、このステップの中で決定される。最後に、そのトーク
ンおよび関係が評価されて非実行可能出力が発生される。その非実行可能出力が
次にファイルに書き込まれる。そのファイルのロケーションは、指定の目的ロケ
ーションとして元のソース入力によって指定することができる。
【0022】 本発明のこの好適な実施形態においては、テキスト・オブジェクト言語の正規
表現で書かれたソース入力が先ず最初に読み込まれる。その正規表現はそのプロ
セスの出力を決定するために使用されるページ定義を含んでおり、そしてさらに
変数、関数、ターゲットのロケーションおよびオブジェクト指向のクラスを含む
ことができる。読み込まれると、ソース入力は語いに分析されて、その正規表現
のトークン表現が作り出され、それはページ定義から発生されたトークンを含む
。そのトークンが構文解析されてトークン間の関係が決定され、その結果の関係
がコンピュータ・メモリの中で作られる。各変数および関数が評価され、それら
の値が決定される。その決定された値がそれぞれの対応しているコンピュータ・
メモリの中の変数または関数のトークンを置き換える。次に、ページのトークン
のコンピュータ・メモリ表現に基づいた非実行可能ファイルが、ソース入力の中
で指定された目的ロケーションにあるファイルに対して書き込まれる。
【0023】 本発明の上記および他の目的、特徴、および利点が、添付の図面を参照しなが
ら以下の詳細な説明を読めばより容易に理解することができるだろう。 (発明の詳細な説明) テキスト・オブジェクト・コンパイラは、実行可能ファイルを生成するために
プログラミング言語において普通に使用されている各種の既存のプログラミング
およびコンパイラの方法を使用する。TOCの一意な側面は、それが非実行可能
ファイルを生成することに対して適用されることである。その非実行可能ファイ
ルは「ターゲット・ドキュメント」と呼ばれる。図3に示されているように、テ
キスト・オブジェクト言語(TOL)で書かれているソース・ファイル101が
、TOC102によってコンパイルされ、出力としてターゲット・ドキュメント
103が作られる。そのターゲット・ドキュメントのロケーションは、プログラ
マが定義することができ、そのロケーションは「目的ロケーション」と呼ばれる
。ターゲット・ドキュメント103は、任意のタイプのフォーマットであってよ
く、また、他のコンパイラまたはプログラムによって使用される他のソース・フ
ァイルを作り出すことさえもできる。TOC102は、ターゲット・ドキュメン
ト103のフォーマットに関しては実際には何も知らない。そのターゲット・ド
キュメントのフォーマットは専らプログラマに任されている。
【0024】 ここで、添付図面で示されている本発明の好適な実施形態を詳細に参照する。
本発明はその好適な実施形態に関して説明されるが、それらは本発明をそれらの
実施形態に限定することが意図されているのではないことを理解されたい。反対
に、本発明は付記されている特許請求の範囲によって定義されている本発明の精
神および範囲内に含めることができる代替案、変更および等価物を含むことが意
図されている。
【0025】 テキスト・オブジェクト言語(TOL) この好適な実施形態においては、1つまたは複数のソース・ファイルは、テキ
スト・オブジェクト言語で書かれており、それはコンパイルまたは解釈されて、
少なくとも1つの目的ファイルが結果として作られる。TOLの演算子のいくつ
かのリスティングが表1に提供されている。
【0026】
【表1】 表1. TOLの演算子 TOLは、他のプログラミング言語に似ており、変数、クラス、関数およびサ
ブルーチンを備えているが、TOC102によってのみ認識される言語構文を使
用する。さらに、TOLの演算子に対して、いくつかのコンパイル時のユーティ
リティ・コマンドが、文書生成プロセスを容易化するために存在する。
【0027】
【表2】 表2. TOLのコンパイル時のユーティリティ・コマンド 表1のテキスト・オブジェクト言語で書かれているソース・ファイルの一例1
01が表3に示されている。
【0028】
【表3】 表3. テキスト・オブジェクト言語で書かれているソース・ファイルの例(
“mysource.txt”)
【0029】 表3のテキスト・オブジェクト・コードのソース・ファイル101の例の中で
示されているように、TOLの5つの一次構成要素、すなわち、クラス、変数、
関数、ページ、およびターゲットがある。クラス、変数、および関数の概念は従
来の技術のコンピュータ言語の中に存在するが、テキスト・オブジェクト言語の
中にはそのほかにページおよびターゲットの概念が存在する。
【0030】 TOLのクラスは普通のオブジェクト指向プログラミング(OOP)のクラス
に似ていて、その要素の多くを共有する。クラスによって、文書のプログラマは
、そのソース・ファイル全体を通じて再使用することができて任意の目的ファイ
ルに対して適用されるオブジェクトに、文書のセクションを編成することができ
る。クラスの指定はオプションである。何故なら、デフォールトのクラス、すな
わち、“base class”が常に仮定されるからである。「派生された」
または「子供」のクラスは、そのベースまたは「親」のクラスのすべての変数お
よび関数を継承する。
【0031】 クラスはpublic、private、またはprotectedがあり得
る。publicのクラスによってそれぞれの関数および変数を他のクラスによ
って再定義することができる。デフォールトでは、すべてのクラスがpubli
cである。privateのクラスによってそれぞれの関数および変数を他のメ
ンバまたはfriendクラスによってのみ再定義することができる。prot
ectedのクラスによってその変数および関数がメンバ関数、それが宣言され
ているクラスのfriend、およびその保護されているクラスから派生したク
ラスのメンバ関数およびfriendによって使用されるようにすることができ
る。さらに、1つのクラスが他のクラスをfriendとして宣言することがで
きる。friendクラスには、その宣言しているクラスの変数および関数のす
べてに対するpublicアクセスが与えられている。
【0032】 変数によって、ソース・ファイルのプログラマはターゲット・ドキュメントの
要素を参照によって表すことができ、そしてその参照を使用して、その実際のデ
ータを使用するのではなく、セクションまたはターゲット・ドキュメントを生成
することができる。クラスと同様に、この好適な実施形態においては、変数はp
ublic、privateまたはprotectedがあり得る。また、変数
をvirtualとし、それらを派生されたクラスの中で定義させることができ
る。しかし、変数がvirtualと宣言されると、その変数のすべての継承さ
れたクラス・インスタンスはvirtualである。そのクラスのvirtua
l変数は、その派生された(子供の)クラスによってそのvirtual変数が
定義されるまで、そのプログラムの内部には存在することができないことに留意
されたい。
【0033】 関数はいくつかの計算をカプセル化するための便利な方法であり、その実行に
関して煩わされることなく使用することができる。関数によって、プログラマが
詳細に関して煩わされることなしに概念的な方法で再帰型のプロシージャを抽象
化することができる。関数は代表的なプログラミングのサブルーチンに似ている
。クラスおよび変数と同様に、関数にはpublic、private、または
protectedがあり得る。
【0034】 関数名のオーバローディングによって、異なる引数タイプについての共通の演
算を提供する複数の関数インスタンスが共通の名前を共有することができる。い
くつかの関数が同じ名前を共有するが、それぞれの変数の数が異なっているよう
に関数をオーバロードすることができる。オーバロードされた各関数は、一意な
個数の変数を備えていなければならず、それによってコンパイラは、そのオーバ
ロードされた関数の各インスタンス間の識別を行うことができる。関数をvir
tualとし、それらを派生された(子供の)クラスで定義させることができる
。関数がvirtualと宣言されると、その関数のすべての派生されたクラス
のインスタンスはvirtualである。baseclassのvirtual
関数も、その派生された関数によって継承される場合に、その派生されたクラス
の中でもvirtualである。そのような関数は抽象クラスとして扱われ、そ
のクラスのオブジェクトは、その関数が派生されたクラスによって定義されるま
で、そのプログラムの内部には存在することができない。
【0035】 pageはテキスト・オブジェクト言語にとって一意である。pageのパラ
メータは、ソース・ファイル101を実際の個々のターゲット・ドキュメントの
103に組み合わせるか、あるいは構文解析する方法をテキスト・オブジェクト
・コンパイラ102に知らせる。pageは結果のターゲット・ドキュメント1
03の開始点および終了点を定義し、ターゲット・ドキュメント103の内容を
定義する。
【0036】 targetsもテキスト・オブジェクト言語にとって一意である。targ
etのパラメータは、ターゲットのロケーションを定義する。定義されると、そ
のtargetのパラメータは、そのターゲット・ドキュメントを置く場所につ
いてテキスト・オブジェクト・コンパイラ102に知らせる。このロケーション
は「目的ロケーション」と呼ばれる。目的ロケーションはTOC102を実行し
ているコンピュータにとってローカルであってよく、あるいはそのコンピュータ
によってコンピュータ・ネットワーク上でアクセスすることができる遠隔地にあ
ってよい。ソース・ファイル101が、そのターゲット・パラメータによって複
数の目的ロケーションを定義する場合、TOC102は各目的ロケーションにお
いて同一のターゲット・ドキュメント103を生成する。複数のターゲットは、
実験的な出力を生成すること、冗長の目的のためにバックアップ・ファイルを生
成すること、そしてメイン/プロダクションのサーバのファイルを更新すること
のために有用である。例えば、プログラマは2つのターゲットを定義して一次ウ
ェブ・サイトおよびその「ミラー」ウェブ・サイトを代わりのロケーションにお
いて生成することができる。ターゲット・パラメータがテキスト・オブジェクト
のコード101から省略された場合、そのターゲット・ドキュメント103はデ
フォールトのローカル・ロケーションに生成される。
【0037】 テキスト・オブジェクト・コンパイラ(TOC) テキスト・オブジェクト・コンパイラ102は、テキスト・オブジェクト言語
のソース・ファイル101のコンパイルを実行し、結果としてそのターゲット・
パラメータによって定義されている目的ロケーションにおいて出力としてpag
eのパラメータによって定義されているターゲット・ドキュメント103を生成
する。説明されたように、ターゲット・ドキュメント103は、任意のフォーマ
ットであってよい。これはオブジェクトの機械語のコード、すなわち、実行可能
ファイルだけを生成する従来の技術のソフトウェア・コンパイラからTOC10
2を区別することに留意されたい。しかし、プログラマはそれぞれのソース・プ
ログラム・コード101によってそのファイルの出力フォーマットを定義するこ
とに留意されたい。
【0038】 ここで、TOCの構造および方法について注目する。 TOC102はその構造において従来のコンパイラと似ている。従来のコンパ
イラと同様にTOCは語いアナライザ10およびパーザ20を含む。しかし、T
OCと違って、図2に示されている従来のコンパイラは、パーザの出力をコンピ
ュータのコード・ジェネレータ3に対して供給し、実行可能なコンピュータ・オ
ブジェクト・コード3を生成する。図4に示されているように、テキスト・オブ
ジェクト・コンパイラ102においては、パーザ20の出力がページ・ジェネレ
ータ200に対して与えられ、ターゲット・ドキュメント103が出力として発
生される。
【0039】 TOCの語いアナライザ10は、従来のコンパイラの語いアナライザと同様な
方法で式を検査する。この「トークン」として知られているユニットへの分割は
、この分野の技術において「語い分析」として知られているプロセスである。本
質的に、語いアナライザは、正規表現を探す。正規表現はコンピュータの言語を
使用しているパターン技術である。語いアナライザは、できるかぎりのマッチす
る正規表現を実行し、そしてソース・ファイル全体のテキストをトークンに分類
しようとする。テキスト・オブジェクト言語においては、その式は変数名、関数
名、クラス名、目的ロケーション、ページ定義、定数、文字列、演算子、句読点
などを含むことができる。例えば、表3の中のソース・ファイルをコンパイルす
る時、コンパイラは最初に既知の演算子(表1にリストされている)の各インス
タンスを既知のトークンとして最初に分類する。しかし、そのワードまたは式が
コンパイラにとって未知のものであった場合、それはやはりトークン化されるが
、その値または関係はパーザによって決定されなくてはならない。
【0040】 入力がトークンに分割される際、コンパイラはそのトークン間の関係を確立し
なければならない。テキスト・オブジェクト・コンパイラは、式、ステートメン
ト、宣言、ブロック、関数/プロシージャ、クラス構造、およびプログラムの中
のページを見つける必要がある。それは「パージング」として知られているプロ
セスである。コンパイラが理解する関係を定義する規則のリストは文法と呼ばれ
る。一例のテキスト・オブジェクト言語の文法が上記の表1に示されている。
【0041】 テキスト・オブジェクトのコンパイル・プロセスは例を示すことによって最も
よく説明される。表3の中の例などの既存のソース・ファイル101がテキスト
・オブジェクト言語で書かれている。コンパイラは図5のステップ250に示さ
れているように、ソース・ファイルを読み取る。そのソース・コードをコンパイ
ルするプロセスにおいて、コンパイラは2つのタスクを何度も繰り返し実行する
。それらは、a)入力のソース・コードを意味のあるユニットに分割するタスク
(ステップ260)および、b)そのユニット間の関係を発見するタスク(ステ
ップ270)である。これらの2つのプロセスは、それぞれ「語い分析」(ステ
ップ260)および「パージング」(ステップ270)と呼ばれる。トークンの
関係を決定することができない場合、パーザは次にそのソース・ファイルが終り
に達したかどうかをステップ280において決定する。ソース・ファイルの終り
に達していた場合(ステップ280)、未決定のトークンは構文または使用法の
いずれかがエラーであり、ステップ282においてエラーがレポートされる。ソ
ース・ファイルが終りに達していなかった場合、コンパイラはステップ250へ
ループ・バックし、ソース・ファイルを読み取る。同様に、ステップ270のパ
ージングが正常に行われ、ステップ284によって決定されるようにファイル全
体がまだ終りに達していなかった場合、コンパイラはステップ250においてソ
ース・ファイルのラインをさらに読み取る。
【0042】 語い分析およびパージングの一例は次の通りである。コンパイラは最初に表3
の第1ラインをステップ250において読み取る。各ワードがトークン化され、
そしてTOL演算子などの正規表現の既知のセットに対してマッチされる。最初
の既知の演算子、コメント演算子(“//”)が識別260において識別される
。このTOL文法の実装によって定義されているように、そのラインの残りの部
分はコメントであると決定され、そしてコンパイラはステップ270においてそ
のラインの残りの部分を無視する。ソース・ファイルが終りに達していないこと
がステップ284によって決定されているので、コンパイル・プロセスが継続し
、コンパイラはステップ250においてソース・ファイルの次のラインを読み取
る。
【0043】 語いアナライザは第2のラインに4つのトークン、すなわち、ワード“cla
ss”、“myclass”、“:=”および“baseclass”が存在す
ることをステップ260において知る。これらのトークンのうちの2つ、すなわ
ち、“class”および等号演算子(“:=”)が演算子として識別され、第
3のトークン“baseclass”は“baseclass”のキーワードと
して識別され、それはTOLのbaseclassを定義する。トークン“my
class”は、最初はその語いアナライザには知られていない。そのトークン
の情報がパーザに転送され、パーザはそのソース・ファイルがTOLのbase
classから下りてくる子供のクラス“myclass”を定義していること
をステップ270において理解する。パーザはメモリ・テーブル、メモリ・ツリ
ー、または等価なメモリ構造を構築してそのクラス構造を分類する。そのプロセ
スが次のラインについて繰り返され、図6によって示されているクラスの継承の
関係が分かる。クラスmyclass310がbaseclass300から導
かれており、そしてクラスnewclass320は「親の」クラスmycla
ss310から導かれた「子供の」クラスである。そのnewclassのクラ
スを反映するようにメモリ・ツリーが拡張される。
【0044】 コンパイラは表3の中の次のいくつかのラインを処理する。それらは変数“t
itle”に対する変数定義から構成されている。その変数が構文解析され、メ
モリ・ツリーの中に格納され、それぞれの適切なクラス定義に対して図7で示さ
れているようにリンクされる。baseclass300には変数“title
”301が関連付けられている。同様に、myclass310は、別の変数“
title”311に対する異なる定義と関係付けられている。
【0045】 図8は、それぞれの定義されたクラスについて宣言されている関数の関係を示
している。表3の中のコードは、baseclass300およびnewcla
ss320に対して異なっている“myfunc”関数を定義しており、結果と
して、myfunc302がbaseclass300と関係付けられ、そして
異なるmyfunc322関数がnewclass320と関係付けられている
【0046】 図9は、継承図をそれぞれに関連付けられた変数および関数と統合化している
。baseclass300には2つの変数、すなわち、title301と、
関数のmyfunc302の両方を有している。また、クラスmyclass3
10も1つの変数、すなわち、title311を有している。それはmyfu
ncに対する定義を有していないので、それはmyfunc302のbasec
lass300の定義からのmyfunc312に対する関数定義を継承する。
同様に、クラスnewclass320は、“title”変数に対する値を有
しておらず、したがってmyclassのタイトル定義311からのtitle
321に対するその定義を継承する。newclass320は関数myfun
c322に対するそれ自身の定義を有しており、これも継承図の中に反映されて
いる。
【0047】 語い分析およびパージングのプロセスがターゲット・ドキュメントおよびその
コードの目的ロケーションのセクションの両方に対して繰り返される。図10に
示されているように、ターゲット・ドキュメント“first.txt”400
は、baseclass300のターゲット・ドキュメントであり、“seco
nd.txt”410はクラスmyclass310のターゲット・ドキュメン
トであり、そして“third.txt”420は、クラスnewclass3
20のターゲット・ドキュメントである。3つの各ターゲット・ドキュメントは
、適切なクラス関数“myfunc”に対する単独の関数呼出しから構成されて
いる。
【0048】 すべてのソース・ファイルがトークン化され、既知の値へ構文解析されると、
その確立されたトークンおよび関係情報がコンパイラのページ・ジェネレータに
対してステップ286において渡される。
【0049】 以前に図4で示されたように、コンパイラのページ・ジェネレータ200は、
パーザ20から転送されてきた関係およびトークンに基づいて各ターゲット・ド
キュメントを生成し、それぞれの適切な値で変数を置き換え、関数呼出しを評価
し、そして結果の情報を図10に示されているページ・テーブルの中に代入する
【0050】 ページ・ジェネレータのサブプロセスが図14において詳細に示されている。
トークンの関係情報がコンパイラのページ・ジェネレータに対してステップ28
6において渡される。各ページ・クラスに対して、その変数がそれぞれの定義で
ステップ288において置き換えられる。単純な実施形態においては、これはそ
の変数が現れる場所の各メモリ・テーブルの中への値の単なる代入であってよい
。すべてのページ・クラスに対する各関数呼出しが次にステップ290において
評価される。命名された各目的ロケーションの存在が検証され、ディレクトリな
どのそのロケーションが存在しなかった場合、それはこの時点でコンパイラによ
ってステップ292において生成される。ターゲット・ドキュメントに対応して
いる各ページが次に各目的ロケーションにおいてステップ294において書き込
まれる。最後に、その書込みがコンパイラによってステップ296において検証
される。
【0051】 例えば、図11に示されているように、“first.txt”400に対す
る出力が、そのページを生成する際に使用される関数および変数を定義する適切
なクラス、baseclass300を通知することによって発生される。表3
は“title”変数および“This is a base class e
xample”を入力として使用して、“myfunc”に対する関数呼出しに
よって生成されるページとして“first.txt”を定義する。“firs
t.txt”は、クラスbaseclassのテキストであるので、その“ti
tle”および“myfunc”に対する定義は、そのbaseclassから
直接に取られる。その結果が表4に示されている。
【0052】
【表4】 表4. “first.txt”に対するコンパイルされた出力 図12は、クラス“myclass”310のテキストである“second
.txt”410に対するコンパイルを継続する。“title”に対する定義
は、クラスmyclass310から直接に取られる。“myfunc”に対す
る定義は普通にクラスmyclass310から取られることになる。しかし、
“myfunc“は、myclass310に対しては定義されていないので、
myclassの親のクラスに対するmyfunc関数の定義、basecla
ss300が使用される。“second.txt”410に対してコンパイル
された結果が表5に示されている。
【0053】
【表5】 表5. “second.txt”に対するコンパイルされた出力 図13は、クラス“newclass”320のテキストである“third
.txt”420に対するコンパイルを継続する。“title”および”my
func”に対する定義は普通にクラスnewclass310から直接に取ら
れる。しかし、その“title”変数がnewclass320に対して定義
されていないので、newclassの親のクラス、myclass310に対
する“title”変数定義が使用される。“myfunc”がクラスnewc
lass310に対して定義されているので、newclassの“myfun
c”の定義が使用される。“third.txt”420に対するコンパイル結
果が表6に示されている。
【0054】
【表6】 表6 “third.txt”に対するコンパイルされた出力 コンパイラが各ページをメモリの中に生成すると、各ページが各目的ロケーシ
ョンにおいてターゲット・ドキュメントとして書き込まれる。コンパイラはオプ
ションとして前に存在していない目的ロケーションを生成することができ、そし
てその書込みをその目的ロケーションにおいて検証することができる。その最も
好適な実施形態においては、TOCは両方のアクションを実行し、目的ロケーシ
ョンが生成されていない場合に警告メッセージをレポートし、あるいは、ターゲ
ット・ドキュメントの書込みにおいて問題が発生した場合にエラー・メッセージ
をレポートする。
【図面の簡単な説明】
【図1】従来のコンパイラ・プロセスの概要図(従来の技術)。
【図2】従来のコンパイラの基本構成要素を示す図(従来の技術)。
【図3】テキスト・オブジェクト・コンパイラ(TOC)プロセスの概要を
示す図。
【図4】テキスト・オブジェクト・コンパイラの基本構成要素を示す図。
【図5】テキスト・オブジェクト・コンパイラによって使用される語い分析
およびパージングのサブプロセスのフローチャート。
【図6】表3にリストされているテキスト・オブジェクト言語のソース・フ
ァイルのクラスの継承図。
【図7】クラス変数とクラスとの関係を示す継承図。
【図8】クラス関数とクラスとの関係を示す継承図。
【図9】それぞれの関数および変数を伴うクラスを統合化している継承図。
【図10】定義されたページとクラスとの関係を示す継承図。
【図11】ターゲット・ドキュメント“first.txt”を生成するた
めに使用されるbaseclassの情報を示す図。
【図12】ターゲット・ドキュメント“second.txt”を生成する
ために使用されるbaseclassおよびmyclassの情報を示す図。
【図13】ターゲット・ドキュメント“third.txt”を生成するた
めに使用されるbaseclass、myclass、およびnewclass
の情報を示す図。
【図14】ページ生成のサブクラスの詳細を示すフローチャート。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MD ,MG,MK,MN,MW,MX,NO,NZ,PL, PT,RO,RU,SD,SE,SG,SI,SK,S L,TJ,TM,TR,TT,TZ,UA,UG,US ,UZ,VN,YU,ZA,ZW

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータであって、 a.ソース入力をトークン化し、前記ソース入力の正規表現を表しているトー
    クンを作り出す語いアナライザと、 b.前記トークン間の関係を決定するパーザと、 c.前記トークンおよび前記トークン間の前記関係を評価し、非実行可能出力
    を発生するページ・ジェネレータとを含むコンピュータ。
  2. 【請求項2】 請求項1に記載のコンピュータにおいて、前記ページ・ジェ
    ネレータが前記出力をファイルとして書き込むコンピュータ。
  3. 【請求項3】 請求項2に記載のコンピュータにおいて、前記ページ・ジェ
    ネレータが前記ファイルを前記ソース入力の中で指定された目的ロケーションに
    おいて書き込むコンピュータ。
  4. 【請求項4】 請求項1に記載のコンピュータにおいて、前記正規表現が変
    数を含むコンピュータ。
  5. 【請求項5】 請求項1に記載のコンピュータにおいて、前記正規表現が関
    数を含むコンピュータ。
  6. 【請求項6】 請求項1に記載のコンピュータにおいて、前記正規表現がク
    ラスを含むコンピュータ。
  7. 【請求項7】 請求項1に記載のコンピュータにおいて、前記正規表現が変
    数、関数、およびクラスを含むコンピュータ。
  8. 【請求項8】 コンピュータ・システムを動作させてテキスト・オブジェク
    ト言語をコンパイルするための方法であって、 ソース入力を語いに分析し、前記ソース入力の正規表現を表しているトークン
    を発生するステップと、 前記トークンを構文解析して前記トークン間の関係を決定するステップと、 前記トークンおよび前記トークン間の前記関係を評価して非実行可能出力を発
    生するステップとを含む方法。
  9. 【請求項9】 請求項8に記載の方法において、 前記非実行可能出力をファイルに書き込むステップをさらに含む方法。
  10. 【請求項10】 請求項9に記載の方法において、前記ファイルが前記ソー
    ス・ファイルの中で指定されている目的ロケーションにおいて書き込まれる方法
  11. 【請求項11】 請求項8に記載の方法において、前記正規表現が変数を含
    む方法。
  12. 【請求項12】 請求項8に記載の方法において、前記正規表現が関数を含
    む方法。
  13. 【請求項13】 請求項8に記載の方法において、前記正規表現がクラスを
    含む方法。
  14. 【請求項14】 請求項8に記載の方法において、前記正規表現が変数、関
    数、およびクラスを含む方法。
  15. 【請求項15】 コンピュータ・システムを動作させてテキスト・オブジェ
    クト言語をコンパイルする方法であって、 変数、関数、およびページの定義を含む、テキスト・オブジェクト言語の正規
    表現を含むソース入力を読み取るステップと、 前記ソース入力を語いに分析して、pageトークンを含む前記正規表現のト
    ークンを発生するステップと、 前記トークンを構文解析して前記トークン間の関係を決定するステップと、 前記トークンおよびそれぞれの関係の表現をコンピュータ・メモリの中で構築
    するステップと、 変数および関数を表す前記トークンを評価してそれぞれの評価された値を決定
    するステップと、 前記変数トークンおよび前記関数トークンのコンピュータ・メモリ表現をそれ
    ぞれの評価された値で置き換えるステップと、 前記pageトークンの前記コンピュータ・メモリ表現に基づいて非実行可能
    ファイルを書き込むステップとを含む方法。
  16. 【請求項16】 請求項15に記載の方法において、前記非実行可能ファイ
    ルが前記ソース入力によって指定されている目的ロケーションにおいて書き込ま
    れる方法。
  17. 【請求項17】 請求項15に記載の方法において、前記正規表現がクラス
    を含む方法。
JP2000571342A 1998-09-23 1999-09-22 テキスト・オブジェクトのコンパイル方法およびシステム Pending JP2002525744A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/159,304 1998-09-23
US09/159,304 US6202201B1 (en) 1998-09-23 1998-09-23 Text object compilation method and system
PCT/US1999/021940 WO2000017748A1 (en) 1998-09-23 1999-09-22 Text object compilation method and system

Publications (1)

Publication Number Publication Date
JP2002525744A true JP2002525744A (ja) 2002-08-13

Family

ID=22571989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000571342A Pending JP2002525744A (ja) 1998-09-23 1999-09-22 テキスト・オブジェクトのコンパイル方法およびシステム

Country Status (6)

Country Link
US (1) US6202201B1 (ja)
EP (1) EP1116105A1 (ja)
JP (1) JP2002525744A (ja)
AU (1) AU6157799A (ja)
CA (1) CA2345256A1 (ja)
WO (1) WO2000017748A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981215B1 (en) * 1998-12-31 2005-12-27 Microsoft Corp. System for converting event-driven code into serially executed code
US7284193B1 (en) 1998-12-31 2007-10-16 Microsoft Corporation Page object model
US6889379B1 (en) 1998-12-31 2005-05-03 Microsoft Corporation Transporting objects between a client and a server
CA2262316A1 (en) * 1999-02-22 2000-08-22 Ibm Canada Limited-Ibm Canada Limitee System and method for detecting release-to-release binary compatibility in compiled object code
DE60101740T2 (de) * 2000-05-09 2004-08-05 Sun Microsystems, Inc., Santa Clara Transformation von objekten zwischen einer rechnerprogrammiersprache und einer daten-darstellungssprache
DE50100620D1 (de) 2000-05-17 2003-10-16 Ccp Systems Ag Verfahren und system zur transformation digitaler druckdatenströme sowie zugehörige drucker und druckerserver
US6839712B1 (en) * 2000-10-26 2005-01-04 International Business Machines Corporation Pre-processing code to identify and modify format of keys
US7895583B2 (en) 2000-12-22 2011-02-22 Oracle International Corporation Methods and apparatus for grammar-based recognition of user-interface objects in HTML applications
US20030037312A1 (en) * 2001-08-07 2003-02-20 Gerald Czech Documentation generator
US20030226068A1 (en) * 2002-05-28 2003-12-04 Rule John Scott Run time method of control system interface design and device control
US7493253B1 (en) 2002-07-12 2009-02-17 Language And Computing, Inc. Conceptual world representation natural language understanding system and method
US20050004891A1 (en) * 2002-08-12 2005-01-06 Mahoney John J. Methods and systems for categorizing and indexing human-readable data
US6889147B2 (en) * 2002-09-17 2005-05-03 Hydrogenics Corporation System, computer program product and method for controlling a fuel cell testing device
EP1613972A1 (en) * 2003-04-17 2006-01-11 Hydrogenics Corporation Alarm recovery system and method for fuel cell testing systems
US20040229954A1 (en) * 2003-05-16 2004-11-18 Macdougall Diane Elaine Selective manipulation of triglyceride, HDL and LDL parameters with 6-(5-carboxy-5-methyl-hexyloxy)-2,2-dimethylhexanoic acid monocalcium salt
WO2005028713A1 (en) * 2003-09-22 2005-03-31 Hydrogenics Corporation Electrolyzer cell stack system
US7096142B2 (en) * 2004-04-02 2006-08-22 Agilent Technologies, Inc. Report format editor for circuit test
US20050235272A1 (en) * 2004-04-20 2005-10-20 General Electric Company Systems, methods and apparatus for image annotation
US8782200B2 (en) * 2004-09-14 2014-07-15 Sitespect, Inc. System and method for optimizing website visitor actions
US7822780B1 (en) 2004-10-20 2010-10-26 Embarq Holdings Company, LP Computerized method and system for generating procedures capable of being used with multiple databases
WO2006081428A2 (en) 2005-01-27 2006-08-03 Symyx Technologies, Inc. Parser for generating structure data
US7707561B2 (en) * 2005-02-15 2010-04-27 International Business Machines Corporation Apparatus, system, and method for converting data
US20060271920A1 (en) * 2005-05-24 2006-11-30 Wael Abouelsaadat Multilingual compiler system and method
JP2007304998A (ja) * 2006-05-12 2007-11-22 Hitachi Software Eng Co Ltd ソースコード生成方法及び装置並びにプログラム
US8352922B2 (en) * 2009-03-31 2013-01-08 International Business Machines Corporation Date and time simulation for time-sensitive applications
CN103942137B (zh) * 2013-01-23 2017-08-25 腾讯科技(深圳)有限公司 浏览器兼容性测试方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09293013A (ja) * 1996-04-26 1997-11-11 Toshiba Corp ホームページ作成方法及びホームページ作成装置
JPH1083289A (ja) * 1996-05-08 1998-03-31 Internatl Business Mach Corp <Ibm> プログラミング・エイド
WO1998024020A2 (en) * 1996-11-27 1998-06-04 Sony Europa B.V. Method and system for generating software code

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5181162A (en) 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5339419A (en) * 1990-06-25 1994-08-16 Hewlett-Packard Company ANDF compiler using the HPcode-plus compiler intermediate language
JPH0792758B2 (ja) 1992-01-17 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション コンパイラおよびコンパイル方法
US5442792A (en) 1992-08-07 1995-08-15 Hughes Aircraft Company Expert system compilation method
US5768592A (en) 1994-09-27 1998-06-16 Intel Corporation Method and apparatus for managing profile data
US5668999A (en) 1994-12-20 1997-09-16 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
US5708825A (en) * 1995-05-26 1998-01-13 Iconovex Corporation Automatic summary page creation and hyperlink generation
US5692047A (en) 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
US5706502A (en) 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US5884014A (en) * 1996-05-23 1999-03-16 Xerox Corporation Fontless structured document image representations for efficient rendering
US5944784A (en) * 1997-09-30 1999-08-31 The United States Of America As Represented By The Secretary Of The Navy Operating methods for a universal client device permittting a computer to receive and display information from several special applications simultaneously
US5991713A (en) * 1997-11-26 1999-11-23 International Business Machines Corp. Efficient method for compressing, storing, searching and transmitting natural language text

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09293013A (ja) * 1996-04-26 1997-11-11 Toshiba Corp ホームページ作成方法及びホームページ作成装置
JPH1083289A (ja) * 1996-05-08 1998-03-31 Internatl Business Mach Corp <Ibm> プログラミング・エイド
WO1998024020A2 (en) * 1996-11-27 1998-06-04 Sony Europa B.V. Method and system for generating software code

Also Published As

Publication number Publication date
WO2000017748A1 (en) 2000-03-30
US6202201B1 (en) 2001-03-13
AU6157799A (en) 2000-04-10
CA2345256A1 (en) 2000-03-30
EP1116105A1 (en) 2001-07-18

Similar Documents

Publication Publication Date Title
JP2002525744A (ja) テキスト・オブジェクトのコンパイル方法およびシステム
JP3437849B2 (ja) オブジェクト指向プログラミングを支援するデータベース管理システム及び方法
KR101098718B1 (ko) 재사용 가능한 코드 세그먼트들을 생성 및 재사용하는 컴퓨터화된 방법 및 컴퓨터 구현 시스템, 및 컴퓨터 판독 가능 저장 매체
US5815415A (en) Computer system for portable persistent modeling
US6063128A (en) Object-oriented computerized modeling system
US7013458B2 (en) Method and apparatus for associating metadata attributes with program elements
Syme et al. Expert F♯
De Roover et al. The SOUL tool suite for querying programs in symbiosis with Eclipse
JPH10111802A (ja) 分散オブジェクトシステムの応用分野におけるコード生成器
JP2005018777A (ja) 共通問い合わせ実行時システムおよびアプリケーションプログラミングインターフェイス
WO1999066396A1 (en) A method of implementing parameterized types to be compatible with existing unparameterized libraries
US6542900B1 (en) Method and apparatus for distributed object mapping in a java language environment
US20090328016A1 (en) Generalized expression trees
US7499956B1 (en) Annotation processing from source files and class files
US7509335B2 (en) System and method for extensible Java Server Page resource management
Yang et al. Powerstation: Automatically detecting and fixing inefficiencies of database-backed web applications in ide
Chlipala Ur/web: A simple model for programming the web
KR19990077378A (ko) 통신시스템의 분산 처리 방법 및 장치
Fuchs Dreme: for Life in the Net
Kim et al. Migrating Legacy Software Systems to Corba based Distributed Environments through an Automatic Wrapper Generation Technique [versión electrónica]
JP5108309B2 (ja) ユーザ定義タイプの継承をサポートするためのシステムおよび方法
Bian et al. Integrating ADTs in KeY and their application to history-based reasoning about collection
Abbas et al. LEARN. NET WITH PROGRAMMING (3-in-1): Covers. NET using C#, Visual Basic ASP. NET
Mühlhäuser et al. A software engineering environment for distributed applications
Dalton Distributed java compiler: Implementation and evaluation

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20060922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100608