JP2008146637A - ドメイン変換言語 - Google Patents

ドメイン変換言語 Download PDF

Info

Publication number
JP2008146637A
JP2008146637A JP2007286464A JP2007286464A JP2008146637A JP 2008146637 A JP2008146637 A JP 2008146637A JP 2007286464 A JP2007286464 A JP 2007286464A JP 2007286464 A JP2007286464 A JP 2007286464A JP 2008146637 A JP2008146637 A JP 2008146637A
Authority
JP
Japan
Prior art keywords
language
document
domain
abstract
representation
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
JP2007286464A
Other languages
English (en)
Inventor
Charles Simonyi
シモーニ チャールズ
Shane J Clifford
ジェイ.クリフォード シェーン
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.)
Intentional Software Corp
Original Assignee
Intentional Software Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intentional Software Corp filed Critical Intentional Software Corp
Publication of JP2008146637A publication Critical patent/JP2008146637A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】ドキュメントを異なるドメインからの閲覧および編集に適した共通の表現に変換するための方法およびシステムを提供すること。
【解決手段】本システムは、ドキュメントをそのドメイン固有の入力状態から一連の中間言語に変換する、パイプラインにおける一連の変換を行うことによって、視覚表現のためのドメイン固有のドキュメントを準備する。中間言語は、変換されるドキュメントのドメインにかかわらず同じシンタックスを共有する。
【選択図】図1

Description

