【手続補正書】
【提出日】平成26年1月15日(2014.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
モジュールを含むメモリであって、前記モジュールは、前記プロセッサに、少なくとも１つのコンシューマがアクセス可能な、ソース・コードの少なくとも１つの文を表現する木を表すデータ構造を生成させるように構成され、前記データ構造は、
前記少なくとも１つのコンシューマが直接にはアクセスできない共有の読取専用の木を表す再利用可能な第１の木であって、前記読取専用の木は単方向のポインタを有するノードを含み、前記第１の木の前記ノードは親ノードへのポインタを有さず、前記読取専用の木に含まれる前記ノードはソース・コードの前記少なくとも１つの文の異なる各要素に対応している、第１の木と、
前記少なくとも１つのコンシューマの前記第１の木へのアクセスを制御する少なくとも１つの根ノードを含む、前記少なくとも１つのコンシューマがアクセス可能な第２の木であって、前記第２の木の前記根ノードは前記第１の木の根ノードへのポインタを含む、第２の木と
を含む、メモリと
を備えたことを特徴とするシステム。
【請求項２】
前記第１の木の要求されたノードへの経路上にある前記第１の木のノードごとに前記第２の木にノードを生成することにより、前記第２の木を要求に応じて構築し、前記生成されたノードは、前記要求されたノードへの前記経路上にある前記第１の木における次のノードに対応し、前記生成されたノードは、前記第１の木の対応する前記ノードへのポインタ、および前記第２の木の前記生成されたノードの親ノードへのポインタを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１の木は、相対的な情報を保持する秘密木であり、前記第２の木は、コンシューマ固有の情報を保持する公開木であることを特徴とする請求項１に記載のシステム。
【請求項４】
前記木は、解析木、構文木、意味木、または束縛木を含むコンパイラ生成型の木であることを特徴とする請求項１に記載のシステム。
【請求項５】
前記少なくとも１つのコンシューマから変更した木の要求を受信したことに応答して、新たな公開木および新たな秘密木を生成し、前記新たな秘密木は、前記第１の木の少なくとも１つの部分木を再利用することを特徴とする請求項３に記載のシステム。
【請求項６】
ソフトウェア開発コンピュータのＩＤＥにおいて、コンシューマがアクセス可能なデータ構造を生成するステップであって、前記データ構造は、
読取専用で秘密の、単方向をポイントする第１の木であって、ソース・コードの少なくとも１つの文を表現し、前記第１の木は、少なくとも１つのノードを含み、前記少なくとも１つのノードは、前記第１の木の親ノードから前記第１の木の子ノードへのポインタを含む少なくとも１つの単方向ポインタを含み、前記少なくとも１つのノードは、ソース・コードの前記少なくとも１つの文の少なくとも１つの各要素に対応している、第１の木と、
コンシューマがアクセス可能な第２の木であって、前記第２の木は前記第１の木へのアクセスを制御し、前記第２の木は、少なくとも根ノードを含み、前記第２の木の前記根ノードは前記第１の木の根ノードへのポインタを含む、第２の木と
を表す、生成するステップを備えたことを特徴とする方法。
【請求項７】
変更した第１の木を表す木の要求を受信したことに応答して、新たな公開木および新たな秘密木を生成するステップをさらに備え、前記新たな秘密木は、少なくとも１つのノードにおいて前記第１の秘密木と異なる木を表し、前記新たな公開木は、少なくとも１つのノードにおいて前記コンシューマがアクセス可能な第２の木と異なる木を表すことを特徴とする請求項６に記載の方法。
【請求項８】
前記コンシューマが前記第２の木を用いて処理を終了したときに、前記第２の木をガベージ・コレクションするステップをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項９】
前記第２の木のノードは、前記第２の木の前記ノードから前記第２の木の前記ノードの子ノードへのポインタ、および前記第２の木の前記ノードから前記第２の木の前記ノードの親ノードへのポインタを含む、双方向ポインタを含み、前記第２の木の前記ノードは、前記第２の木の前記ノードから前記第１の木における対応するノードへのポインタを含み、前記第２の木のノードを、前記第１の木のノードへのアクセス要求をコンシューマから受信したことに応答して、要求に応じて生成することを特徴とする請求項６に記載の方法。
【請求項１０】
前記第１の木は秘密木であり、前記第２の木は公開木であることを特徴とする請求項６に記載の方法。
【請求項１１】
実行時に少なくとも１つのプロセッサにソース・コードの少なくとも１つの文を表現する木を表すデータ構造を生成させるコンピュータ実行可能命令を備えたコンピュータ可読記憶媒体であって、前記データ構造は、
コンシューマがアクセスできない読取専用で再利用可能な第１の木であって、前記第１の木は単方向のポインタを有し、前記第１の木の親ノードは、前記親ノードの子ノードへのポインタを含み、前記親ノードは、前記第１の木の前記親ノードの親ノードへのポインタを含まず、前記親ノードおよび前記親ノードの子ノードはソース・コードの前記少なくとも１つの文の異なる要素に対応している、第１の木と、
前記コンシューマがアクセス可能である再利用不能な第２の木であって、前記第２の木は双方向のポインタを有し、前記第２の木の親ノードは前記親ノードの子ノードへのポインタを含み、前記親ノードは前記第２の木の前記親ノードの親ノードへのポインタを含み、前記第２の木は前記第１の木へのコンシューマのアクセスを制御する、第２の木と
を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
実行時に前記少なくとも１つのプロセッサに前記データ構造を生成させるコンピュータ実行可能命令をさらに備え、前記第２の木を、前記第１の木のノードへの前記コンシューマのアクセス要求に応答して、要求に応じて生成することを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
実行時に前記少なくとも１つのプロセッサに前記データ構造を生成させるコンピュータ実行可能命令をさらに備え、前記第１の木は相対的な内容を含み、前記第２の木はコンシューマ固有の内容を含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１４】
実行時に前記少なくとも１つのプロセッサに、前記第１の木の前記要求されたノードへの経路上にあるノードごとに前記第２の木にノードを生成することによって、要求に応じて前記第２の木を生成させるコンピュータ実行可能命令をさらに備え、前記生成されたノードは、前記要求されたノードへの前記経路上の前記第１の木における次のノードに対応し、前記第２の木の前記生成されたノードは、前記第１の木の対応するノードへのポインタを含むことを特徴とする請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１５】
実行時に前記少なくとも１つのプロセッサに、前記第２の木のノードへのアクセス要求を前記コンシューマから受信したことに応答して、前記第２の木の読取専用で再利用可能なバージョンを含む第３の木を生成させるコンピュータ実行可能命令をさらに備え、前記第３の木は、前記第３の木の親ノードから前記第３の木の前記親ノードの子ノードへの単方向ポインタを有し、前記第３の木への前記コンシューマのアクセスを制御する第４の木を生成し、前記第４の木は、前記コンシューマがアクセス可能な再利用不能な木を含み、前記第４の木は、前記第４の木の親ノードから前記第４の木の前記親ノードの子ノードへのポインタと、前記第４の木の子ノードから前記第４の木の前記子ノードの親ノードへのポインタと、前記第４の木のノードから前記第３の木の対応するノードへのポインタとを含む双方向のポインタを有することを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。