JP5600301B2 - システム表現およびハンドリング技術 - Google Patents
システム表現およびハンドリング技術 Download PDFInfo
- Publication number
- JP5600301B2 JP5600301B2 JP2010548175A JP2010548175A JP5600301B2 JP 5600301 B2 JP5600301 B2 JP 5600301B2 JP 2010548175 A JP2010548175 A JP 2010548175A JP 2010548175 A JP2010548175 A JP 2010548175A JP 5600301 B2 JP5600301 B2 JP 5600301B2
- Authority
- JP
- Japan
- Prior art keywords
- data structure
- nodes
- implementation
- node
- code portion
- 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.)
- Active
Links
Images
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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Logic Circuits (AREA)
- Mobile Radio Communication Systems (AREA)
Description
up)であると考えることができる。実装の継承とは、継承ノードのメソッドによる、祖先ノードによって露出される1つ以上のメソッドのオーバーライド(置換)、あるいは、祖先ノードによって露出されるメソッドへの、継承ノード内に表現される新しいメソッドの追加であると考えることができる。
このような操作は、前記候補インスタンスの特定のインスタンス構造要素を何らかの方法でアノテートすることまたは強調することを含んでもよい。コンピュータプログラミング言語で表現される候補コード部分の場合、このことはプログラマに有用となりうる。例えば、プログラマにとって関心のあるコード部分の特定の箇所(例えばエラーを含んでいる部分や、最適化できる部分)を強調することが可能でもよい。
本発明の実施形態の理解をより深めるために、まず、既存のツールについて説明する(その1つとして、TreeCC(http://www.southern-storm.com.au/treecc.html)が知られている)。明らかとなるように、論理構造記述とデータ構造設計とが本発明の重要な態様を形成している。比較のため、これらは、このような既存のツールにおいて使用されている「システム」AST生成の方法にある程度対応している。このため、既存のツールのAST生成の方法の不具合を理解するために、これらについて(TreeCCにおいて使用されているものに着目して)考察する。
本発明者は、前述のシステムは、対象のプログラミング言語(システム)の論理構造(AST)の記述と、データ構造の形での当該システムの実装との間に比較的直接的な変換を使用することを認識している。この結果、このようなシステムは、柔軟性と簡潔性を欠いている傾向がある。このため、これらの解決策のユーザは、柔軟性を改善するために、あるレベルの型安全性を犠牲にすることを強いられている。
本実施形態は、コンピュータプログラミング言語の場合、好ましくはシステムの実装を生成するソフトウェアツールの形で提供される。このような実施形態は、関連する言語を表現し、ノード間のリンクが、実装およびインタフェースではなく代替可能性の継承を表わす第1のデータ構造(「システム」AST)の記述を入力として取る。このような実施形態は、この入力から、第2のデータ構造(「システム」AST)と実装規則とを有するシステムの実装を生成する。第2のデータ構造では、ルートノード以外のノードは、ルートノードから直接継承する。実装規則は、第2のデータ構造のインスタンス(コード部分)と共に使用するために、第1のデータ構造において固有の代替可能性関係を特定する。また、本実施形態は、このように生成された実装を使用して、第2のデータ構造のインスタンス(コード部分)をハンドリングするソフトウェアツール(例えばパーサまたはコンパイラ)の形でも提供される。
第1のデータ構造記述(システムAST記述)は、BLのインスタンス(すなわち候補コード部分)を最終的にハンドリングできるようにするためのBLの論理構造の記であると考えることができる。本発明の実施形態において利用されるこのような(AST)記述の特性により、このような論理構造を、「代替可能性の模倣多重継承」と「複数型参照」の各特徴を提供する高水準の記述によって記述できるようになる。これらの機能のそれぞれについては以下で詳述する。次に、これらの特徴が、FILで利用可能な何らかの機能を使用して、第1のデータ構造(BLを実装するために効力がある)の実装に使用される実装(第2のデータ構造および実装規則)にエンコードされる。
parent connections to a node)に現れない。
本発明の実施形態の原理を実現する、すなわち、特定の言語(BL)で記述された候補コード部分を効率的にハンドリング(理解/解析/操作/強化されるなど)するために、候補コード部分(「インスタンス」AST)の表現が生成される。このような「インスタンス」ASTを生成するために、上記の第1のデータ構造記述の実装が使用され、以下の説明は、この実装(より詳細には、第2のデータ構造および実装規則を含む)に関する。
more()−反復子が生成すべき更に別のノードを有する場合、真を返す。
node()−反復子が現在居るノードへの参照を返す。
next()−ウォーク時に、反復子がサポートする特定のウォーク順序の決定(最も一般的なのは前順ウォークである)に従って、反復子を次のノードに進める。
以下に説明するように、本システム(単に本発明の一実施形態のみにすぎない「本システム」)が、ルートノードから直接継承するように第2のデータ構造(ルートノード以外の)の全ノードを構成し、元の第1のデータ構造記述に指定されている型規則(実装規則)を再導入するために型チェックメカニズムを実装することによって、記述された論理構造(第1のデータ構造)を実装できることにより、柔軟性および堅固性の点で多くの利点が得られる。
BL specification)。変更されていないソースコードが、「メタ拡張」ソースコードと全く同様に扱われるため、このような方式は、プログラミングコミュニティ内での現実的な採用/理解にとって重要であることが考察される。
(付記1)
構文規則の組を満たす複数の構文的要素を有するコンピュータプログラミング言語の少なくとも一部を表わす第1のデータ構造の実装を生成するための実装ツールであって、前記第1のデータ構造は、複数のリンクされたノードを有し、前記ノードはルートノードと、前記ルートノードに直接リンクされた複数の第1階層ノードと、1つ以上の他の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードと、を有し、前記ノードは、前記言語のこのような構文的要素と、このような構文規則を表現する前記ノードの間のリンクとを表わし、前記ツールは、
前記第1のデータ構造またはその記述を受け取るように動作可能な第1のデータ構造入力手段と、
前記第1のデータ構造の実装を生成するように動作可能な処理手段と、を有し、前記実装は、
前記第1のデータ構造に対応する第2のデータ構造またはその記述であって、前記第1のデータ構造の前記ノードに対応するノードを有し、そのルートノード以外のノードが、前記第2のデータ構造の前記ルートノードに直接リンクされている第2のデータ構造と、
前記第1のデータ構造によって表現された前記構文規則への準拠を確立するために、前記実装を利用するその後の処理操作中に、前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の前記構文規則を定義する実装規則と、を有する実装ツール。
前記第1のデータ構造は、少なくとも部分的に抽象構文ツリーなどの不均一なツリー構造である付記1に記載の実装ツール。
前記第1のデータ構造は、少なくとも部分的に有向非巡回グラフ構造である付記1または2に記載の実装ツール。
前記言語は多数のトークンから構成され、前記言語の各前記構文的要素は、前記トークンの群あるいは前記トークンの所定の組合せを表わす上記付記のいずれか1項に記載の実装ツール。
前記第1のデータ構造の前記ノード間の前記リンクは、該ノードの間の実装およびインタフェースではなく代替可能性の継承の経路を表わす上記付記のいずれか1項に記載の実装ツール。
前記第2のデータ構造の前記ノード間の前記リンクは、該ノードの間の代替可能性、実装およびインタフェースの継承の経路を表わす上記付記のいずれか1項に記載の実装ツール。
前記第1のデータ構造によって表わされる代替可能性関係への準拠を確立するために、前記実装規則は、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される代替可能性の規則を定義する上記付記のいずれか1項に記載の実装ツール。
前記第1のデータ構造は、言語拡張を表わす更に別のリンクされたノードを有し、前記言語拡張は前記コンピュータプログラミング言語に対する拡張である上記付記のいずれか1項に記載の実装ツール。
前記第1のデータ構造の前記更に別のノードは、前記言語拡張のそれぞれの構文的要素を表現する付記8に記載の実装ツール。
(付記10)
前記実装規則は、前記第1のデータ構造によって表わされる前記第1のデータ構造の前記1つ以上の更に別のノードの前記代替可能性関係への準拠を確立するために、前記実装を利用するその後の処理操作中に、前記受け取った第1のデータ構造の前記1つ以上の更に別のノードに対応する前記第2のデータ構造のノードに関連して強制される代替可能性の規則を定義する付記8〜10のいずれか1項に記載の実装ツール。
前記言語拡張は、前記コンピュータプログラミング言語以外の言語の一部または全体である付記8〜11のいずれか1項に記載の実装ツール。
構文規則の組を満たす複数の構文的要素を有するコンピュータプログラミング言語の少なくとも一部を表わす第1のデータ構造の実装を生成するための方法であって、前記第1のデータ構造は、複数のリンクされたノードを有し、前記ノードはルートノードと、前記ルートノードに直接リンクされた複数の第1階層ノードと、1つ以上の他の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードと、を有し、前記ノードは、前記言語のこのような構文的要素と、このような構文規則を表現する前記ノードの間のリンクとを表わし、前記方法は、
前記第1のデータ構造またはその記述を受け取るステップと、
前記第1のデータ構造の実装を生成するステップと、を有し、前記実装は、
前記第1のデータ構造に対応する第2のデータ構造またはその記述であって、前記第1のデータ構造の前記ノードに対応するノードを有し、そのルートノード以外のノードが、前記第2のデータ構造の前記ルートノードに直接リンクされている第2のデータ構造と、
前記第1のデータ構造によって表現された前記構文規則への準拠を確立するために、前記実装を利用するその後の処理操作中に、前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の前記構文規則を定義する実装規則と、を有する実装方法。
コンピューティングデバイスで実行されたときに、前記コンピューティングデバイスに付記13に記載の方法を実行させる実装コンピュータプログラム。
付記1〜12のいずれか1項に記載の実装ツールによって生成される前記実装の前記第2のデータ構造のインスタンスに動作するためのインスタンスハンドリングツールであって、
前記実装を記憶する手段と、
前記実装に依存して前記候補インスタンスに動作するための手段と、を有し、前記候補インスタンスは、前記第2のデータ構造のノードに対応するインスタンスノードを含むインスタンスハンドリングツール。
前記第2のデータ構造の前記候補インスタンスを、そのインスタンスノードおよびその間のリンクが明示的に表現されていない入力形式で受け取るための手段と、
前記受け取った候補インスタンスを、前記インスタンスノードおよびその間のリンクが明示的に表現されている抽象化形式に変換するための変換手段と、を更に有する付記15に記載のインスタンスハンドリングツール。
前記候補インスタンスは、前記コンピュータプログラミング言語内で表現されたコード部分であり、
前記入力形式は、前記コード部分のテキスト版であり、
前記抽象化形式は、前記コード部分の抽象構文ツリーまたはグラフ版である付記16に記載のインスタンスハンドリングツール。
前記候補インスタンスの視覚的表現を生成するように動作可能な可視化手段を更に有する付記15〜17のいずれか1項に記載のインスタンスハンドリングツール。
少なくとも付記16に付加して解釈される場合に、前記可視化手段は、前記候補インスタンスの視覚的表現を前記抽象化形式で生成するように動作可能である付記18に記載のインスタンスハンドリングツール。
前記実装に依存して前記候補インスタンスを操作するように動作可能な操作手段を更に有する付記15〜19のいずれか1項に記載のインスタンスハンドリングツール。
少なくとも付記16に付加して解釈される場合に、前記操作手段は、前記候補インスタンスを前記抽象化形式で操作するように動作可能である付記20に記載のインスタンスハンドリングツール。
前記操作手段は、前記実装と照らし合わせてこのような操作を検証し、前記第2のデータ構造および/または前記実装規則に違反する操作を禁止するように動作可能である付記20または21に記載のインスタンスハンドリングツール。
前記操作手段は、前記第2のデータ構造および前記実装規則を遵守する操作を許可するように動作可能である付記22に記載のインスタンスハンドリングツール。
このような操作は、前記候補インスタンスを増やすおよび/または前記候補インスタンスを減らすことを含む付記20〜23のいずれか1項に記載のインスタンスハンドリングツール。
このような操作は、前記候補インスタンスに新しいインスタンスノードを追加することを含む付記20〜24のいずれか1項に記載のインスタンスハンドリングツール。
このような操作は、前記候補インスタンスからインスタンスノードを削除することを含む付記24または25に記載のインスタンスハンドリングツール。
このような操作は、前記候補インスタンスの特定のインスタンスノードをアノテートすることを含む付記24〜26のいずれか1項に記載のインスタンスハンドリングツール。
このような操作は、前記候補インスタンスの一部または全体に所定のプロセスを実行することを含む付記20〜27のいずれか1項に記載のインスタンスハンドリングツール。
前記所定のプロセスは、前記インスタンスハンドリングツールによってアクセス可能な、コンピュータプログラムなどのアクションの組内に定義される付記28に記載のインスタンスハンドリングツール。
前記所定のプロセスは、所定の目的のために前記候補インスタンスを最適化するように動作可能な最適化プロセスである付記28または29に記載のインスタンスハンドリングツール。
前記操作手段は、前記候補インスタンスの前記インスタンスノードに依存してこのような操作を実行するように動作可能である付記20〜30のいずれか1項に記載のインスタンスハンドリングツール。
前記操作手段は、インスタンスノードの特定の型を識別し、前記識別されたインスタンスノードに依存してこのような操作を実行するように動作可能である付記31に記載のインスタンスハンドリングツール。
前記実装および前記第2のデータ構造は、付記8〜12のいずれか1項に記載の実装ツールによって生成される前記実装および前記第2のデータ構造であり、
インスタンスノードの前記特定の型は、前記言語拡張の前記更に別のノードのインスタンスノードである付記32に記載のインスタンスハンドリングツール。
前記実装および前記第2のデータ構造は、付記8〜12のいずれか1項に記載の実装ツールによって生成される前記実装および前記第2のデータ構造であり、
前記候補インスタンスは、前記言語拡張に由来する部分を含む付記15〜33のいずれか1項に記載のインスタンスハンドリングツール。
少なくとも付記16に付加して解釈される場合に、前記変換手段は第1の変換手段であり、前記インスタンスハンドリングツールは、前記抽象化形式の前記候補インスタンスをその対応する入力形式に変換するように動作可能な第2の変換手段を更に有する付記15〜34のいずれか1項に記載のインスタンスハンドリングツール。
少なくとも付記20に付加して解釈される場合に、前記第2の変換手段は、このような操作が前記候補インスタンスに実行される前にあるいはその後に、このような変換を実行するように動作可能である付記35に記載のインスタンスハンドリングツール。
少なくとも付記20に付加して解釈される場合に、
前記候補インスタンスは、前記コンピュータプログラミング言語内で表現されたコード部分であり、
前記インスタンスハンドリングツールは、このような操作の前か後に、前記候補インスタンスをオブジェクトコードとして出力するように動作可能な手段を有する付記15〜36のいずれか1項に記載のインスタンスハンドリングツール。
パーサまたはコンパイラである付記37に記載のインスタンスハンドリングツール。
付記1〜12のいずれかの1項に記載の実装ツールによって生成される前記実装の前記第2のデータ構造のインスタンスに動作するためのインスタンスハンドリング方法であって、前記方法は、前記実装に依存して前記候補インスタンスに動作するステップを有し、前記候補インスタンスは、前記第2のデータ構造のノードに対応するインスタンスノードを含む方法。
コンピューティングデバイスで実行されたときに、前記コンピューティングデバイスに付記39に記載の方法を実行させるインスタンスハンドリングコンピュータプログラム。
コンピュータプログラミング言語を拡張する方法であって、
前記言語の少なくとも一部を表わす第1のデータ構造またはその記述を取得するステップと、
言語拡張を表わす更に別のリンクされたノードを含むように、前記第1のデータ構造またはその前記記述を適応させるステップと、
前記適応された第1のデータ構造の実装を生成するために、付記8〜12のいずれか1項に記載の実装ツールを使用するステップと、を有する方法。
付記1〜12のいずれか1項に記載の実装ツールおよび/または付記15〜38のいずれか1項に記載のインスタンスハンドリングツールを有するパーサまたはコンパイラ。
コンピュータプログラムを生成あるいは適応させる方法であって、
前記コンピュータプログラミング言語の少なくとも前記一部で表現された候補コンピュータプログラムを、前記候補インスタンスとして、付記15〜38のいずれか1項に記載のインスタンスハンドリングツールに入力するステップと、
前記候補インスタンスに動作するために前記インスタンスハンドリングツールを使用するステップと、
このような操作から得られるコンピュータプログラムを出力するために前記インスタンスハンドリングツールを使用するステップと、を有し、前記出力されるコンピュータプログラムは、このように生成または適応されたコンピュータプログラムである方法。
付記1〜12のいずれか1項に記載の実装ツールおよび/または付記15〜38のいずれか1項に記載のインスタンスハンドリングツールとして機能するように構成されたコンピュータまたはコンピュータのネットワーク。
付記1〜12のいずれか1項に記載の実装ツールおよび/または付記15〜38のいずれか1項に記載のインスタンスハンドリングツールを有するメタプログラミングツール。
Claims (44)
- 第1のデータ構造の実装を生成するためのコンピュータプログラミングツールであって、前記第1のデータ構造はコンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記ツールは、
前記第1のデータ構造またはその記述を記憶するように動作可能なメモリと、
前記第1のデータ構造から、前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成するように構成された少なくとも1つのプロセッサと、を備え、
前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、
前記第2のデータ構造の前記ノード間の前記リンクは前記ノード間の代替可能性の継承の経路、実装およびインターフェースを表し、
前記プロセッサはさらに、前記1つの第1のデータ構造のリンクパターンに基づいて、前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成するように動作可能であり、
前記第2のデータ構造と前記実装規則は、前記第1のデータ構造の前記1つの実装を形成する、コンピュータプログラミングツール。 - 前記第1のデータ構造は少なくとも部分的に不均一なツリー構造である、請求項1に記載のコンピュータプログラミングツール。
- 前記第1のデータ構造は少なくとも部分的に有向非巡回グラフ構造である、請求項2に記載のコンピュータプログラミングツール。
- 前記言語は複数のトークンから構成され、前記言語の各前記構文的要素は、前記トークンの群または前記トークンの所定の組合せを表わす、請求項1に記載のコンピュータプログラミングツール。
- 前記第1のデータ構造は、言語拡張を表わす更に別のリンクされたノードを有し、前記言語拡張は前記コンピュータプログラミング言語に対する拡張である、請求項1に記載のコンピュータプログラミングツール。
- 前記第1のデータ構造の前記更に別のノードは、前記言語拡張のそれぞれの構文的要素を表す、請求項5に記載のコンピュータプログラミングツール。
- 前記第1のデータ構造の前記更に別のノードの内の少なくとも一つは、前記第1のデータ構造の他のノードの幾つかに対して代替可能として定義される、請求項5に記載のコンピュータプログラミングツール。
- 前記実装規則は、前記第1のデータ構造によって表わされる前記第1のデータ構造の前記1つ以上の更に別のノードの前記代替可能性の関係への準拠を確立するために、前記実装を利用するその後の処理操作中に、前記第1のデータ構造の前記1つ以上の更に別のノードに対応する前記第2のデータ構造のノードに関連して強制される代替可能性の規則を定義する、請求項5に記載のコンピュータプログラミングツール。
- 前記言語拡張は前記コンピュータプログラミング言語以外の言語の少なくとも一部である、請求項5に記載のコンピュータプログラミングツール。
- コンピュータプログラミングツールによって第1のデータ構造の実装を生成するための実装方法であって、前記第1のデータ構造はコンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記実装方法は、
コンピュータプログラミングツールが備えるプロセッサが、前記第1のデータ構造またはその記述を受取ることと、
前記プロセッサが、前記第1のデータ構造の実装を生成することとを含み、当該生成することは、
前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成することであって、前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、前記第2のデータ構造の前記ノード間の前記リンクは代替可能性の継承の経路、前記ノード間の実装およびインターフェースを表す、ことと、
前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成することと、を含む、実装方法。 - コンピューティングデバイスで実行されたときに、前記コンピューティングデバイスにコンピュータプログラミングツールを用いて第1のデータ構造の実装を生成する方法を実行させる実装コンピュータプログラムを記憶した記憶媒体であって、
前記第1のデータ構造はコンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記方法は、
コンピュータプログラミングツールが備えるプロセッサが、前記第1のデータ構造またはその記述を受取ることと、
前記プロセッサが、前記第1のデータ構造の実装を生成することとを含み、当該生成することは、
前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成することであって、前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、前記第2のデータ構造の前記ノード間の前記リンクは前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す、ことと、
前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成することと、を含む、記憶媒体。 - コード部分で動作するコード部分ハンドリングツールであって、
前記コード部分は第1のデータ構造の実装を生成するためのコンピュータプログラミングツールによって生成された実装の第2のデータ構造のインスタンスであり、前記第1のデータ構造はコンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記コンピュータプログラミングツールは、
前記第1のデータ構造またはその記述を記憶する操作可能なメモリと、
前記第1のデータ構造から、前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成するように構成された少なくとも1つのプロセッサと、を備え、
前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、
前記第2のデータ構造の前記ノード間の前記リンクは代替可能性の継承の経路、前記ノード間の実装およびインターフェースを表し、
前記プロセッサはさらに、前記1つの第1のデータ構造のリンクパターンに基づいて、前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成するように操作可能であり、
前記第2のデータ構造と前記実装規則は、前記第1のデータ構造の前記1つの実装を形成し、前記コード部分は前記コンピュータプログラミング言語で表現され、前記コード部分ハンドリングツールは、
前記実装を記憶するためのメモリと、
前記実装に依存して候補コード部分で動作するように構成された少なくとも1つのプロセッサと、を備え、前記候補コード部分は前記第2のデータ構造のノードに対応するインスタンスノードを備える、コード部分ハンドリングツール。 - 前記第2のデータ構造は、そのインスタンスノードおよびその間のリンクが明示的に表現されていない入力形式であり、
前記少なくとも1つのプロセッサは、受け取った前記候補コード部分を、前記インスタンスノードおよびこれらの間のリンクが明示的に表現されている抽象化形式に変換するように構成されている、請求項12に記載のコード部分ハンドリングツール。 - 前記候補コード部分は、前記コンピュータプログラミング言語で表現されたコード部分であり、
前記入力形式は、前記コード部分のテキスト版であり、
前記抽象化形式は、前記コード部分の抽象構文ツリーまたはグラフ版である、請求項13に記載のコード部分ハンドリングツール。 - 前記少なくとも1つのプロセッサは、ディスプレイ上で、前記候補コード部分の視覚的表現の生成を命令するように動作可能である、請求項12に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記候補コード部分の視覚的表現を前記抽象化形式での生成を命令するように動作可能である、請求項13に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記実装に依存して前記候補コード部分を操作するように動作可能である、請求項12に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記候補コード部分を前記抽象化形式で操作するように動作可能である、請求項13に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記実装と照らし合わせてこのような操作を検証し、前記第2のデータ構造および前記実装規則の少なくとも一つに違反する操作を禁止するように動作可能である、請求項17に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記第2のデータ構造および前記実装規則を遵守する操作を許可するように動作可能である、請求項19に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記候補コード部分を増やすおよび/または前記候補コード部分を減らすことを少なくとも含む操作を許可するように動作可能である、請求項17に記載のコード部分ハンドリングツール。
- このような操作は、前記候補コード部分に新しいインスタンスノードを追加することを含む、請求項17に記載のコード部分ハンドリングツール。
- このような操作は、前記候補コード部分からインスタンスノードを削除することを含む、請求項22に記載のコード部分ハンドリングツール。
- このような操作は、前記候補コード部分の特定のインスタンスノードをアノテートすることを含む、請求項22に記載のコード部分ハンドリングツール。
- このような操作は、前記候補コード部分の少なくとも一部に所定のプロセスを実行することを含む、請求項17に記載のコード部分ハンドリングツール。
- 前記所定のプロセスは、前記コード部分ハンドリングツールによってアクセス可能なアクションの組内に定義される、請求項25に記載のコード部分ハンドリングツール。
- 前記所定のプロセスは、所定の目的のために前記候補コード部分を最適化するように動作可能な最適化プロセスである、請求項25に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記候補コード部分の前記インスタンスノードに依存してこのような操作を実行するように動作可能である、請求項22に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記インスタンスノードの特定の型を識別し、前記識別されたインスタンスノードに依存してこのような操作を実行するように動作可能である、請求項28に記載のコード部分ハンドリングツール。
- 前記第1のデータ構造は言語拡張を表す更に別のリンクされたノードを備え、前記言語拡張は前記コンピュータプログラミング言語に対する拡張であり、前記実装規則は、前記第1のデータ構造により表される前記第1のデータ構造の1つ以上の前記更に別のノードの前記代替可能性の関係への準拠を確立するために前記実装を使用するその後の処理操作中に、前記第1のデータ構造の1つ以上の前記更に別のノードに対応する前記第2のデータ構造に関連して強制される代替可能性の規則を定義し、前記インスタンスノードの前記特定の型は、前記言語拡張の前記更に別のノードのインスタンスノードである、請求項29に記載のコード部分ハンドリングツール。
- 前記候補コード部分は前記言語拡張に起因する部分を含む、請求項30に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記抽象化形式の前記候補コード部分をその対応する入力形式に変換するように動作可能である、請求項13に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、前記実装に依存して前記候補コード部分を操作するように動作可能であり、かつ、前記少なくとも1つのプロセッサは、前記候補コード部分で実行された前記操作の前後に前記変換を実行するように動作可能である、請求項32に記載のコード部分ハンドリングツール。
- 前記候補コード部分は、前記コンピュータプログラミング言語で表現されたコード部分であり、前記少なくとも1つのプロセッサは、オブジェクトコードとして前記操作の前後に前記候補コード部分を出力するように動作可能である、請求項32に記載のコード部分ハンドリングツール。
- 前記少なくとも1つのプロセッサは、コンパイラとして構成される、請求項34に記載のコード部分ハンドリングツール。
- コード部分で動作するコード部分ハンドリング方法であって、
前記コード部分は第1のデータ構造の実装を生成するためにコンピュータプログラミングツールによって生成された実装の第2のデータ構造のインスタンスであり、前記第1のデータ構造はコンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記ツールは、
前記第1のデータ構造またはその記述を記憶する操作可能なメモリと、
前記第1のデータ構造から、前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成するように構成された少なくとも1つのプロセッサと、を備え、
前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、
前記第2のデータ構造の前記ノード間の前記リンクは前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表し、
前記プロセッサはさらに、前記1つの第1のデータ構造のリンクパターンに基づいて、前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成するように操作可能であり、
前記第2のデータ構造と前記実装規則は、前記第1のデータ構造の前記1つの実装を形成し、前記コード部分は前記コンピュータプログラミング言語で表現され、
前記方法は前記実装に依存して候補コード部分で動作することを含む、コード部分ハンドリング方法。 - コンピューティングデバイスで実行されたときに、前記コンピューティングデバイスにコード部分で動作するコード部分ハンドリング方法を実行させるコード部分ハンドリング・コンピュータプログラムを記憶した記憶媒体であって、前記コード部分は第1のデータ構造の実装を生成するためのコンピュータプログラミングツールによって生成された実行の第2のデータ構造のインスタンスであり、前記第1のデータ構造はコンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記ツールは、
前記第1のデータ構造またはその記述を記憶する操作可能なメモリと、
前記第1のデータ構造から、前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成するように構成された少なくとも1つのプロセッサと、を備え、
前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、
前記第2のデータ構造の前記ノード間の前記リンクは前記ノード間の代替可能性の継承の経路、実装およびインターフェースを表し、
前記プロセッサはさらに、前記1つの第1のデータ構造のリンクパターンに基づいて、前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成するように操作可能であり、
前記第2のデータ構造と前記実装規則は、前記第1のデータ構造の前記1つの実装を形成し、前記コード部分は前記コンピュータプログラミング言語で表現され、
前記方法は、前記実装に依存して候補コード部分で動作することを含む、記憶媒体。 - コンピュータプログラミングツールによってコンピュータプログラミング言語を拡張する方法であって、
前記コンピュータプログラミングツールが備えるプロセッサが、前記言語の少なくとも一部を表わす第1のデータ構造またはその記述を取得することと、
前記プロセッサが、言語拡張を表わす更に別のリンクされたノードを含むように、前記第1のデータ構造またはその記述を適応させることと、
前記プロセッサが、前記適応された第1のデータ構造の実装を生成することと、を含み、
前記コンピュータプログラミングツールは第1のデータ構造の実装を生成するためのものであり、前記第1のデータ構造は前記コンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え、前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、
前記ツールは、
前記第1のデータ構造と当該第1のデータ構造の一つを記憶する操作可能なメモリと、
前記第1のデータ構造から、前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成するように構成された少なくとも1つの前記プロセッサと、を備え、
前記第2のデータ構造は、前記第2のデータ構造の内、前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、
前記第2のデータ構造の前記ノード間の前記リンクは前記ノード間の代替可能性の継承の経路、実装およびインターフェースを表し、
前記プロセッサはさらに、前記1つの第1のデータ構造のリンクパターンに基づいて、前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成するように操作可能であり、
前記第2のデータ構造と前記実装規則は、前記第1のデータ構造の前記1つの実装を形成し、
前記第1のデータ構造はさらに、言語拡張を表す更に別のリンクされたノードを備え、前記言語拡張は前記コンピュータプログラミング言語に対する拡張であり、
前記実装規則は、前記第1のデータ構造により表される前記第1のデータ構造の1つ以上の前記更に別のノードの前記代替可能性の関係への準拠を確立するために前記実装を使用するその後の処理操作中に、前記第1のデータ構造の1つ以上の前記更に別のノードに対応する前記第2のデータ構造に関連して強制される代替可能性の規則を定義する、方法。 - コンピュータプログラミングツールによってコンピュータプログラムを生成または適応させる方法であって、
前記コンピュータプログラミングツールが備えるプロセッサが、候補コード部分としてコンピュータプログラミング言語の少なくとも一部で表現された候補コンピュータプログラムをコード部分ハンドリングツールに入力することと、
前記プロセッサが、前記候補コード部分で動作するようにコード部分ハンドリングツールを使用することと、
前記プロセッサが、前記動作の結果、コンピュータプログラムを出力するように前記コード部分ハンドリングツールを使用することと、を含み、前記出力されるコンピュータプログラムは生成または適応されたコンピュータプログラムであり、
前記コード部分ハンドリングツールはコード部分で動作するためのものであり、前記コード部分は第1のデータ構造の実装を生成するためのコンピュータプログラミングツールによって生成された実行の第2のデータ構造のインスタンスであり、前記第1のデータ構造は前記コンピュータプログラミング言語の少なくとも一部を表し、前記言語は構文規則の組を満たす複数の構文的要素と複数のリンクされたノードを備える前記第1のデータ構造を備え、そのようなノードはルートノード、前記ルートノードに直接リンクされた複数の第1階層のノード、および1つ以上の前記ノードを介して前記ルートノードに間接的にリンクされた複数の下層ノードを備え前記ノードは前記言語の構文的要素と、前記ノード間の実装およびインターフェースではなく代替可能性の継承の経路を表す前記ノード間のリンクのパターンを表し、前記コンピュータプログラミングツールは、
前記第1のデータ構造またはその記述を記憶する操作可能なメモリと、
前記第1のデータ構造から、前記第1のデータ構造に対応する第2のデータ構造またはその記述を生成するように構成された少なくとも1つの前記プロセッサと、を備え、
前記第2のデータ構造は、前記第2のデータ構造の内前記ルートノードに直接リンクされたルートノード以外の前記第2のデータ構造の全てのノードを有する前記第1のデータ構造のノードに対応するノードを備え、
前記第2のデータ構造の前記ノード間の前記リンクは前記ノード間の代替可能性の継承の経路、実装およびインターフェースを表し、
前記プロセッサはさらに、前記1つの第1のデータ構造のリンクパターンに基づいて、前記第1のデータ構造により表される前記代替可能性の継承への準拠を確立するための前記第2のデータ構造を使用するその後の処理操作中に、前記実装を利用するその後の処理操作中に前記第2のデータ構造のノードに関連して強制される前記第1のデータ構造の代替可能性の規則を定義する実装規則を生成するように操作可能であり、
前記第2のデータ構造と前記実装規則は、前記第1のデータ構造の前記1つの実装を形成し、前記コード部分は前記コンピュータプログラミング言語で表現され、前記コード部分ハンドリングツールは、
前記実装を記憶するためのメモリと、
前記実装に応じて候補コード部分で動作するように構成された少なくとも1つのプロセッサとを備え、前記候補コード部分は前記第2のデータ構造のノードに対応するインスタンスノードを備える、方法。 - コンピュータまたはネットワークコンピュータで実装される、請求項1に記載のコンピュータプログラミングツール。
- メタプログラミングを実行するように動作可能である、請求項1に記載のコンピュータプログラミングツール。
- コンピュータまたはネットワークコンピュータで実装される、請求項12に記載のコード部分ハンドリングツール。
- メタプログラミングを実行するように動作可能である、請求項12に記載のコード部分ハンドリングツール。
- 前記不均一なツリー構造は抽象構文ツリーである、請求項2に記載のコンピュータプログラミングツール。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3254708P | 2008-02-29 | 2008-02-29 | |
EP08152165.0 | 2008-02-29 | ||
EP08152165A EP2096534A1 (en) | 2008-02-29 | 2008-02-29 | System representation and handling techniques |
US61/032,547 | 2008-02-29 | ||
PCT/GB2009/000552 WO2009106843A2 (en) | 2008-02-29 | 2009-02-27 | System representation and handling techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011513824A JP2011513824A (ja) | 2011-04-28 |
JP5600301B2 true JP5600301B2 (ja) | 2014-10-01 |
Family
ID=40674215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010548175A Active JP5600301B2 (ja) | 2008-02-29 | 2009-02-27 | システム表現およびハンドリング技術 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP5600301B2 (ja) |
CA (1) | CA2714189C (ja) |
WO (1) | WO2009106843A2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5772316B2 (ja) | 2011-07-08 | 2015-09-02 | ソニー株式会社 | 情報処理装置、情報処理方法及びコンピュータプログラム |
JP5962671B2 (ja) | 2012-01-25 | 2016-08-03 | ソニー株式会社 | 情報処理装置、情報処理方法およびコンピュータプログラム |
EP2835735A4 (en) | 2012-04-06 | 2016-04-06 | Sony Corp | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND COMPUTER PROGRAM |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488727A (en) * | 1991-09-30 | 1996-01-30 | International Business Machines Corporation | Methods to support multimethod function overloading with compile-time type checking |
JPH05173772A (ja) * | 1991-12-25 | 1993-07-13 | Toshiba Corp | 統一内部モデルに対する複数ビュー表示システムの構築方法 |
-
2009
- 2009-02-27 WO PCT/GB2009/000552 patent/WO2009106843A2/en active Application Filing
- 2009-02-27 CA CA2714189A patent/CA2714189C/en active Active
- 2009-02-27 JP JP2010548175A patent/JP5600301B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2009106843A3 (en) | 2010-01-21 |
CA2714189C (en) | 2016-10-18 |
WO2009106843A2 (en) | 2009-09-03 |
CA2714189A1 (en) | 2009-09-03 |
JP2011513824A (ja) | 2011-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8516458B2 (en) | System representation and handling techniques | |
Schordan et al. | A source-to-source architecture for user-defined optimizations | |
Syme et al. | Expert F♯ | |
Yi | POET: a scripting language for applying parameterized source‐to‐source program transformations | |
Havlak | Interprocedural symbolic analysis | |
US7937694B2 (en) | Fast flattening of nested streams | |
JP2012504826A (ja) | 拡張可能な構文を有するプログラミング言語 | |
Izmaylova et al. | Practical, general parser combinators | |
Pawlak et al. | Spoon: Program analysis and transformation in java | |
van Binsbergen et al. | Executable component-based semantics | |
Fritzson et al. | Towards Modelica 4 meta-programming and language modeling with MetaModelica 2.0 | |
EP2096534A1 (en) | System representation and handling techniques | |
Boshernitsan | Harmonia: A flexible framework for constructing interactive language-based programming tools | |
JP5600301B2 (ja) | システム表現およびハンドリング技術 | |
Porkoláb | Functional programming with C++ template metaprograms | |
van Der Storm et al. | Object grammars: Compositional and bidirectional mapping between text and graphs | |
Ferrarotti et al. | Stepwise abstraction of high-level system specifications from source code | |
Nakamaru et al. | Generating fluent embedded domain-specific languages with subchaining | |
Kalleberg et al. | Fusing a transformation language with an open compiler | |
Ike-Nwosu | Inside the Python Virtual Machine | |
Dillig et al. | SAIL: Static analysis intermediate language with a two-level representation | |
Nupponen | The design and implementation of a graph rewrite engine for model transformations | |
Irwin | Understanding and improving object-oriented software through static software analysis | |
Coffman | Bridging Intermediate Representations to Achieve Hardware Design Language Translation | |
Krikava et al. | Solving the TTC'14 FIXML Case Study with SIGMA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130813 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140415 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140711 |
|
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: 20140805 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140815 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5600301 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |