【手続補正書】
【提出日】平成27年1月22日(2015.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
汎用要素および専用要素を含む、要素のセットに対応する機械コードを生成するためのコンピュータ実装方法であって、前記専用要素は、複数の汎用要素によって実行される機能の単一の要素の実装であり、前記コンピュータ実装方法は、
関係的に結合された演算子の配列内の部分が、専用要素にマッピングされるための条件を満足するかどうかを判断することと、
前記部分が前記条件を満足する場合に、前記部分を専用要素に、他の場合には、１以上の前記汎用要素にマッピングし、マッピングすることは、複数の状態を含むオートマトンに前記配列を変換することを含み、前記部分は、前記専用要素にマッピングされる場合には、前記専用要素に対応する専用状態を用いて変換し、他の場合には、前記部分は汎用状態に変換することと、
前記オートマトンを機械コードに変換することによって、関係的に結合された演算子の前記配列を機械コードに変換することと
を含むコンピュータ実装方法。
【請求項２】
前記機械コードが、並列マシンのためのイメージを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
専用要素に対応する前記配列内の部分を識別することが、前記専用要素を使用して実装できる、前記関係的に結合された演算子の演算子を識別することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記配列をオートマトンに変換することが、前記配列内の前記演算子の各々を前記複数の状態のうちの１つまたは複数に変換することを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記部分が前記条件を満足しない場合に、前記部分が、専用要素に対応する専用状態を使用するのではなく、汎用状態を使用して変換され、前記汎用状態が前記汎用要素に対応する、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記部分が第１の部分を含み、かつ、前記配列の第２の部分が専用要素に対応するとして識別されない場合に、前記第２の部分が、専用要素に対応する専用状態を使用するのではなく、汎用状態を使用して変換され、前記汎用状態が前記汎用要素に対応する、請求項１に記載のコンピュータ実装方法。
【請求項７】
要素の前記セットが並列マシンのハードウェア要素のセットを含み、前記汎用要素がプログラム可能要素を含み、かつ、前記専用要素がカウンタを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記プログラム可能要素が状態機械要素を含む、請求項７に記載のコンピュータ実装方法。
【請求項９】
前記状態機械要素がメモリセルを含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記メモリセルが揮発性メモリセルを含む、請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記機械コードを公開することをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項１２】
前記機械コードを公開することが、前記機械コードを並列マシン上にロードすることを含む、請求項１１に記載のコンピュータ実装方法。
【請求項１３】
前記機械コードを公開することが、前記機械コードをコンピュータ可読媒体上に格納することを含む、請求項１１に記載のコンピュータ実装方法。
【請求項１４】
命令を含むコンピュータ可読媒体であって、
前記命令が前記コンピュータによって実行される際に、前記コンピュータに：
対象装置のための専用要素に対応する、関係的に結合された演算子の配列内の部分を識別することであって、前記対象装置が汎用要素も含む、配列内の部分を識別し、前記専用要素は、前記対象装置の複数の汎用要素によって実行することが出来る機能の単一の要素の実装であり、前記対象装置は、また、少なくとも１つの汎用要素を含むことと、
前記部分が、前記専用要素にマッピングされるための条件を満足するかどうかを判断することと、
前記配列を、複数の状態を含むオートマトンに変換することであって、前記部分が前記条件を満足する場合に、前記部分が、前記専用要素に対応する、他の場合には、汎用状態に対応する専用状態を使用して変換される、前記配列をオートマトンに変換することと、
前記オートマトンを機械コードに変換することと
を含む動作を実行させる、
コンピュータ可読媒体。
【請求項１５】
前記命令が、前記コンピュータに：
ソースコードを前記配列に変換することと、
前記機械コードを公開することと
を含む動作を実行させる、請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記部分が、専用要素にマッピングされるための条件を満足するかどうかを判断することが、前記部分が決定性であるかどうかを判断することを含む、請求項１４に記載のコンピュータ可読媒体。
【請求項１７】
前記配列の部分を識別することが
数量化を識別することを含み、かつ、
前記部分が決定性であるかどうかを判断することが、前記数量化に対する駆動式が、前記数量化が処理されている間に、一致できるかどうかを判断することを含む、
請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記配列の部分を識別することが、
数量化を識別することを含み、かつ、
前記部分が決定性であるかどうかを判断することが、前記数量化の繰返し式が、前記数量化の別の繰返し式のプレフィックスであるかどうかを判断することを含む、
請求項１６に記載のコンピュータ可読媒体。
【請求項１９】
前記配列内の部分を識別することが、数量化を識別することを含む、請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
部分が決定性であるかどうかを判断することが、前記数量化に対する駆動式が、前記数量化が処理されている間に一致できるかどうかを判断すること、および、前記数量化の繰返し式が、前記数量化の別の繰返し式のプレフィックスであるかどうかを判断することを含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記専用要素が、前記オートマトン内に対応するカウンタ状態を有するカウンタを含み、かつ、前記汎用要素が、前記オートマトン内に対応する状態機械要素状態を有する状態機械要素を含む、請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記部分が数量化に対応し、かつ前記部分が決定性である場合、前記部分が、前記数量化の繰返し式およびカウンタ状態を含むループとして実装され、前記カウンタ状態が、前記繰返し式が一致する回数をカウントするように構成されていて、また、前記繰返し式が、前記数量化によって指定された回数一致する場合に、前記カウンタ状態が下流の状態をアクティブにする、請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記ループが、前記繰返し式の否定バージョンとの一致によって終了される、請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
前記数量化が、単一のループ数と一致し得る場合に、
前記繰返し式を、前記カウンタ状態のカウント入力をアサートするように構成し、
前記繰返し式の否定バージョンを、前記カウンタ状態をリセットするように構成し、かつ
前記カウント入力が、カウンタ状態がリセットされることなく、前記ループ数に等しい回数アサートされている場合に、出力をアサートするように前記カウンタ状態を構成する、
請求項２２に記載のコンピュータ可読媒体。
【請求項２５】
前記数量化が複数個のループ数と一致し得る場合に、
第１のカウンタ状態のカウント入力および第２のカウンタ状態のカウント入力をアサートするように前記繰返し式を構成し；
前記第１のカウンタ状態のリセット入力および前記第２のカウンタ状態のリセット入力をアサートするように前記繰返し式を構成し；
前記第１のカウンタ状態の前記カウント入力が、前記第１のカウンタ状態がリセットされることなく、前記複数個のループ数の下限閾値に等しい回数アサートされている場合に、出力をアサートするように前記第１のカウンタ状態を構成し；かつ、
前記第２のカウンタ状態の前記カウント入力が、前記第２のカウンタ状態がリセットされることなく、前記複数個のループ数の上限閾値に等しい回数アサートされている場合に、前記第２のカウンタ状態の出力をアサートするように前記第２のカウンタ状態を構成することであって、前記第２のカウンタ状態の前記出力が、前記第１のカウンタ状態の前記リセット入力をアサートするように構成されている、前記第２のカウンタ状態を構成する、
請求項２２に記載のコンピュータ可読媒体。
【請求項２６】
コンピュータであって、
ソフトウェアがその上に格納されたメモリと、
前記メモリに通信的に結合されたプロセッサとを備え、
前記ソフトウェアが、前記プロセッサによって実行される際に、前記プロセッサに、正規表現を、構造木を形成するために、前記正規表現を解析し、前記構造木をオートマトンに変換することによって対象装置用のコードにコンパイルさせ、
前記対象装置が、第１のタイプの要素および少なくとも他のタイプの要素をサポートし；
コンパイルすることが、前記第１のタイプの要素に対応する前記オートマトンにおける第１の状態を介して、前記第１のタイプの要素に対応する第１の正規表現を、前記第１のタイプの要素にマッピングすることを含み；かつ
コンパイルすることが、前記少なくとも１つの他のタイプの要素に対応する前記オートマトンにおける第２の状態を介して、前記第１のタイプの要素に対応しない第２の正規表現を、前記少なくとも１つの他のタイプの要素にマッピングすることを含む、
コンピュータ。
【請求項２７】
前記対象装置が並列マシンを含み、また、前記第１のタイプの要素が第１のタイプのハードウェア要素であり、かつ、前記少なくとも１つの他のタイプの要素が第２のタイプのハードウェア要素を含む、請求項２６に記載のコンピュータ。
【請求項２８】
前記第２のタイプのハードウェア要素が、入力ストリームを受信し、前記入力ストリームに応じて出力を提供でき、かつ、
前記第１のタイプのハードウェア要素が、前記入力ストリームを受信せず、前記対象装置の他の要素からの入力に応じて出力を提供する、請求項２７に記載のコンピュータ。
【請求項２９】
前記第１のタイプの要素がカウンタであり、かつ、前記第２のタイプの要素が状態機械要素である、請求項２８に記載のコンピュータ。
【請求項３０】
前記ソフトウェアが、前記プロセッサに：
正規表現が、前記第１のタイプの要素に対応するタイプであるかどうかを判断させ；かつ、
前記正規表現が、前記第１のタイプの要素に対応するタイプではない場合に、前記正規表現を前記少なくとも１つの他のタイプの要素にマッピングさせる、
請求項２６に記載のコンピュータ。
【請求項３１】
正規表現が、前記第１のタイプの要素に対応するタイプであるかどうかを判断することが：
前記正規表現が、数量化であるかどうかを判断することと、
前記正規表現が数量化ではない場合に、前記正規表現を、前記少なくとも１つの他のタイプの要素にマッピングすることと
を含む、請求項３０に記載のコンピュータ。
【請求項３２】
前記ソフトウェアが、前記プロセッサに：
前記数量化が決定性であるかどうかを判断させ；
前記数量化が決定性である場合に、前記正規表現を、前記第１のタイプの要素にマッピングさせ；そして、
前記数量化が決定性でない場合には、前記正規表現を、前記少なくとも１つの他のタイプの要素にマッピングさせる、
請求項３１に記載のコンピュータ。
【請求項３３】
前記数量化が決定性であるかどうかを判断することが、前記数量化が処理されている間に、前記数量化に対する駆動式が一致できるかどうか、および前記数量化の繰返し式が、前記数量化の別の繰返し式のプレフィックスであるかどうかを判断することを含む、請求項３２に記載のコンピュータ。
【請求項３４】
コンパイルすることが、
前記オートマトンをネットリストに変換することと、
前記ネットリストのインスタンスを位置づけることと、
前記ネットリストの前記インスタンス間の接続をルーティングすることと
を含む、請求項２６に記載のコンピュータ。
【請求項３５】
前記正規表現が、非構造化データを検索するための基準を含む、請求項３４に記載のコンピュータ。
【請求項３６】
コンピュータであって、
対象装置の専用要素に対応する、関係的に結合された演算子の配列内の部分を識別することであって、前記対象装置が汎用要素も含む、配列内の部分を識別し、前記専用要素は、前記対象装置の複数の汎用要素によって実行することが出来る機能の単一の要素の実装であり、前記対象装置は、また、少なくとも１つの汎用要素を含むことと；
前記部分が、前記専用要素にマッピングされるための条件を満足するかどうかを判断することと；
前記配列を、複数の相互接続状態を含むオートマトンに変換することであって、前記第１の部分が前記条件を満足する場合に、前記専用要素に対応する、他の場合には、汎用状態に対応する専用状態に前記部分が変換される、前記配列をオートマトンに変換することと；
前記オートマトンを機械コードに変換することと
を行うように構成されたコンピュータと、
並列マシンをプログラムするための装置であって、前記装置が前記機械コードを前記並列マシン上にロードするように構成されている、装置と
を備えるシステム。
【請求項３７】
前記部分が、専用要素にマッピングされるための条件を満足するかどうかを判断することが、前記部分が決定性であるかどうかを判断することを含む、請求項３６に記載のシステム。
【請求項３８】
前記配列の部分を識別することが、
数量化を識別することを含み、
前記部分が決定性であるかどうかを判断することが、前記数量化が処理されている間に、前記数量化に対する駆動式が一致できるかどうか、および前記数量化の繰返し式が、前記数量化の別の繰返し式のプレフィックスであるかどうかを判断することを含む、
請求項３６に記載のシステム。
【請求項３９】
請求項１の前記プロセスを使用して生成されたイメージによってプログラム化された並列マシン。