ドキュメントを異なる複数のドメインから共通の表現に変換するための方法およびシステムに関する。
様々なタイプのドキュメントが、異なるドメインを表現するために異なる用途で作成されうる。例えば、文書処理は、英語などの自然言語で作成されるドキュメントを有する1つのドメインであり、一般に、段落、要約、および見出しなどの概念を含む。文書処理ドキュメントは、メモ、アウトライン(outline)、およびレター(letter)などのいくつかのタイプを有することができる。もう1つのドメインは、コンピュータプログラムを表現するために識別子、フロー制御、および算術演算子のようなプログラミング言語の要素を使用するコンピュータプログラミングである。コンピュータプログラミングドキュメントもまた、ヘッダファイル、インプリメンテーションファイル(implementation file)、およびリソースファイルなどのいくつかのタイプを有することができる。各ドメインは、そのドメイン内で理解可能なドキュメントを作成するための適切なシンタックス(syntax)および辞書を定義する一組のドメイン自体の制約を有する。ドメインおよびドキュメントは多様であるが、閲覧および編集のためにこれらのドキュメントを表現する方法は、多くの類似点を共有している。
現在では、ドキュメントを閲覧および編集するために、ドキュメントドメインごとに異なるアプリケーションが使用されており、1つのドメイン内でドキュメントのタイプごとに異なるアプリケーションが使用されることもある。例えば、文書処理ドキュメントを閲覧および編集するための多数の市販のワードプロセッサが存在する。同様に、コンピュータプログラムを閲覧および編集するための多数のプログラミングエディタ(programming editor)が存在し、プログラミング言語ごとに別々のエディタが用いられることが多い。
閲覧アプリケーションおよび編集アプリケーションをドメインによって分離することは、各アプリケーションのユーザに、個々のドキュメントを閲覧および編集するのにどのアプリケーションを使用すべきかを知るための、また、各アプリケーションに関連する固有の機能(feature)を習得するための負担をもたらす。また、閲覧アプリケーションおよび編集アプリケーションをドメインによって分離することは、アプリケーション開発者にも負担をもたらし、アプリケーション開発者は、他のドメインに既に存在するソースコードに類似する新しいソースコードを、再実装し別個に保守しなければならないことがしばしばである。アプリケーション開発者に対する追加的な負担により、プログラミングエラーまたはバグが追加的にもたらされ、これに必要とされる労力のため、新しいドメインのドキュメントを閲覧および編集するための完全な機能を有するアプリケーションの入手が遅れることになる。
閲覧および編集のために、ドキュメントを異なる複数のドメインから共通の表現に変換するための方法およびシステムが提供される。例えば、変換システムは、文書処理ドキュメント、様々なプログラミング言語におけるソースコードドキュメント、数式を含むドキュメントなどを閲覧および編集するために使用することができる。このシステムは、ドキュメントをそのドメイン固有の入力状態からドキュメントの複数の異なる側面を表現する一連の中間言語に変換する、パイプラインにおける一連の変換を行うことによって、(例えば、コンピュータ画面またはプリンタへの)レンダリングのためのドメイン固有のドキュメントを準備する。変換プロセスをいくつかのより小さいステップに分解することにより、システムは、多くの異なるドメインからのドキュメントを表示および編集するために相当量のソースコードを再使用することが可能になる。中間言語は、変換されるドキュメントのドメインにかかわらず同じシンタックスを有する。かかる3つの中間言語は、抽象言語(abstract language)(A)、具象言語(concrete language)(C)、およびグラフィカル言語(graphical language)(G)である。抽象言語は、共通のシンタックスにおいてドキュメントを表現し、変換パイプラインの後段においてドキュメントを解釈するためにドメイン定義の概念の必要性を除去する。抽象言語は、パイプラインの後段を多数の異なるタイプのドキュメントについて同じにすることができる固有の言語である。具象言語は、小数、ツリー、または他のアイテムをどのように表示するかなどの表記上の選択を解決するとともに、ドキュメントを、スクロールなどの機能と併せて、変化する寸法の表示領域においてドキュメントを表示するために適切な形態で表現する。グラフィカル言語は、特定の表示領域上でドキュメントの可視要素のレンダリングを記述する。A、B、およびG言語の組み合わせが、多くのドメインからのドキュメントの閲覧および編集を可能にする固有のパイプラインを形成する。これらの言語について、以下で更に詳細に説明する。
ドキュメントは、変換の各ステップにおいて編集されうる。様々なタイプのドキュメントを、ドメイン固有の表現から閲覧および編集のための様々な段を経て変換するためのシステムが、米国特許出願第2005/0097453号明細書(代理人整理番号40806−8005US)「METHOD AND SYSTEM FOR REVERSIBLE DESIGN TREE TRANSFORMATIONS」に説明されている。例えば、ユーザは、グラフィカル言語表現を変更するために画面上の視覚要素を直接操作することができる。これらの変更は、逆変換によってパイプラインにおいて、より早期の言語表現に、それらの表現がドメイン言語で表現されるまで適用されうる。グラフィカル言語表現より前に変換パイプラインにおけるある段で行われる変更は、表示装置上にレンダリングされるパイプラインにおいて前方に投射されうる。編集は、ドメイン固有の変換環境の外部のツールや変換環境内の高水準の編集機能を介するなどして、ドメイン言語レベルでも行われることがある。ドメイン言語レベルの外部で行われる変更は、そのドメインと互換性がないことがある。例えば、C++プログラムの編集の際、ユーザが変更を完了し終えるまで、不完全なテキストをコンパイルすることができない。ドメインへの保留中の変更を格納するためのシステムが、米国特許出願第2004/0225964号明細書(代理人整理番号40806−8001US)「METHOD AND SYSTEM FOR STORING PENDING CHANGES TO DATA」に説明されている。
このように様々なタイプのドキュメントを変換するために行われるステップは、しばしば、多くの共通の要素を共有する。例えば、文書処理ドキュメント内の段落とC++プログラミング言語内の「if」文とは、非常に異なる目的および意味を有するが、しばしば、両方とも、他の段落またはプログラムブロックを表現する他の類似の長方形の上方または下方でページに配置される長方形にて表現される。同様に、両方のタイプのドキュメントの編集は、グラフィカルな長方形内のテキストを修正する、または画面上のグラフィカルな長方形の順序を並べ替えることによって行うことができる。例えば、新しい単語が文書処理ドキュメント内の段落に追加されうる、または新しいステートメントがプログラムブロックに追加されうる。同様に、段落が文書処理ドキュメント内で移動されうる、またはプログラムブロックがプログラム内で移動されうる。A、C、およびG言語は、多くの異なるドメインのドキュメントにより共有される共通要素を利用する様々な方法で、ドキュメントを記述する。このようにして、システムは、多くの異なるタイプのドキュメントの間で閲覧および編集機能を共有することを可能にし、追加のタイプのドキュメントをサポートするために書く必要があるカスタムソフトウェアの量を減少させる。
A言語
第1の言語は、共通のシンタックスで様々なドメインを表すための表記言語である、A言語と呼ばれる抽象言語である。ドキュメントは、ドメイン言語において始まり、ドメインは、ドメイン−抽象(domain-to-abstract)(D2A)変換と呼ばれる変換を用いてドキュメントをA言語に変換することを担う。ドメインの例としては、文書処理、C++、SQL、C#、カレンダ、ダイアログボックスなどがある。A言語は、ドメイン固有の表記を最小限にし、ドメイン表現を共通のシンタックスに変換しようと努める。例えば、英語は、文と段落を作るために用いる単語の組み合わせの複雑な変化を有することができるが、抽象言語は、26文字のアルファベット、ならびに、スペース、句読点、および改行など他の文字を表現するための要素を含むことによって、任意の英語のドキュメントを表現することができる。抽象ドメインは、所望の表記が表記上の項の固定されたセットにおいて表される形態であり、それらの表記上の項は、複数の交換可能で等価な表記を含む一般的なドメイン非依存の慣習(tradition)を有する。これらは、より特定的概念の「加算(addition)」、「除算(division)」、および「シンタックス式(syntax equation)」、ならびに、より一般的概念の「テキスト(text)」、「テーブル(table)」、「縦方向のリスト(vertical lists)」、「階層(hierarchy)」、および「演算子優先順位(operator precedence)」などを含む。
A言語の要素は、いくつかのグループ、すなわち、データ、ステートメント、オペレーション(operation)、およびオーガナイザ(organizer)に分割される。第1のグループであるデータは、適切な視覚表現のために保持される必要があるセマンティクス(semantics)を含まないテキスト、数値、グラフィック(graphical)、または他の汎用データであるデータを表現する。第2のグループであるステートメントは、様々な異なる表記でドキュメントを表すことを必要とするドキュメント作成者の共通の意図を保持するために使用される。例えば、スイッチ文、ループ、転送、およびコメントのような共通のプログラミングの構成体を表現するために、A言語において要素が定義される。第3のグループであるオペレーションは、プログラミング言語における括弧内のアイテムや数学のドキュメントにおける数式の植字などのような優先的に定義される組み合わせのセマンティクスを有するドキュメント要素を表現するために使用される。例えば、要素は、基本的演算、2項演算、および変数代入を表現するために定義される。第4のグループであるオーガナイザは、ドメインにおいて必ずしも表現される必要はないが、ドキュメントの視覚表現に影響を及ぼす組織的情報を格納するために有用であるアイテムを表現する。例えば、コードのブロック、アイテムのリスト、テキストのブロック、および他の同様のグループを、A言語のオーガナイザ要素を使用して表現することができる。これらの要素は、編集の際に、ユーザが編集を意図しうるドキュメントの関連領域を識別するために使用することができる。例えば、オーガナイザは、編集する段落または除去するコードのブロックを選択するためのユーザの能力を保持する。いくつかのドメインの表記上の概念は、A言語において類似の要素を持つためには十分に一般的ではないが、しかしながら、キーワード、ブロック、および要素間の関係を表現するための(後述する)AChin、AKeyword、およびAOBlockのようなより一般的な要素を使用してA言語において表されうる。例えば、C#言語のtry/catch表記は、一般的なA言語要素を使用して実装することができるが、多くの言語が同様の概念を追加すると、A言語は、この表記を表現するための特定的要素を含むように修正されることも可能である。
ドキュメントのA言語への変換は、共通の表現内に置かれるが、依然として、ドキュメントの最終的なグラフィカルな表現に影響を及ぼす多数の選択がある。例えば、A言語は、時間を表現するデータを識別することができるが、その時間は、アナログもしくはデジタルとしてグラフィックで表現されうる。テキストは、強調表示として識別されうるが、強調表示の様式は、黄色の背景から、太字テキスト、点滅テキストまで様々である。デジタル回路は、グラフィカルゲート(graphical gate)またはプログラミング演算子を使用して示すことができる。プログラミング言語は、特定のプログラムについて多くの正当な表現を有することができるが、ユーザは、ユーザが行あたり1つの演算子やコンマ後のスペースなどを優先するかどうかを示す設定優先を有することができる。
表1は、A言語のいくつかの要素を示す。
Figure 2008146637
C言語
C言語と呼ばれる具象言語は、シンボル、テキスト、グリフ(glyph)、およびグラフィック(まとめてマークと称する)の特定のセットが、ドキュメントを表現するために選択された後であるが、選択されたマークがディスプレイ上に配置されるより前に、ドキュメントを表現する。A言語表現は、どのようにプログラミングブロックをフォーマットするかなど(例えば、行のそれら自体による中括弧、括弧の後のスペースなど)何らかの表記上の選択を解決することによって、C言語表現に変換される。C言語は、内容および関係を表すが、表現においてアイテムの特定の位置は表さない。例えば、C言語は、特定のテキストが緑のテキストおよびイタリックを使用して強調表示されることを示すことができる。C言語はまた、ユーザが編集作業を行うために選択できるドキュメント内の領域を識別するために使用されるアンカポイントを含む。C言語は、要素のサイズと表示装置上でそれらに割り振られたスペースとの間の相互作用に対応することができる一定の方法でドキュメントのレイアウトを記述する。例えば、C言語は、テキストがレンダリングされるべきウィンドウのサイズが与えられた場合にテキストの段落をレンダリングするための十分な情報を含む。この例では、C言語は、改行が発生しうる段落内の領域を識別する。その領域では、段落がレンダリングされるサイズに基づいて視覚表現において改行として実際に終結する場合もそうでない場合もある。C言語は、変換パイプラインの他の段では表現されないユーザによって指定されたフォーマッティングの選択を取り込む。
C言語の一変形は、ペンディング言語(pending language)であり、これにより、ドキュメントの編集によりもたらされる中間的変更を表現することが可能になる。ドキュメントは、特定のドメインに対して無効な編集の際の状態を経過することがある。例えば、文書処理ドメインにおいて、文は、ユーザが始めて入力している過程にあるとき常に正しい英語となるわけではない。別の例として、C++プログラムは、ユーザがソースコードの新しい行を入力している間、誤ったステートメントを含むことがある。ペンディング言語は、進行中の変更を表現するための表記を提供する。また、ペンディング言語は、編集のための選択領域に対するテキストの重ね合わせを可能にすることができる。例えば、C++ドキュメントにおいて、ユーザは、「while」文を選択し、「if」文と置き換えることができる。保留中の変更を格納する更なる方法については、上記「METHOD AND SYSTEM FOR STORING PENDING CHANGES TO DATA」に記載されている。
C言語の要素は、フレーム、コントロール、オーガナイザ、およびマークのカテゴリにグループ分けされる。フレームは、レイアウト規則を有するボックスを表現する。フレームは、あるフレームが他の多くのフレームを含みそれらのフレームがフレームを含み以下同様にフレームを含むように、入れ子にすることができる。フレームは、ユーザコマンドに基づいて可視または不可視とすることができ、フレームの選択などのユーザの対話に基づいてタイプおよびレイアウトを変更することができる。以下は、フレームタイプのいくつかの例である。第1のタイプのフレームは、LineItemであり、テキストを含むためのボックスを表現する。LineItemフレームは、フレーム内のテキストに適用可能な折返しおよび改行規則に従ったテキストの処理を担う。LineItemはまた、水平または垂直にフレーム内のテキストの前後に出現するスペースの定義された量を含むことができる。LineItemは、プログラムのステートメント、長いコメント、または文書処理における段落を表現するために使用することができる。
別のタイプのフレームに、GraphicsItemがあり、これは、レイアウト情報とともにグラフィカルマーク(graphical mark)のグループを表現する。更に別のタイプのフレームに、Verticalフレームがある。Verticalフレームは、縦方向に配列されたフレームの長方形の列を表現する。Verticalフレームは、段落を表現する入れ子にされたLineItemフレームを含んで、フレームの組み合わせが、多数の段落がページの下方へ縦方向に配列された一般的な文書処理ドキュメントを表現するようにする。同様のタイプのフレームであるHorizontalは、フレームの長方形の行を配列するもので、時間線、横方向のリスト、または他の横方向のデータを表現するために使用することができる。Desktopは、行および列に長方形を配列するタイプのフレームであり、一般的なオペレーティングシステムシェル(operating system shell)におけるデスクトップに類似している。Treeは、長方形を階層的に配列するタイプのフレームである。最後に、Transparentフレームは、ある種の構造情報を格納する不可視のフレームであり、この構造情報は、格納されなければ、ドキュメントを表示可能な形態に変換する際に失われることになる情報である。例えば、プログラミング言語におけるプロシージャは、個別に選択可能でありうるが、表示のために単一フレームにおいて他のプロシージャとともに初期にグループ化されることがある。そのプロシージャの周辺のTransparentフレームを維持することによって、ユーザは、そのプロシージャを個別に選択することができる。
C言語要素の第2のカテゴリは、コントロールを含む。コントロールは、表示またはドキュメントの状態を変更するアイテムである。例えば、コントロールの1つのタイプは、BreakOptionであり、これは、テキストにおいて現在の位置を区切りの機会として設定する。別のタイプのコントロールとして、SetContStringがあり、これは、区切りが発生するすべての行の継続部分に置かれる継続ストリング(continuation string)を指定する。例えば、C++では、アスタリスクなどの同じ文字でコメント内の各行を開始することが一般的である。更に別のタイプのコントロールに、SkipRightがあり、これは、現在の列が空でありスキップされるべきことを示すための列ベースのフレームで使用される。更に別のタイプのコントロールに、SetTabがあり、これは、テキストのブロックについてタブ指定(tabification)規則を設定する。
C言語要素の第3のカテゴリは、オーガナイザを含む。オーガナイザは、コントロールによって指定された状態変化の範囲を定義する目的のコントロールのグループまたは階層である。例えば、オーガナイザは、特定の改行方針が段落全体に適用されることになることを指示することができる。オーガナイザはまた、特定の領域がユーザによって強調表示されていることや、ドキュメントに関するデフォルトの区切り規則が特定の領域に適用されるべきでないことを指示することもできる。
C言語要素の最後のカテゴリは、マークを含む。マークは、テキストや画像などのドキュメント表現における基本葉ノードである。マークの例として、テキスト、カレット、アイコン、キャンバス(例えば、デスクトップまたは他の2Dスペース)、スケーラブルシンボル(scalable symbol)、および、グラフィカルマーク(例えば、線、円など)がある。カレットは、他のマークの前または後の情報を示すために使用される。スケーラブルシンボルは、それが表示される領域のレイアウトに基づいて表現が変化するシンボルである。例えば、あるスケーラブルシンボルは、平方根号でありうるが、その視覚表現は、それを小数に適用するかどうか、および表示装置上のその小数のレイアウトの仕方によって異なることが可能である。いくつかの実施形態では、マークは、レイアウト情報を持つ。例えば、テキストは、横方向にフレキシブルであるが(例えば、いくつかの行で折り返す、または、位置調整されたテキストのように横方向に圧縮することができる)、縦方向にフレキシブルではないように指定することができる。
レイアウトは、G言語への変換によって表示装置上の表示のためにC言語において表現されたアイテムを準備するプロセスである。C言語アイテムのレイアウトは、表示されるフレームのタイプに基づいて変化する。例えば、LineItemの場合、zレイアウトアルゴリズムが適用されて、テキストを、z字状(左から右に進み、次いで行を下って繰り返す)に先行スペース、末尾スペース、および改行を明らかにする行の配列にマップする。Treeフレームの場合、レイアウトがレベルごとに行われ、また、ユーザの介入によって任意のレベルでレイアウトが影響されてもよい。例えば、Treeフレームは、平衡した、片側に寄った、右に向かって大きくなる、下に向かって大きくなるなど様々な表現のうちに配置することができ、直線、四角形、ジグザグなど異なるスタイルの連絡線を有することができる。これらのタイプのレイアウトオプションは、A言語を介してパイプラインを通して渡されるプロパティを使用してドメインによって、またはユーザの選好によって指定することができる。デスクトップフレームは、指定されたレイアウトオプションに応じて、行/列グリッド、z字状のパターン、または螺旋状のパターンを用いて配置することができる。
C言語はまた、フォーマットおよびスタイルを表現するために使用される。フォーマッティングオプションは、太字体やフォントの選択などの個別のマークに適用されるオプションである。スタイルは、見出しスタイルのようなフォーマッティングオプションのグループであり、見出しが、太字、下線付き、および通常テキストより大きいフォントであるべきことを指定することができる。
表2は、C言語のいくつかの要素を示す。
Figure 2008146637
Figure 2008146637
G言語
G言語と呼ばれるグラフィックス言語は、表示前のドキュメントの最終段を表現する。G言語への変換では、ドキュメントを表示するために、表示領域の実際の寸法および特性を、C言語表現にマップする。グラフィカル言語は、ドキュメントの要素の実際のレイアウトを記述するために使用され、つまり、それにより、(マークを重ね合わせるための順序を含めて)要素のサイズ、切落とし、および位置が決定されている。G言語は、キャンバスおよびマークから構成される。キャンバスは、特定の寸法を有する表示領域である。例えば、キャンバスは、リストボックス、スクロール可能なウィンドウ、またはプログラミングステートメントのリストとすることができる。互いに隣接しかつレイヤにおいて、完全な表示を構成する多数のキャンバスがありうる。キャンバスは、スクロール可能ウィンドウにおいて可視領域の外部にテキストの領域がスクロールされたときなどに、隠すこともできる。G言語におけるマークは、表示された画像の一部分を表現する。マークは、キャンバス、ならびに、内容、レイアウト、ユーザの選択を受け取るためのポインティング領域を表現する長方形に対する基準位置を含む。マークは、テキスト、カーソル、線、空白領域、長方形、あるいは他の形状またはデータを表現することができる。
ヒットテスト(hit testing)は、ユーザにより選択された点をG言語マークにマップするプロセスである。ユーザがオブジェクトまたは領域を選択すると、影響を受けたマークがヒットテストによって識別され、選択情報が変換パイプラインを介して渡され、適切なレベルで処理される。
表3は、G言語のいくつかの要素を示す。
Figure 2008146637
図面
図1は、一実施形態における変換パイプラインを示す。この変換システムは、ドメイン固有の言語での入力ドキュメント110を受け取る。入力ドキュメント110は、ドメイン−抽象変換120を通過し、ドメイン−抽象変換120は、抽象言語ドキュメント130を生成する。抽象言語ドキュメント130は、抽象−具象変換(abstract-to-concrete)140を通過し、抽象−具象変換140は、具象言語ドキュメント150を生成する。具象言語ドキュメント150は、具象−グラフィカル変換(concrete-to-graphical)160を通過し、具象−グラフィカル変換160は、グラフィカル言語ドキュメント170を生成する。次いで、グラフィカル言語ドキュメント170は、閲覧および編集のためにドキュメントをユーザへ表示するために使用される。パイプラインのいずれの段においても、ユーザ入力180は、変換に影響を及ぼし、フォーマッティング設定、コーディングスタイル(coding style)、またはユーザから受け取る他の因子に基づいて異なる出力を生成させることができる。3つの変換が図示されているが、他の中間の変換、例えば、まだドメインドキュメントの一部分ではない保留中の変更を表現するためのペンディング変換やドキュメントの部分のユーザの選択を表現するための選択変換なども、変換パイプラインの一部分とすることができる。ドキュメントは、同じレベルにおいて複数の変換を受けることもできる。例えば、ドキュメントは、ドメイン−ドメイン変換を通過して、ドメイン概念を低減させドメイン−抽象変換120のためにより適切な表現にすることができる。
図2は、一実施形態における変換システムのコンポーネントを示すブロック図である。変換システム200は、ドメイン言語インタプリタコンポーネント205、ドメイン−抽象変換コンポーネント210、抽象言語出力コンポーネント215、抽象言語インタプリタコンポーネント220、抽象−具象変換コンポーネント225、具象言語出力コンポーネント230、具象言語インタプリタ235、具象−グラフィカル変換コンポーネント240、グラフィカル言語出力コンポーネント245、グラフィカル言語インタプリタ250、表示装置255、および、ユーザ入力装置260を含む。ドメイン言語インタプリタコンポーネント205は、ドメイン言語ドキュメントを受け取り、それが含むドメインベースの概念を解釈する。ドメイン−抽象変換コンポーネント210は、ドメインベースの概念を抽象表現に変換することによってドメイン言語ドキュメントを抽象言語に変換する。抽象言語出力コンポーネント215は、変換されたドメインドキュメントから抽象言語ドキュメントを出力する。新しいドメインをサポートするとき、通常は、ドメイン言語インタプリタコンポーネント205、ドメイン−抽象変換コンポーネント210、および抽象言語出力コンポーネント215のみが、修正される必要がある。抽象言語は、様々なドメインについての抽象表現を提供するように設計されており、したがって、システムの剰余が各ドメインで再使用できる。抽象言語インタプリタコンポーネント220は、抽象言語出力コンポーネント215によって生成された抽象言語ドキュメントを解釈し、解釈されたドキュメントを抽象−具象変換コンポーネント225に渡す。抽象−具象変換コンポーネント225は、ドキュメントを、抽象表現から、表記上の選択を解決する具象言語表現に変換する。具象言語出力コンポーネント230は、変換された抽象ドキュメントから具象言語ドキュメントを出力する。具象言語インタプリタ235は、具象言語ドキュメントを解釈し、解釈されたドキュメントを、具象−グラフィカル変換コンポーネント240に渡す。具象−グラフィカル変換コンポーネント240は、ドキュメントを、具象言語表現からグラフィカル言語表現に変換する。グラフィカル言語出力コンポーネント245は、変換されたグラフィカル言語ドキュメントを出力する。グラフィカル言語インタプリタ250は、グラフィカル言語ドキュメントを解釈し、表示装置255で表示するためのドキュメントを準備する。表示装置255は、コンピュータ画面、モニタ、または、ユーザによって閲覧するためのドキュメントを表示する他の表示装置とすることができる。ユーザ入力装置260は、編集、スクロール、またはドキュメントとの他の対話のためのユーザからの入力を受け取り、システムにユーザの要求を通知する。その結果、ドキュメントを更新し再表示することができる。ユーザ入力装置260は、マウス、キーボード、タッチスクリーン、または、ユーザからの入力に応答する他の装置とすることができる。
システムが実装されるコンピューティングデバイスは、中央処理装置、メモリ、入力装置(例えば、キーボードおよびポインティングデバイス)、出力装置(例えば、表示装置)、および記憶装置(例えば、ディスクドライブ)を含むことができる。メモリおよび記憶装置は、システムを実装する命令を含むことができるコンピュータ可読媒体である。更に、データ構造およびメッセージ構造を、通信リンク上の信号などのデータ伝送媒体を介して格納または伝送することができる。様々な通信リンク、例えば、インターネット、LAN、WAN、2地点間ダイヤルアップ接続、携帯電話ネットワークなどを使用することができる。
システムの実施形態は、パーソナルコンピュータ、サーバコンピュータ、携帯型またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、デジタルカメラ、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、および、上記の任意のシステムまたは装置を含む分散コンピューティング環境などを含む、様々な動作環境で実装されうる。コンピュータシステムは、携帯電話、携帯情報端末、スマートフォン、パーソナルコンピュータ、プログラム可能家庭用電化製品、およびデジタルカメラなどであってよい。
システムは、1つまたは複数のコンピュータあるいは他の装置によって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈で記述されうる。一般に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構想などを含む。通常、プログラムモジュールの機能性は、様々な実施形態において所望に応じて組み合わせたり分散させたりすることが可能である。
図3は、一実施形態におけるコンピュータプログラムの一部分の抽象言語表現を示す。ステートメント310が、C#などのプログラミング言語において示されており、その言語によって定義されるいくつかのキーワード(例えば、「foreach」)、ならびにユーザによって定義されるいくつかの変数名(例えば、「bar」)を含んでいる。ドメイン−抽象変換に続いて、抽象言語表現320が生成される。図示の抽象言語表現は、ドメイン言語キーワード(例えば、Akeywordにより表現する)、ブロックを構成する句読点(例えば、AOSpaceOpt、AOSpace、およびAOBlockにより表現する)、ならびに共通ドメイン概念(例えば、AFormula、およびAAtomにより表現する)を表現するためのA言語の要素を含む。AOther要素325は、保持されるドメイン言語ドキュメントの組織的構造を表現し、この例では、後続のすべてのものが、ブロックとしてまとめてグループにされる。AKeywork要素330は、ドメインキーワード「foreach」を表現している。AOSpaceOpt要素335は、ユーザの選好、またはドキュメントスタイル設定のような他の因子に基づいて、オプションでスペースを配置する場所を表現する。AOParen要素340は、囲まれたステートメントを一緒にグループにするドメイン内に見つかる括弧の組織的構成を表現する。AAtom要素345は、ドメイン内のユーザ定義の変数を表現するアトム「foo」を表現する。AOSpace要素350および360は、表示された表現に保持されるべきドメイン内のスペースを表現する。AKeyword要素355は、ドメイン言語キーワード「in」を表現している。AFormula要素365は、囲まれたステートメントが式の部分であることを示す。この式は、ドメインドキュメントにおいて定義されたアトム「bar」を表現するAAtom要素370を含む。AOBlock要素375は、一緒にグループにされるべきステートメントのブロックを定義する。AAtom要素380は、そのブロック内の唯一のステートメントであり、ドメインドキュメントにおけるアトム「file」を表現する。いくつかのドメイン概念は抽象言語への変換の際に失われるが(例えば、ドメインにおけるforeachステートメントの振舞い)、抽象言語は、ドキュメントを視覚的に表現しユーザがドキュメントと対話することを可能にするために必要なすべてのドメイン言語からの構造および概念を表現する。
図4は、一実施形態におけるコンピュータプログラムの一部分の具象言語表現を示す。ステートメント410が、C#などのプログラミング言語において示されており、その言語によって定義されるいくつかのキーワード(例えば、「foreach」)、ならびにユーザによって定義されるいくつかの変数名(例えば、「bar」)を含んでいる。抽象−具象変換に続いて、具象言語表現415が生成される。図示の具象言語表現は、表記上の決定(例えば、小数を、横方向でスラッシュによって分離して表すべきか、それとも分母上の分子を横線によって分離して縦方向に表すべきかなど)が解決された後のテキストおよびレイアウト情報を表現するためのC言語の要素を含む。CFLineItem要素420は、論理行を表現するラインアイテム(line item)を開始するが、表示領域の特性に応じて1行または複数行として表示されることもある。CFLineItem要素420は、行を開始するテキストアイテム425のリストを含む。これらのテキストアイテム425の後に、C言語におけるコントロールであるCCSetTab要素430が続き、CCSetTab要素430は、後続のテキストが2つのスペースで字下げされるべきであることを示す。CCBreakIfAnyBreaks要素435、445、および455は、表示領域の寸法に起因して必要に応じて改行を配置することが妥当となる表示内の点を示す。CCSetTab要素460は、これに先立つCCSetTab要素430によって設定されたラインアイテムのタブ指定を打ち切る。最後に、閉じ括弧470は、CFLineItem要素420の終端を表現する。
図5は、一実施形態におけるコンピュータプログラムの一部分のグラフィカル言語表現を示す。ステートメント505が、C#などのプログラミング言語において示されており、その言語によって定義されるいくつかのキーワード(例えば、「foreach」)、ならびにユーザによって定義されるいくつかの変数名(例えば、「bar」)を含んでいる。具象−グラフィカル変換に続いて、グラフィカル言語表現510が生成される。図示のグラフィカル言語表現は、コンピュータモニタなど表示装置上のドメイン言語ドキュメントのレイアウトを記述するためのG言語の要素を含む。具象−グラフィカル変換は、表示領域の寸法、例えば情報がレンダリングされるウィンドウのサイズなどに関する入力を受け取る。GVerticalFrame要素515は、縦方向のレイアウトでその範囲内にフレームを構成し、各フレームが他のフレームの上部に表示されるようにする。第1のGFrame要素520は、ドメイン言語の「foreach」キーワード、およびforeachキーワードの始まりの括弧を表現する。次のGFrame要素525は、テキスト「foo in bar」をレンダリングするためのマークを含む行を表現する。次のGFrame要素530は、foreachキーワードの終わりの括弧を含む行を表現する。次のGFrame要素535は、foreachキーワードの本体の始まりの中括弧を表現する。次のGFrame要素540は、foreachキーワードの「fie;」本体内のテキストの単一行を表現する。最後のGFrame要素545は、foreachキーワード本体の終わりの中括弧を表現する。例示的表示550は、表示装置上の結果として得られるフレームのレイアウトの例を示す。フレームの周囲のボックスは、説明のために示されているものであって、フレームが実際にレンダリングされたときには表示してもしなくてもよい。各GFrame要素(520、525、530、535、540、および545)は、GVerticalFrame要素515内に縦方向に配列される。
図6は、一実施形態における変換システムのコンポーネントの処理を示す流れ図である。このシステムは、表示装置上の表示のためにドメイン固有の表現においてドキュメントを準備するために呼び出される。ブロック610で、システムは、ドキュメントのドメイン固有の表現を受け取る。ブロック615および620は、ドメイン言語から抽象言語への変換を表す。ブロック615で、システムは、ドメイン言語ドキュメントを解析する。ブロック620で、システムは、ドメイン言語ドキュメントの要素を、抽象言語の該当する要素にマップする。ブロック625および630は、抽象言語から具象言語への変換を表す。ブロック625で、システムは、表記上の選択に関する入力を受け取る。ブロック630で、システムは、表記上の選択を使用して、抽象言語要素を具象言語要素にマップする。ブロック635および640は、具象言語からグラフィカル言語への変換を表す。ブロック635で、システムは、ドキュメントがレンダリングされる表示装置のレイアウトを決定する。ブロック640で、システムは、表示領域の寸法および他の制約条件に基づいて、具象言語要素をグラフィカル言語要素にマップする。ブロック650で、システムは、表示装置上にグラフィカル言語ドキュメントを表示し、次いで完了する。
変換システムの具体的実施形態が本明細書に例示として説明されているが、本発明の趣旨および範囲から逸脱することなく様々な修正が可能であることは、上記から理解されるであろう。例えば、文書処理およびプログラミングドメインからのドキュメントが、例示的用途で使用されているが、他の多数のドメインからのドキュメントが変換システムによって処理されることが可能である。ドキュメントは単一の実体として記述されているが、変換システムは、本の複数の章やプログラミングプロジェクトでよく見られる多数のソースコードファイルのような多くのドキュメントを処理することができる。したがって、本発明は、添付の特許請求の範囲によってのみ限定される。
一実施形態における変換パイプラインを示す図である。 一実施形態における変換システムのコンポーネントを示すブロック図である。 一実施形態におけるコンピュータプログラムの一部分の抽象言語表現を示す図である。 一実施形態におけるコンピュータプログラムの一部分の具象言語表現を示す図である。 一実施形態におけるコンピュータプログラムの一部分のグラフィカル言語表現を示す図である。 一実施形態における変換システムのコンポーネントの処理を示す流れ図である。

Claims (20)

  1. ユーザとの対話のためにドメイン固有のドキュメントを表現するためのシステムであって、
    前記ドキュメントをドメイン言語から抽象言語に変換するためのドメイン−抽象言語コンポーネントであって、前記ドキュメントの前記ドメインに固有であるドメイン−抽象言語コンポーネントと、
    前記ドキュメントを前記抽象言語から具象言語に変換するための抽象−具象言語コンポーネントであって、前記ドキュメントの前記ドメインから独立している抽象−具象言語コンポーネントと、
    前記ドキュメントを前記具象言語からグラフィカル言語に変換するための具象−グラフィカル言語コンポーネントであって、前記ドキュメントの前記ドメインから独立している具象−グラフィカル言語コンポーネントと、
    前記グラフィカル言語に基づいて前記ドキュメントをレンダリングするための表示コンポーネントと
    を含むことを特徴とするシステム。
  2. 前記抽象言語は、
    視覚表現のために保持される必要があるセマンティクスを含まないデータを表現するデータ要素と、
    ドキュメント作成者の意図を表現するステートメントであって、種々の表記を有するドキュメントを表すことができるステートメントと、
    組み合わせのセマンティクスを有するドキュメント要素を表現するオペレーションと、
    前記ドキュメントの前記視覚表現に影響を及ぼす組織的情報を表現するオーガナイザとを含み、
    前記抽象言語が、複数の交換可能で等価な表記を含む一般的なドメイン非依存の慣習を有する表記上の項の固定されたセットにおいてドキュメントを表現するようになされたことを特徴とする請求項1に記載のシステム。
  3. 前記具象言語は、
    1つまたは複数のレイアウト規則によってボックスを表現するフレームと、
    1つまたは複数のレイアウト規則によって前記ドキュメントの前記表示の状態を変更するコントロールと、
    コントロールによって指定された前記状態変更の範囲を定義するオーガナイザと、
    前記ドキュメント内のデータを表現するマークと
    を含むことを特徴とする請求項1に記載のシステム。
  4. 前記グラフィカル言語は、特定の寸法を有する前記表示の領域を定義するキャンバスと、キャンバスに関連して表示された画像の一部分を表現するマークとを含むことを特徴とする請求項1記載のシステム。
  5. 各前記コンポーネントはまた、前記グラフィカル言語から前記具象言語へ、前記具象言語から前記抽象言語へ、および前記抽象言語から前記ドメイン言語へ、前記ドキュメントを変換するために逆変換を行うことを特徴とする請求項1に記載のシステム。
  6. 前記ドメインドキュメントは、コンピュータプログラムのためのソースコードであることを特徴とする請求項1に記載のシステム。
  7. 前記ドメインに対して無効であり前記ドメイン言語に格納できない前記ドキュメントへの中間的変更を、表現するペンディング言語コンポーネントを含むことを特徴とする請求項1に記載のシステム。
  8. 前記具象言語は、前記ドキュメントに適用されるフォーマッティングおよびスタイルを表現することを特徴とする請求項1に記載のシステム。
  9. 前記ドキュメントの表示された表現に基づいて、ユーザによって選択されたグラフィカル言語要素を検出するためのヒットテストコンポーネントを含むことを特徴とする請求項1に記載のシステム。
  10. 異なるドメイン言語を使用するドキュメントを、前記ドキュメントをレンダリングするためにドメイン非依存の抽象言語に変換する方法であって、
    前記ドキュメントのドメイン固有のデータ要素を識別するステップと、
    前記ドキュメントを種々の表記で表すためにドキュメント作成者の意図を指定するドメイン固有のステートメントを識別するステップと、
    組み合わせのセマンティクスを有するドキュメント要素を指定するドメイン固有のオペレーションを識別するステップと、
    前記ドキュメントの視覚表現に影響を及ぼす組織的情報を指定するドメイン固有のオーガナイザを識別するステップと、
    前記識別されたデータ要素、ステートメント、オペレーション、およびオーガナイザを前記抽象言語で表現するステップであって、異なるドメインからのドキュメントが前記抽象言語で表され、前記抽象言語がドメイン非依存の方法で前記ドキュメントをレンダリングするために使用することができるようにするステップと
    を含むことを特徴とする方法。
  11. 前記ドキュメントをコンピュータモニタ上に表示するステップを含むことを特徴とする請求項10に記載の方法。
  12. 前記ドキュメントの前記抽象言語表現を逆変換して、前記ドキュメントの表示された表現に対してなされた編集の変更を含む前記ドキュメントのドメイン言語表現を生成するステップを含むことを特徴とする請求項10に記載の方法。
  13. 前記ドキュメントは、文書処理ドキュメントであることを特徴とする請求項10に記載の方法。
  14. 方法によって、コンピュータシステムに表示のためのドメイン固有のドキュメントを作らせる命令を含むコンピュータ可読媒体であって、前記方法は、
    前記ドメイン固有のドキュメントを抽象言語表現にマップするステップと、
    前記抽象言語表現に関係する表記上の選択を受け取るステップと、
    前記受け取った表記上の選択に基づいて前記抽象言語表現を具象言語表現にマップするステップと、
    前記具象言語表現のレイアウトを決定するステップと、
    前記決定されたレイアウトに基づいて前記具象言語表現をグラフィカル言語表現にマップするステップと、
    前記グラフィカル言語表現に基づいて前記ドキュメントを表示するステップと
    を含むことを特徴とするコンピュータ可読媒体。
  15. 前記ドメイン固有のドキュメントに対する変更を検出するステップと、前記変更に基づいて前記表示を更新するステップとを含むことを特徴とする請求項14に記載のコンピュータ可読媒体。
  16. 前記表示されたドキュメントに対する変更を検出するステップと、前記変更を前記グラフィカル言語表現に取り込むステップとを含むことを特徴とする請求項14に記載のコンピュータ可読媒体。
  17. 前記取り込まれた変更を前記グラフィカル言語表現から前記ドメイン固有のドキュメントに逆マッピングするステップを含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
  18. 前記ドキュメントを表示するステップは、前記ドキュメントを表示するための表示領域のサイズを決定することを含むことを特徴とする請求項14に記載のコンピュータ可読媒体。
  19. 前記ドキュメントに対する変更を検出するステップと、ペンディング言語表現を使用して前記変更を表現するステップとを含むことを特徴とする請求項14に記載のコンピュータ可読媒体。
  20. 前記変更は、前記ドメイン固有のドキュメントに対し無効である変更を含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
JP2007286464A 2006-11-20 2007-11-02 ドメイン変換言語 Pending JP2008146637A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/561,753 US7949949B2 (en) 2006-11-20 2006-11-20 Domain transformation languages

Publications (1)

Publication Number Publication Date
JP2008146637A true JP2008146637A (ja) 2008-06-26

Family

ID=38858967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007286464A Pending JP2008146637A (ja) 2006-11-20 2007-11-02 ドメイン変換言語

Country Status (5)

Country Link
US (2) US7949949B2 (ja)
EP (1) EP1923782A1 (ja)
JP (1) JP2008146637A (ja)
AU (1) AU2007234484B2 (ja)
CA (1) CA2609882C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949949B2 (en) * 2006-11-20 2011-05-24 Intentional Software Corporation Domain transformation languages
KR20110088235A (ko) * 2010-01-28 2011-08-03 삼성전자주식회사 텍스트 출력 방법 및 장치
US9223769B2 (en) 2011-09-21 2015-12-29 Roman Tsibulevskiy Data processing systems, devices, and methods for content analysis
US9442909B2 (en) 2012-10-11 2016-09-13 International Business Machines Corporation Real time term suggestion using text analytics
US20140358974A1 (en) * 2013-06-03 2014-12-04 Flexible User Experience S.L. System and method for integral management of information for end users

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01175035A (ja) * 1987-12-29 1989-07-11 Fujitsu Ltd 多言語処理コンバータ
JPH07182147A (ja) * 1993-10-29 1995-07-21 Microsoft Corp コンピュータプログラムを発生する方法及びシステム
JPH09198237A (ja) * 1995-07-06 1997-07-31 Sun Microsyst Inc オンザフライ活字印刷ディスプレイを有する構造的表現型コンピュータ・プログラムのテキスト編集用システム及び方法
JPH11161483A (ja) * 1997-11-27 1999-06-18 Fujitsu Ltd 動的拡張性を備えたソフトウェア構築システムおよび方法
JP2003274309A (ja) * 2002-03-12 2003-09-26 Canon Inc 受信装置
JP2004038297A (ja) * 2002-06-28 2004-02-05 Jcreation Co Ltd プログラム書式変換装置および変換プログラム
US20040225964A1 (en) * 2003-05-09 2004-11-11 Charles Simonyi Method and system for storing pending changes to data
US20050097453A1 (en) * 2003-11-03 2005-05-05 Charles Simonyi Method and system for reversible design tree transformations
JP2006164258A (ja) * 2004-12-06 2006-06-22 Internatl Business Mach Corp <Ibm> 特定のプラットフォームによって使用するためのグラフィカル・ユーザ・インターフェース(gui)モデルを生成するための方法、システム、およびプログラム
JP2006252557A (ja) * 2005-03-10 2006-09-21 Internatl Business Mach Corp <Ibm> コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2534360B2 (ja) * 1988-09-26 1996-09-11 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 接続方法、ノ―ド接続方法、デ―タ処理方法、及び木内にノ―ドを挿入する方法
US5415275A (en) * 1991-10-25 1995-05-16 Girimont; John V. Contact lens storage case
US5339433A (en) * 1992-11-19 1994-08-16 Borland International, Inc. Symbol browsing in an object-oriented development system
US5546519A (en) * 1994-02-28 1996-08-13 International Business Machines Corporation System and method for visually programming iteration
US5850548A (en) * 1994-11-14 1998-12-15 Borland International, Inc. System and methods for visual programming based on a high-level hierarchical data flow model
US5642511A (en) * 1994-12-16 1997-06-24 International Business Machines Corporation System and method for providing a visual application builder framework
EP0811193B1 (en) * 1995-02-22 1998-10-14 Agust S. Egilsson Graphical environment for managing and developing applications
US6115723A (en) * 1995-04-27 2000-09-05 International Business Machines Corporation System and method for converting a coordinate based document to a markup language (ML) based document
US5752058A (en) * 1995-07-06 1998-05-12 Sun Microsystems, Inc. System and method for inter-token whitespace representation and textual editing behavior in a program editor
US5857212A (en) * 1995-07-06 1999-01-05 Sun Microsystems, Inc. System and method for horizontal alignment of tokens in a structural representation program editor
US5813019A (en) * 1995-07-06 1998-09-22 Sun Microsystems, Inc. Token-based computer program editor with program comment management
US5911070A (en) * 1995-08-07 1999-06-08 Inprise Corporation Development system with methods for bi-directional application program code generation
US6272672B1 (en) * 1995-09-06 2001-08-07 Melvin E. Conway Dataflow processing with events
DE69618606T2 (de) * 1995-09-19 2002-09-12 Yaskawa Denki Kitakyushu Kk Prozessor für robotersprache
US5802334A (en) * 1996-01-05 1998-09-01 International Business Machines Corporation Method for displaying object oriented class information and content information
US5946485A (en) * 1996-02-09 1999-08-31 Intervoice Limited Partnership Enhanced graphical development environment for controlling program flow
US5848415A (en) * 1996-12-18 1998-12-08 Unisys Corporation Selective multiple protocol transport and dynamic format conversion in a multi-user network
US6065026A (en) * 1997-01-09 2000-05-16 Document.Com, Inc. Multi-user electronic document authoring system with prompted updating of shared language
US20020007483A1 (en) * 1997-01-29 2002-01-17 Lopez Luis R. Interactive flow visualization, graphical editing and analysis of textual languages
US6212672B1 (en) * 1997-03-07 2001-04-03 Dynamics Research Corporation Software development system with an executable working model in an interpretable intermediate modeling language
US6091893A (en) * 1997-03-10 2000-07-18 Ncr Corporation Method for performing operations on informational objects by visually applying the processes defined in utility objects in an IT (information technology) architecture visual model
US6182274B1 (en) * 1997-05-01 2001-01-30 International Business Machines Corporation Reusing code in object-oriented program development
US6026233A (en) * 1997-05-27 2000-02-15 Microsoft Corporation Method and apparatus for presenting and selecting options to modify a programming language statement
JPH1175035A (ja) 1997-08-29 1999-03-16 Brother Ind Ltd 走査光学装置
US6038393A (en) * 1997-09-22 2000-03-14 Unisys Corp. Software development tool to accept object modeling data from a wide variety of other vendors and filter the format into a format that is able to be stored in OMG compliant UML representation
US6018627A (en) * 1997-09-22 2000-01-25 Unisys Corp. Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation
US6314559B1 (en) * 1997-10-02 2001-11-06 Barland Software Corporation Development system with methods for assisting a user with inputting source code
JPH11272871A (ja) * 1998-03-20 1999-10-08 Toshiba Corp 文書画像処理装置、文書画像処理方法、及び記録媒体
US6466240B1 (en) * 1998-07-08 2002-10-15 Vadim Maslov Method for visually writing programs or scripts that transform structured text presented as a tree
US6336124B1 (en) * 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
CA2256931A1 (en) * 1998-12-23 2000-06-23 Robert Weisz Source editing in a graphical hierarchical environment
US6385769B1 (en) * 1999-02-03 2002-05-07 International Business Machines Corporation Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats
US6421821B1 (en) * 1999-03-10 2002-07-16 Ronald J. Lavallee Flow chart-based programming method and system for object-oriented languages
US6986101B2 (en) * 1999-05-06 2006-01-10 International Business Machines Corporation Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files
US6665866B1 (en) * 1999-05-28 2003-12-16 Microsoft Corporation Extensible compiler utilizing a plurality of question handlers
US6112672A (en) * 1999-05-28 2000-09-05 Burnham Service Company, Inc. Selectively arrangeable pallet
US6415275B1 (en) * 1999-08-05 2002-07-02 Unisys Corp. Method and system for processing rules using an extensible object-oriented model resident within a repository
US6405364B1 (en) * 1999-08-31 2002-06-11 Accenture Llp Building techniques in a development architecture framework
US6918086B2 (en) * 2000-03-28 2005-07-12 Ariel S. Rogson Method and apparatus for updating database of automatic spelling corrections
US6453324B1 (en) * 2000-03-30 2002-09-17 Unisys Corporation Method for maintaining a version history of objects in a repository
US6415299B1 (en) * 2000-04-12 2002-07-02 Unisys Corp. Method for merging versions of a model in an object oriented repository
US7058944B1 (en) * 2000-04-25 2006-06-06 Microsoft Corporation Event driven system and method for retrieving and displaying information
US7089490B1 (en) * 2000-11-30 2006-08-08 Google, Inc. Identifying navigation bars and objectionable navigation bars
US7152205B2 (en) * 2000-12-18 2006-12-19 Siemens Corporate Research, Inc. System for multimedia document and file processing and format conversion
US20020107896A1 (en) * 2001-02-02 2002-08-08 Abraham Ronai Patent application drafting assistance tool
US6829745B2 (en) * 2001-06-28 2004-12-07 Koninklijke Philips Electronics N.V. Method and system for transforming an XML document to at least one XML document structured according to a subset of a set of XML grammar rules
US20030153998A1 (en) * 2002-02-13 2003-08-14 Micron Technology, Inc. Feature modeling application
US7058937B2 (en) * 2002-04-12 2006-06-06 Intel Corporation Methods and systems for integrated scheduling and resource management for a compiler
US7904815B2 (en) * 2003-06-30 2011-03-08 Microsoft Corporation Content-based dynamic photo-to-video methods and apparatuses
US7051279B2 (en) * 2003-07-08 2006-05-23 Intentional Software Corporation Method and system for providing multiple levels of help information for a computer program
US20050050454A1 (en) * 2003-08-29 2005-03-03 International Business Machines Corporation Controlling the look and feel of a web
US7424672B2 (en) * 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
CN101432729A (zh) * 2004-08-21 2009-05-13 科-爱克思普莱斯公司 用于扩展式企业商务的方法、系统以及设备
US7430712B2 (en) * 2005-03-16 2008-09-30 Ameriprise Financial, Inc. System and method for dynamically resizing embeded web page content
JP2006350867A (ja) * 2005-06-17 2006-12-28 Ricoh Co Ltd 文書処理装置、文書処理方法、プログラム及び情報記録媒体
US20070101261A1 (en) * 2005-10-14 2007-05-03 International Business Machines Corporation System and method for dynamic model-driven transformations
US7904876B1 (en) * 2006-03-01 2011-03-08 The Mathworks, Inc. Interactive graphics format model
US20080005667A1 (en) * 2006-06-28 2008-01-03 Dias Daniel M Method and apparatus for creating and editing electronic documents
US7949949B2 (en) * 2006-11-20 2011-05-24 Intentional Software Corporation Domain transformation languages
US20080209311A1 (en) * 2006-12-29 2008-08-28 Alex Agronik On-line digital image editing with wysiwyg transparency

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01175035A (ja) * 1987-12-29 1989-07-11 Fujitsu Ltd 多言語処理コンバータ
JPH07182147A (ja) * 1993-10-29 1995-07-21 Microsoft Corp コンピュータプログラムを発生する方法及びシステム
JPH09198237A (ja) * 1995-07-06 1997-07-31 Sun Microsyst Inc オンザフライ活字印刷ディスプレイを有する構造的表現型コンピュータ・プログラムのテキスト編集用システム及び方法
JPH11161483A (ja) * 1997-11-27 1999-06-18 Fujitsu Ltd 動的拡張性を備えたソフトウェア構築システムおよび方法
JP2003274309A (ja) * 2002-03-12 2003-09-26 Canon Inc 受信装置
JP2004038297A (ja) * 2002-06-28 2004-02-05 Jcreation Co Ltd プログラム書式変換装置および変換プログラム
US20040225964A1 (en) * 2003-05-09 2004-11-11 Charles Simonyi Method and system for storing pending changes to data
US20050097453A1 (en) * 2003-11-03 2005-05-05 Charles Simonyi Method and system for reversible design tree transformations
JP2006164258A (ja) * 2004-12-06 2006-06-22 Internatl Business Mach Corp <Ibm> 特定のプラットフォームによって使用するためのグラフィカル・ユーザ・インターフェース(gui)モデルを生成するための方法、システム、およびプログラム
JP2006252557A (ja) * 2005-03-10 2006-09-21 Internatl Business Mach Corp <Ibm> コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム

Also Published As

Publication number Publication date
CA2609882A1 (en) 2008-05-20
CA2609882C (en) 2012-08-28
US9158507B2 (en) 2015-10-13
AU2007234484B2 (en) 2010-02-25
EP1923782A1 (en) 2008-05-21
US7949949B2 (en) 2011-05-24
AU2007234484A1 (en) 2008-06-05
US20080120537A1 (en) 2008-05-22
US20110225489A1 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
CA2937702C (en) Emphasizing a portion of the visible content elements of a markup language document
Kottwitz LaTeX cookbook: Over 90 hands-on recipes for quickly preparing LaTeX documents to solve various challenging tasks
US8209605B2 (en) Method and system for facilitating the examination of documents
US8386919B2 (en) System for displaying an annotated programming file
US7940273B2 (en) Determination of unicode points from glyph elements
US9158507B2 (en) Domain transformation languages
JPH07239850A (ja) 構造化文書作成支援システム
US20210264104A1 (en) System and Method for Multi-Dimensional Knowledge Representation
JP2010262325A (ja) 文字列変換方法、プログラム及びそのプログラムを記憶した記憶媒体
Cervone et al. Adaptable accessibility features for mathematics on the web
JPH08106464A (ja) 文書生成装置
JPWO2006137564A1 (ja) 文書処理装置
Pignalberi et al. Introduction to LATEX and to some of its tools
JP5645481B2 (ja) 装置、方法、及びプログラム
JPH0384661A (ja) 文書作成装置
Atkin et al. Implementations of bidirectional reordering algorithms
KR101401427B1 (ko) 전자책 데이터 음성 합성 장치 및 그 방법
Baecker et al. Printing and publishing C programs
WO2023171790A1 (ja) 文章作成支援装置及び文章作成支援プログラム
Mueller CSS3 for Dummies
JP2008191879A (ja) 情報表示装置、情報表示装置の表示方法、情報表示プログラム、および情報表示プログラムを記録した記録媒体
Rougier On the design of text editors
Guide SAS® 9.4 Output Delivery System
JPH07182348A (ja) 翻訳装置
JPH09146936A (ja) かな漢字変換装置およびかな漢字変換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110826

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110922

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110928

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111024

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120323