"プログラム記述言語を用いて所定の記述制約の下でハードウェアのアルゴリズムを記述したアルゴリズム記述のデータをコンピュータ装置が入力する第1処理と、前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータを指示するハードウェア要素指示データを前記コンピュータ装置が入力する第2処理と、前記コンピュータ装置が前記アルゴリズム記述のデータを、システムレベル記述言語によるハードウェアモデルのデータに変換する第3処理とを含み、前記第3処理において、前記コンピュータ装置は前記ハードウェア要素指示データで指示されたパラメータに関する前記アルゴリズム記述上でのデータ依存関係を前記ハードウェアモデル上において維持するデータ依存関係維持記述を生成する、言語変換処理方法。前記記述制約は、システムレベル記述言語によるプロセスがクロック同期プロセスであるとき、プログラム記述の関数による操作は一定のクロックサイクル内で完了される、という制約を含む、請求項1記載の言語変換処理方法。前記データ依存関係維持記述は、パラメータに対する代入と参照の順序を維持し、且つ、代入された値をその代入操作から前記一定のクロックサイクル内で参照することを保証する記述である、請求項2記載の言語変換処理方法。前記データ依存関係維持記述は、アルゴリズム記述において代入されてから参照されるパラメータについて中間パラメータを定義し、前記パラメータに代入される値を前記中間パラメータに代入してから当該中間パラメータの値を当該パラメータに書き込む記述と、その値の参照先を前記中間パラメータとする記述とを含む、請求項3記載の言語変換処理方法。前記第3処理は、前記アルゴリズム記述上における記述行の順番によって参照が先か代入が先かを示すデータ依存関係テーブルを生成し、当該テーブルを用いて前記データ依存関係維持記述を生成する、請求項1記載の言語変換処理方法。ハードウェア要素指示データは、入力ポートになるパラメータを指示する情報と、出力ポートになるパラメータを指示する情報と、レジスタになるパラメータを指示する情報とを含む、請求項1記載の言語変換処理方法。前記ハードウェア要素指示データは更に並行処理を行うプロセスを指示する請求項1記載の言語変換処理方法。前記アルゴリズム記述は、前記プログラム記述言語ではサポートしない記述をタイプのコメントとして有し、前記第3処理は前記タイプの記述をシステムレベル記述に反映する、請求項1記載の言語変換処理方法。前記第3処理は、前記アルゴリズム記述に含まれるの記述をクロック境界の記述に変換する、請求項1記載の言語変換処理方法。前記第3処理は、変換したハードウェアモデルのデータによる機能及び動作タイミングを検証するためのテストベンチを前記コンピュータ装置が生成するテストベンチ生成処理を更に含む、請求項1記載の言語変換処理方法。前記プログラム記述言語は並行処理及び時間の概念を持たないC言語であり、前記システムレベル記述言語は並行処理及び時間の概念を持つSystemC言語である、請求項1記載の言語変換処理方法。プログラム記述言語を用いて所定の記述制約の下でハードウェアのアルゴリズムを記述したアルゴリズム記述のデータをコンピュータ装置が入力する第1処理と、前記コンピュータ装置が前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータをパラメータの命名規則に従って判別して、前記コンピュータ装置が前記アルゴリズム記述のデータをシステムレベル記述言語によるハードウェアモデルのデータに変換する第2処理とを含み、前記第2処理において、前記コンピュータ装置は、判別したパラメータに関するアルゴリズム記述上でのデータ依存関係を前記ハードウェアモデル上において維持する、データ依存関係維持記述を生成する、言語変換処理方法。前記所定の記述制約は、システムレベル記述言語によるプロセスがクロック同期プロセスであるとき、プログラム記述の関数による操作は一定のクロックサイクル内で完了される、という制約を含む、請求項12記載の言語変換処理方法。前記データ依存関係維持記述は、パラメータに対する代入と参照の順序を維持し、且つ、代入された値をその代入操作から前記一定のクロックサイクル内で参照することを保証する記述である、請求項13記載の言語変換処理方法。前記データ依存関係維持記述は、アルゴリズム記述のデータにおいて代入されてから参照されるパラメータについて中間パラメータを定義し、前記パラメータに代入される値を前記中間パラメータに代入してから当該中間パラメータの値を当該パラメータに書き込む記述と、その値の参照先を前記中間パラメータとする記述とを含む、請求項14記載の言語変換処理方法。前記第2処理は、前記アルゴリズム記述上における記述行の順番によって参照が先か代入が先かを示すデータ依存関係テーブル41を生成し、当該テーブルを用いて前記データ依存関係維持記述を生成する、請求項12記載の言語変換処理方法。前記ハードウェア要素としての前記命名規則に従ったパラメータは、入力ポートになる第1のパラメータ、出力ポートになる第2のパラメータ、及びレジスタになる第3のパラメータを含む、請求項12記載の言語変換処理方法。前記第2処理は更に前記アルゴリズム記述データに含まれる並行処理を行うプロセスをプロセスの命名規則によって判別する処理を含む、請求項12記載の言語変換処理方法。前記アルゴリズム記述データは、前記プログラム記述言語ではサポートしない記述をタイプのコメントとして有し、前記第2処理は前記タイプの記述をシステムレベル記述に反映する、請求項12記載の言語変換処理方法。前記第2処理は、前記アルゴリズム記述データに含まれるの記述をクロック境界の記述に変換する、請求項12記載の言語変換処理方法。前記第2処理は変換したハードウェアモデルデータによる機能及び動作タイミングを検証するためのテストベンチを前記コンピュータ装置が生成するテストベンチ生成処理を更に含む、請求項12記載の言語変換処理方法。前記プログラム記述言語は並行処理及び時間の概念を持たないC言語であり、前記システムレベル記述言語は並行処理及び時間の概念を持つSystemC言語である、請求項12記載の言語変換処理方法。コンピュータ装置が実行することにより、プログラム記述言語を用いて所定の記述制約の下でハードウェアのアルゴリズムを記述したアルゴリズム記述のデータを入力する第1処理と、前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータを指示するハードウェア要素指示データを入力する第2処理と、前記第2処理で入力したハードウェア要素指示データで指示されたパラメータに関する前記アルゴリズム記述上でのデータ依存関係を特定するためのデータ依存関係維持記述を生成する第3処理と、前記アルゴリズム記述のデータをシステムレベル記述言語によるハードウェアモデルデータに変換すると共に前記データ依存関係維持記述で特定されたデータ依存関係を前記ハードウェアモデルに反映する第4処理と、を制御する言語変換処理プログラム。コンピュータ装置が実行することにより、プログラム記述言語を用いて所定の記述制約の下でハードウェアのアルゴリズムを記述したアルゴリズム記述のデータを入力する第1処理と、前記アルゴリズム記述に含まれるハードウェア要素としてのパラメータをパラメータの命名規則に従って判別する第2処理と、前記第2処理で判別されたパラメータに関する前記アルゴリズム記述上でのデータ依存関係を特定するためのデータ依存関係維持記述を生成する第3処理と、前記アルゴリズム記述のデータをシステムレベル記述言語によるハードウェアモデルのデータに変換すると共に、前記データ依存関係維持記述で特定されたデータ依存関係を前記ハードウェアモデルに反映する第4処理と、を制御する言語変換処理プログラム。本発明者の検討によれば以下の点が明らかになった。第1に、高位合成への橋渡しのための変換を人手で行う場合には、その結果得られたシステムレベル記述に対してベースのアルゴリズム記述との等価性について解析及び検証を行うことが必要になる。しかし、システムレベル記述言語を対象としたコード解析ツールは未成熟であり、メモリリークやメモリ破壊、未初期化変数、配列外アクセスなどの解析やデバッグを行う事が容易ではないため、開発工数が著しく増大する虞がある。要するに、オリジナルのC言語によるアルゴリズム記述と、人手による書き換え後のシステムレベル記述のハードウェアモデルの両方を対象に、未初期化変数チェックなどのコード解析検証やデバッグが必要となり、そもそも、人手による書き換えを行うため、ミスも混入し易くなる。第2に、特許文献1のように、高位合成ツールへ橋渡しする技術ではなく、合成技術そのものである場合には、並列構文や通信構文などの拡張C言語を用いて、最初からハードウェアを意識した記述を行う必要があり、設計対象の大規模化及び複雑化するに従って現実的には不可能に近い。本発明の目的は、プログラム記述言語によるハードウェアのアルゴリズム記述をベースに高位合成のためのハードウェアモデルの設計工数の短縮、さらには大規模化及び複雑化に対して半導体集積回路の開発効率の向上に資することができる言語変換処理方法を提供することにある。本発明の別の目的は、プログラム記述言語によるハードウェアのアルゴリズム記述をベースに高位合成のためのハードウェアモデルの設計工数の短縮、さらには大規模化及び複雑化に対して半導体集積回路の開発効率の向上に資することができる言語変換処理方向を容易に実現することができる言語変換処理プログラムを提供することにある。本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。すなわち、プログラム記述言語を用いてハードウェアのアルゴリズムを記述したアルゴリズム記述のデータをシステムレベル記述によるハードウェアモデルのデータに変換するとき、前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータについての前記アルゴリズム記述上でのデータの依存関係を前記システムレベル記述において維持するデータ依存関係維持記述を生成する。これによれば、ハードウェア特有の時間や並列処理の概念を表現するシステムレベル記述にアルゴリズム記述を変換したとき、アルゴリズム記述で想定されているデータ依存関係はデータ依存関係維持記述によって維持されるから、アルゴリズム記述からシステムレベル記述に変換されたハードウェアモデルには、アルゴリズム記述に対して既に評価及び検証された結果が反映されることになり、変換されたハードウェアモデルに対して、使用言語が相違されていても、重ねて評価及び検証を行うことを要しない。本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。すなわち、プログラム記述言語によるハードウェアのアルゴリズム記述をベースに高位合成のためのハードウェアモデルの設計工数の短縮、さらには大規模化及び複雑化に対して半導体集積回路の開発効率の向上に資することができる。1.実施の形態の概要先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。1<ハードウェア要素の指示を受け、データ依存関係を維持し、アルゴリズム記述をシステムレベル記述に変換>本発明の代表的な実施の形態に係る言語変換処理方法は、所定の記述制約の下でプログラム記述言語を用いてハードウェアのアルゴリズムを記述したアルゴリズム記述のデータ10をコンピュータ装置1が入力する第1処理と、前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータを指示するハードウェア要素指示データ20を前記コンピュータ装置が入力する第2処理と、前記コンピュータ装置が前記アルゴリズム記述のデータをシステムレベル記述によるハードウェアモデルのデータに変換する第3処理S3とを含む。前記第3処理において、前記コンピュータ装置は前記ハードウェア要素指示データで指示されたパラメータに関する前記アルゴリズム記述上でのデータ依存関係を前記ハードウェアモデル上において維持する、データ依存関係維持記述42を生成する図1、図6、図7参照、が必要。これによれば、アルゴリズム記述を、ハードウェア特有の時間や並列処理の概念を表現するシステムレベル記述に変換したとき、前記記述制約によってアルゴリズム記述で想定されているデータ依存関係はデータ依存関係維持記述によって維持されるから、アルゴリズム記述からシステムレベル記述に変換されたハードウェアモデルには、アルゴリズム記述に対して既に評価及び検証された結果が反映されることになり、変換されたハードウェアモデルに対して、使用言語が相違されていても、重ねてコード解析やデバッグなどの評価及び検証を行うことを要しない。更にハードウェア要素としてのパラメータについてはハードウェア要素指示データによって後から指定することができるから、アルゴリズム記述を生成するときポートや信号レジスタになるパラメータなどを予め把握する手間を要しない。2<関数操作のクロックサイクル数に関する記述制約>項1の言語変換処理方法において、前記記述制約は、システムレベル記述言語によるプロセスがクロック同期プロセスであるとき、プログラム記述の関数による操作は一定のクロックサイクル内で完了される、という制約を含む。これによれば、時間の概念を持たないプログラム記述言語による記述に対して暗黙的な時間概念を持たせることが可能になる。3項1又は2の言語変換処理方法において、前記データ依存関係維持記述は、パラメータに対する代入と参照の順序を維持し、且つ、代入された値をその代入操作から前記一定のクロックサイクル内で参照することを保証する記述である図8、図9参照。これによれば、アルゴリズム記述で想定されているデータ依存関係を簡単な記述によって前記システムレベル記述に反映することができる。4<中間パラメータの採用>項1乃至3の何れかの言語変換処理方法において、前記データ依存関係維持記述は、アルゴリズム記述のデータにおいて代入されてから参照されるパラメータについて中間パラメータ_out1を定義し、前記パラメータに代入される値を前記中間パラメータに代入してから当該中間パラメータの値を当該パラメータに書き込む記述と、その値の参照先を前記中間パラメータとする記述とを含む。これによれば、ポートや信号レジスタとしてのパラメータに書き込み結果が反映されるまでの遅延を考慮すると、その書き込みデータを一定のクロックサイクル内で参照する操作が想定されている場合に、上記中間パラメータを定義して利用することにより、上記データ依存関係の維持を簡単に実現することが可能になる。5<データ依存関係テーブルの生成>項1乃至4の何れかの言語変換処理方法において、前記第3処理は、前記アルゴリズム記述上における記述行の順番によって参照が先か代入が先かを示すデータ依存関係テーブル41を生成し、当該テーブルを用いて前記データ依存関係維持記述を生成する。これによれば、コントロールデータフローグラフを生成することなく容易にデータ依存関係を判別することができる。6<ハードウェア要素指示情報>項1乃至5の何れかの言語変換処理方法において、ハードウェア要素指示データは、入力ポートになるパラメータin1を指示する情報と、出力ポートになるパラメータout1を指示する情報と、信号レジスタになるパラメータsig1sig2を指示する情報とを含む。これによれば、入力ポート、出力ポート及び信号レジスタになるパラメータを簡単に指示することができる。7<並行プロセスの指示>項1乃至6の何れかの言語変換処理方法において、前記ハードウェア要素指示データは更に並行処理を行うプロセスth1th2を指示する。これによれば、並行処理を行うプロセスを簡単に指示することができる。8<タイプのコメント>項1乃至7の何れかの言語変換処理方法において、前記アルゴリズム記述のデータは、前記プログラム記述言語ではサポートしない記述をタイプのコメントとして有し、前記第3処理は前記タイプの記述をシステムレベル記述に反映する。これによれば、自動変換では容易に対応し難いハードウェアモデル特有の記述を予めアルゴリズム記述に埋め込んでおくことにより、これを第3処理による変換の補助とすることができ、第3処理による変換精度の向上に資することができる。9<の記述をクロック境界の記述に変換>項1乃至8の何れかの言語変換処理方法において、前記第3処理は、前記アルゴリズム記述のデータに含まれるの記述をクロック境界の記述に変換する。これによれば、予めアルゴリズム記述データに暗黙的にクロック境界を意味する記述を埋め込む方が、意味付けの明確化と可読性の向上に寄与する。10<ハードウェアモデルのテストベンチの生成>項1乃至9の何れかの言語変換処理方法において、前記第3処理は、変換したハードウェアモデルの機能及び動作タイミングを検証するためのテストベンチを前記コンピュータ装置が生成するテストベンチ生成処理S124を含む。これによれば、生成されたテストベンチを用いることによってハードウェアモデルに対する評価及び検証についても容易に対応することができる。11<並行処理及び時間の概念>項1乃至10の何れかの言語変換処理方法において、前記プログラム記述言語は並行処理及び時間の概念を持たないC言語であり、前記システムレベル記述言語は並行処理及び時間の概念を持つSystemC言語などである。これによれば、C言語を用いて記述されたアルゴリズム記述データをSystemC言語などによるハードウェアモデルデータに自動的に書き換え可能になる。12<ハードウェア要素を自動判別し、データ依存関係を維持し、アルゴリズム記述をシステムレベル記述に変換>本発明の別の実施の形態に係る言語変換処理方法は、所定の記述制約の下でプログラム記述言語を用いてハードウェアのアルゴリズムを記述したアルゴリズム記述のデータ10をコンピュータ装置1が入力する第1処理と、前記コンピュータ装置が前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータをパラメータの命名規則inで始まる変数は入力ポート、outで始まる変数は出力ポート、sigで始まる変数は信号、thで始まる関数は並行処理プロセスに従って判別して、前記コンピュータ装置が前記アルゴリズム記述のデータをシステムレベル記述によるハードウェアモデルのデータに変換する第2処理とを含む。前記第2処理において、前記コンピュータ装置は、判別したパラメータに関するアルゴリズム記述上でのデータ依存関係を前記ハードウェアモデル上において維持する、データ依存関係維持記述42を生成する。これによれば、アルゴリズム記述を、ハードウェア特有の時間や並列処理の概念を表現するシステムレベル記述に変換したとき、前記記述制約を満足するアルゴリズム記述で想定されているデータ依存関係はデータ依存関係維持記述によって維持されるから、アルゴリズム記述からシステムレベル記述に変換されたハードウェアモデルには、アルゴリズム記述に対して既に評価及び検証された結果が反映されることになり、変換されたハードウェアモデルに対して、使用言語が相違されていても、重ねてコード解析やデバッグなどの評価及び検証を行うことを要しない。更にハードウェア要素としてのパラメータについてはその命名規則に基づいて自動的に判別されるから、項1のハードウェア要素指示データのようなデータは必要ではない。ただし、ハードウェア要素とすべきパラメータについてはその命名規則に従ったパラメータ名を付与しておかなければならない。13<関数操作のクロックサイクル数に関する記述制約>項12の言語変換処理方法において、前記所定の記述制約は、システムレベル記述言語によるプロセスがクロック同期プロセスであるとき、プログラム記述の関数による操作は一定のクロックサイクル内で完了される、という制約を含む。これによれば、時間の概念を持たないプログラム記述言語による記述に対して暗黙的な時間概念を持たせることが可能になる。14項12の言語変換処理方法において、前記データ依存関係維持記述は、パラメータに対する代入と参照の順序を維持し、且つ、代入された値をその代入操作から前記一定のクロックサイクル内で参照することを保証する記述である。これによれば、アルゴリズム記述で想定されているデータ依存関係を簡単な記述によって前記システムレベル記述に反映することができる。15<中間パラメータの採用>項12乃至14の何れかの言語変換処理方法において、前記データ依存関係維持記述は、アルゴリズム記述のデータにおいて代入されてから参照されるパラメータについて中間パラメータout1を定義し、前記パラメータに代入される値を前記中間パラメータに代入してから当該中間パラメータの値を当該パラメータに書き込む記述と、その値の参照先を前記中間パラメータとする記述とを含む。これによれば、ポートや信号レジスタとしてのパラメータに書き込み結果が反映されまでの遅延を考慮すると、その書き込みデータを一定のクロックサイクル内で参照する操作が想定されている場合に、上記中間パラメータを定義して利用することにより、上記データ依存関係の維持を簡単に実現することが可能になる。16<データ依存関係テーブルの生成>項12乃至15の何れかの言語変換処理方法において、前記第2処理は、前記アルゴリズム記述上における記述行の順番によって参照が先か代入が先かを示すデータ依存関係テーブル41を生成し、当該テーブルを用いて前記データ依存関係維持記述を生成する。これによれば、コントロールデータフローグラフを生成することなく容易にデータ依存関係を判別することができる。17<命名規則が指示するハードウェア要素>項12乃至16の何れかの言語変換処理方法において、前記ハードウェア要素としての前記命名規則に従ったパラメータは、入力ポートになる第1のパラメータin1、出力ポートになる第2のパラメータour1、及び信号レジスタになる第3のパラメータsig1sig2を含む。これによれば、入力ポート、出力ポート及び信号レジスタになるパラメータを簡単に識別することができる。18<命名規則が指示する並行プロセス>項12乃至17の何れかの言語変換処理方法において、前記第2処理は更に前記アルゴリズム記述データに含まれる並行処理を行うプロセスth1th2をプロセスの命名規則によって判別する処理を含む。これによれば、並行処理を行うプロセスを簡単に識別することができる。19<タイプのコメント>項12乃至18の何れかの言語変換処理方法において、前記アルゴリズム記述データは、前記プログラム記述言語ではサポートしない記述をタイプのコメントとして有し、前記第2処理は前記タイプの記述をシステムレベル記述に反映する。これによれば、自動変換では容易に対応し難いハードウェアモデル特有の記述を予めアルゴリズム記述に埋め込んでおくことにより、これを第3処理による変換の補助とすることができ、第2処理による変換精度の向上に資することができる。20<の記述をクロック境界の記述に変換>項12乃至19の何れかの言語変換処理方法において、前記第2処理は、前記アルゴリズム記述に含まれるの記述をクロック境界の記述に変換する。これによれば、予めアルゴリズム記述データに暗黙的にクロック境界を意味する記述を埋め込む方が、意味付けの明確化と可読性の向上に寄与する。21<ハードウェアモデルのテストベンチの生成>項12乃至20の何れかの言語変換処理方法において、前記第2処理は変換したハードウェアモデルの機能及び動作タイミングを検証するためのテストベンチを前記コンピュータ装置が生成するテストベンチ生成処理S124を更に含む。これによれば、生成されたテストベンチを用いることによってハードウェアモデルに対する評価及び検証についても容易に対応することができる。22<並行処理及び時間の概念>請求項12乃至21の何れかの言語変換処理方法において、前記プログラム記述言語は並行処理及び時間の概念を持たないC言語であり、前記システムレベル記述言語は並行処理及び時間の概念を持つSystemC言語などである。これによれば、C言語を用いて記述されたアルゴリズム記述データをSystemC言語などによるハードウェアモデルデータに自動的に書き換え可能になる。23<ハードウェア要素の指示を受け、データ依存関係を維持し、アルゴリズム記述をシステムレベル記述に変換>本発明の更に別の実施の形態に係る言語変換処理プログラムPGMは、コンピュータ装置1が実行することにより、所定の記述制約の下でプログラム記述言語を用いてハードウェアのアルゴリズムを記述したアルゴリズム記述のデータ10を入力する第1処理と、前記アルゴリズム記述のデータに含まれるハードウェア要素としてのパラメータを指示するハードウェア要素指示データを入力する第2処理と、前記第2処理で入力したハードウェア要素指示データで指示されたパラメータに関する前記アルゴリズム記述上でのデータ依存関係を特定するためのデータ依存関係維持記述を生成する第3処理S32,S33と、前記アルゴリズム記述のデータをシステムレベル記述によるハードウェアモデルのデータに変換すると共に、前記データ依存関係維持記述で特定されたデータ依存関係を前記ハードウェアモデルに反映する第4処理S34と、を制御する。これによれば、項1で説明したようにプログラム記述言語によるハードウェアのアルゴリズム記述をベースに高位合成のためのハードウェアモデルの設計工数の短縮などに寄与する言語変換処理方向を容易に実現することができる。24<ハードウェア要素を自動判別し、データ依存関係を維持し、アルゴリズム記述をシステムレベル記述に変換>本発明の更に別の実施の形態に係る言語変換処理プログラムPGMは、コンピュータ装置1が実行することにより、所定の記述制約の下でプログラム記述言語を用いてハードウェアのアルゴリズムを記述したアルゴリズム記述のデータ10を入力する第1処理と、前記アルゴリズム記述に含まれるハードウェア要素としてのパラメータをパラメータの命名規則inで始まる変数は入力ポート、outで始まる変数は出力ポート、sigで始まる変数は信号、thで始まる関数は並行処理プロセスに従って判別する第2処理S31と、前記第2処理で判別されたパラメータに関する前記アルゴリズム記述上でのデータ依存関係を特定するためのデータ依存関係維持記述を生成する第3処理S32,S33と、前記アルゴリズム記述のデータをシステムレベル記述によるハードウェアモデルのデータに変換すると共に、前記データ依存関係維持記述で特定されたデータ依存関係を前記ハードウェアモデルに反映する第4処理S34と、を制御する。これによれば、項12で説明したようにプログラム記述言語によるハードウェアのアルゴリズム記述をベースに高位合成のためのハードウェアモデルの設計工数の短縮などに寄与する言語変換処理方向を容易に実現することができる。2.実施の形態の詳細実施の形態について更に詳述する。実施の形態1《Cアルゴリズムからハードウェアモデルへの自動変換》ソフトウェアプログラミング言語として例えばC言語を用いて所用のハードウェアアルゴリズムを記述したCアルゴリズム記述をシステムレベル記述言語によるハードウェアモデルに変換する処理言語変換処理について図1を参照しながら全体的に説明する。ソフトウェアプログラミング言語は並行処理及び時間の概念がない。これに対してシステムレベル記述言語は並行処理及び時間の概念を持つ。図1に示される処理フローは例えばエンジニアリングワークステーションなどのコンピュータ装置が言語変換処理プログラムなどのプログラムを実行することによって実現される処理である。ワークステーション1は例えば図7に例示されるように、プログラムを実行する中央処理装置CPU2にワークメモリ3及び補助記憶装置4が接続されると共に、外部インタフェース5を介してディスプレイ6、キーボード7、マウス8、及びDVDドライブ9などに接続される。CPU2はDVDドライブ9から言語処理変換プログラムを補助記憶装置にダウンロードし、ダウンロードした言語処理変換プログラムを必要に応じてワークメモリ3に転送し、ワークメモリ3からプログラムをフェッチして言語変換処理を実行する。開発しようとする回路モジュールに要求される機能はC言語の文法に従い、所定の記述制約の下でハードウェアアルゴリズムを記述するためのCアルゴリズム仕様として入力されるS1。入力された仕様はC言語によるCアルゴリズム記述にコード化され、コード化されたコード以下単にCアルゴリズム記述データとも称する10が解析されて検証され、デバッグに供されるS2。例えばC言語を用いたときは、1のPurifyに代表される商用動的コード解析ツールや、2、3などの学術検証ツールなどを用いて、検証及びデバッグを容易に行うことができる。1.IBMRationalPurifyhttpwww01ibmcomsoftwareawdtoolspurify2.CBMChttpwwwcproverorgcbmc3.EdmundClarkeDanielKroeningandFlavioLerdaAToolforCheckingANSICProgramsTACAS2004LNCSVol2988pp1681762004これによって、C言語を用いて所用のハードウェアアルゴリズムを記述したCアルゴリズム記述データ10が生成される。このCアルゴリズム記述データ10に対して並行処理及び時間の概念を表現するために、Cアルゴリズム記述データ10に含まれるハードウェア要素としてのパラメータを指示するハードウェア指示データ20を入力して、Cアルゴリズム記述データ10をSystemCのようなシステムレベル記述に自動変換して、ハードウェアモデルデータ30を生成するS3。このハードウェアモデルデータ30は、レジスタトランスファレベルRTLへの高位合成、さらにはハードウェアモデルのタイミング検証などのためのテストベンチの生成に利用される。高位合成を行う高位合成ツールとして例えばForte社製のCynthesizer等を用いればよい。自動変換S3においては、システムレベル記述のハードウェアモデルデータ30は、Cアルゴリズム記述データ10に対して機能的な等価性を保証するように変換処理が行われることになる。図2の比較例のようにシステムレベル記述への変換を人手で行うとすれば、その変換結果には上記等価性を保証することができないので、システムレベル記述に対するコード解析や検証及びデバッグを改めて行うことが必要になる。しかも、システムレベル記述言語を対象とするコード解析ツールは未成熟であり、メモリリークやメモリ破壊、未初期化変数、配列外アクセスなどの解析及びデバッグを行う事は容易ではなく、ハードウェアモデルの開発工数を増大させる原因にもなる。図3にはCアルゴリズム記述データ10に対してステップS3によりハードウェアモデルデータ30へ自動変換された結果の一例が示される。これに対して図4にはCアルゴリズム記述データに対して人手によりハードウェアモデルデータへ変換された結果が比較例として示される。図4の人手変換による場合と図3の本発明を用いた自動変換による場合では、ハードウェアモデルの記述形式に明確な違いが現れる。図3と図4のどちらの変換方式を用いる場合でも、アルゴリズム記述データ中の関数の入出力となる変数を切り出す作業が必要な点は同じである。図4の人手変換の場合は、入出力となる変数が関数の引数や戻り値となるようアルゴリズム記述の書き換えを行う。これは、人間がモデル記述を理解し易いように、インタフェースを明確化する必要があるためである。一方、図3の本発明を用いた自動変換の場合は、入出力となる変数がどれかを外部から指示することにより、データ依存関係を考慮した変換手法によって、アルゴリズム処理をダイレクトにハードウェア記述化するものである。ここでデータ依存関係とは、ソフトウェア実行における制限の1つであり、命令Aの実行結果を命令Bが利用する場合、命令Aと命令Bで受け渡しする変数についてデータ依存関係があると言う。ここで命令Aの方が命令Bよりもソフトウェアコード内で実行順が先である場合は順データ依存関係にあると言い、逆に命令Bの方の実行順が先である場合は逆データ依存関係にあると言う。順データ依存関係、逆データ依存関係の例を図5に示す。左右どちらの記述例も、命令Aでbufにinを代入、命令Bでoutにbufを代入しているが、左側は命令Aが命令Bに先行しており、右側は命令Bが命令Aに先行している。データ依存関係にある変数が存在する場合、自動変換においては機能の等価性を維持するためにその依存関係を維持するための考慮が必要となる。その詳細については後述する。図1に基づいてその概略を説明したように、C言語で記述したアルゴリズムを入力として、機能的に等価なハードウェアモデルを自動生成できるので、C記述に対してコード解析及びデバッグを行えば充分となる。図2の人手を介する比較例の設計フローでは、Cアルゴリズム記述とハードウェアモデルの両方に対してコード解析検証及びデバッグが必要となる。従って、本発明による言語変換処理の方法によれば、ハードウェアモデルの設計工数および検査工数を低減でき、半導体集積回路などの開発効率を大幅に向上することが可能となることが理解されるであろう。《自動変換処理》以下、等価性を保証する自動変換の処理について詳述する。図6には図1の自動変換処理S3の具体例が示される。自動変換処理S3において、Cアルゴリズム記述データ10とハードウェア要素指示データ20を入力し、入力データに基づいて、例えば、入出力アクセス解析処理S31、データ依存解析処理S32,データ依存関係維持変換処理S33、及びシステムレベル記述変換処理S34を行う。入出力アクセス解析処理S31では、Cアルゴリズム記述データをパースして入出力アクセスの解析を行い、その記述における入力変数と出力変数の解析結果入出力変数解析結果をデータベース40に保存する。データ依存解析処理S32では、入出力変数解析結果のデータベース40を参照して、データ依存関係のあるコード箇所を抽出し、データ依存関係テーブル41を作成する。データ依存関係維持変換処理S33では、データ依存関係テーブル41を参照して、データ依存関係を保持したコードを書き換えて、データ依存関係保存済コードとしてデータベース42に保存する。データ依存関係保存済コードは、特に制限されないが、中間コードとして位置付けられる。システムレベル記述変換処理S34では、データベース42が保持するデータ依存関係保存済コードを用いて、システムレベル記述によるハードウェアモデルデータ30を生成する。自動変換処理を行うための言語変換処理プログラムは図7のワークメモリ3にダウンロードされて、CPU2によって実行される。CPU2による自動変換処理に用いるCアルゴリズム記述データ10、ハードウェア要素指示データ20は外部インタフェース5を介して補助記憶装置4に格納される。CPU2が自動変換処理を行うことによって生成される入出力変数解析結果のデータベース40、及びデータ依存関係テーブル41は、ワークメモリ3に保持され、変換処理の途中で生成される中間コードデータ依存関係保存済コード42など、及び変換結果としてハードウェアモデルデータ30は補助記憶装置4に得られる。《データ依存関係維持変換処理》次にデータ依存関係維持変換処理について具体的に説明する。図8には順データ依存関係を持つ場合の処理記述例が示される。データ依存関係維持変換処理S33では、データ依存関係に基づいて、入力、あるいは出力にマッピングされる変数を、例えばポートアクセスとなる処理に置換する。この時、単純な置換処理では、データ依存関係が損なわれてしまう場合がある。これはCアルゴリズム記述では時間の概念が反映されず、SystemC記述は時間の概念を持ち、変数の値は、時間の概念で把握されるクロックを刻んだときクロックサイクルが変わったとき更新される場合があるからである。例えば、図8のCアルゴリズム記述には変数out1に関して順データ依存関係が存在し、このとき、図8の非等価の矢印方向に示されるように、単純な置換を行う場合には、意図しない処理結果になる場合がある。SystemCを用いたハードウェアモデル記述では、出力ポートや信号に対する代入処理がノンブロッキング代入となり、次のクロックを刻んだタイミング例えばwaitのコールで実際に値が更新される場合がある。すなわち、out1に代入した値を、次のif文での評価に用いているが、HWモデルでは、out1の値が即座に反映されないので、両者の処理結果が一致しない。この問題を解決するために中間変数を導入する。図8の等価の矢印方向に示されたコードでは、中間変数out1に更新後の値を代入し、その中間変数out1の値を変数out1に代入している。値の参照には中間変数out1を用いるよう処理を書き換えることで、Cアルゴリズム記述とハードウェアモデル記述との機能的な等価性が保障されることになる。尚、in1readは入力ポートin1からデータを読み込むリードメソッドであり、out1writeは出力ポートout1にデータを書き込むメソッドである。比較例のような人手によるハードウェアモデル化手法と大きく異なる点は、別途ポートを定義することを要せず、アルゴリズム記述内の変数を直接ポートとして利用する部分である。本手法を人手で行うとした場合に、データ依存関係を考慮に入れた上でアルゴリズムを書き換えるには、変数の使われ方を実行順に目視で追いながら依存関係を探る必要があるため通常は極めて困難であり、作業が収束しない可能性が高い。図9には逆データ依存関係を持つ場合の処理記述例が示される。この場合、Cアルゴリズム記述は、変数out1に関して逆データ依存関係が存在し、非等価の矢印方向に示されるように単純な処理置換を行うと、変数out1がノンブロッキング代入となるため意図しない処理結果になる場合がある。等価の矢印方向に示されるように、順データ依存関係の場合と同様の中間変数を導入することで、上記同様にその不都合は解消される。図10にはデータ依存解析処理のデータ処理フローが例示される。図11にはデータ依存関係テーブルが例示され、図12にはデータ依存関係維持変換処理S33の詳細なデータ処理フローが例示される。図10に例示したデータ依存解析の処理フローは、前記アルゴリズム記述上における記述行の順番によって参照が先か代入が先かを判別して、図11のデータ依存関係テーブル41を生成する。図10に例示したデータ依存解析処理は、ソースコード文字で書かれたCアルゴリズム記述の意味を解釈パースして対象変数をリストアップするS101。対象変数は、出力ポートあるいは信号になる変数代入文右辺で使用||条件判定式配列インデックス単項短縮演算で使用の関係を満足する変数とされる。即ち、代入文右辺で使用され、条件判定式で使用され、配列インデックスで使用され、又は単項/短縮演算で使用される変数であって、且つ、出力ポートあるいは信号になる変数が対象変数とされる。次に、全対象変数毎に、代入文左辺で使用されている変数があるか否かを判別するS102。そのような変数がある場合には当該解析対象変数を含む文毎に、ステップS103の処理を繰り返す。ステップS103では、当該変数を代入文左辺で使用している他の文が、現解析文の上側にあるかの判別が行われ、ステップS103の条件を満足する変数に対してはデータ依存関係テーブルに順データ依存として情報追加を行いS104、そうでなければその変数に対してはデータ依存関係テーブルに逆データ依存として情報追加を行うS105。データ依存関係テーブル41の情報を入力として図12のデータ依存関係維持変換処理により、データ依存関係保存済コード42が作成される。このデータ依存関係保存済コード42は、後段のシステムレベル記述変換処理S34の入力となる。図12のデータ依存関係維持変換処理は、中間変数の導入S111、初期化記述の生成S112、依存元代入文の変換S113、及び依存先代入文の変換S114の各処理によって実現される。中間変数の導入処理S111は、データ依存関係を持つ対象変数に対して中間変数を導入する処理である。初期化記述の生成処理S112は、逆データ依存関係を持つ対象変数に対して、導入した中間変数の初期化記述を生成する処理である。依存元代入文の変換処理S113は、左辺=右辺;の処理を、導入変数=右辺;左辺=導入変数;へ変換する処理である。依存先代入文の変換処理S114は、文内の依存関係を持つ変数を導入変数に置換する処理である。例えば図8の順データ依存関係の記述例を用いて図10の処理フローを説明する。図10の処理フローによると、ステップS101にて変数out1はifの処理行があることから対象変数に該当する条件を満足し、ステップS102にてout1in1bufの代入文左辺で使用されている処理行があることから条件を満足する。さらにステップS103にて、out1変数の代入文よりも下側にout1変数を使用した条件判定式があることから、順データ依存関係があると判定され、図11のデータ依存関係テーブル41に、out1の代入行の情報行番号が、変数がout1、種別が代入と、out1の順データ依存による参照の情報行番号が、変数がout1、種別が参照、依存関係が順データ依存が追加される。その後、図12の処理フローによると、生成されたデータ依存関係テーブル41を参照して、S111にてout1などの中間変数が導入され、ステップS113にて依存元の代入文の変換が行われ、ステップS114にて依存先の代入文の変換が行われる。その結果として、図13に示すデータ依存関係保存済コード42が作成される。同様に、図9の逆データ依存関係の記述例を用いて図10の処理フローを説明する。図10の処理フローによると、ステップ101にて変数out1はifの処理行があることから対象変数に該当する条件を満足し、ステップ102にてout1in1bufの代入文左辺で使用されている処理行があることから条件を満足する。さらにステップ103にて、変数out1の代入文よりも上側に変数out1を使用した条件判定式があることから、逆データ依存関係があると判定され、図11のデータ依存関係テーブルに、out1の代入行の情報行番号が、変数がout1、種別が代入と、out1の逆データ依存による参照の情報行番号が、変数がout1、種別が参照、依存関係が逆データ依存が追加される。その後、図12の処理フローによると、生成されたデータ依存関係テーブル41を参照して、ステップS111にてout1などの中間変数が導入され、ステップS102にて中間変数の初期化記述を生成し、ステップS103にて依存元の代入文の変換が行われ、ステップS104にて依存先の代入文の変換が行われる。その結果として、図14に示すデータ依存関係保存済コード42が作成される。上述のように、データ依存関係を生成するためにCDFGコントロールデータフローグラフを生成する必要がないため、本発明に係る言語変換処理方法の開発コスト低減、変換処理の高速化に資することができる。尚、CDFGとは、プログラムを実行したときに通る可能性のある全経路のグラフであり、動作記述に現れたデータの流れと各演算の実行順序の制御の流れを表す。コンパイラ最適化や静的コード解析ツール等でよく用いられるものである。《Cアルゴリズムの記述制約》上記SystemC言語によって記述されるハードウェアモデルにおいて、そのプロセスがメソッドプロセスSCMETHODか、同期スレッドプロセスSCCTHREADか、等に応じて、上述のデータ依存関係維持変換処理の前後で機能の等価性を保障するために、入力となるCアルゴリズム記述に対して所定の記述制約を設けることが得策となる。例えば、変換後のシステムレベル記述がSystemC言語であり、かつ並行プロセスをメソッドプロセスSCMETHODに変換する場合には、以下に示す制約1、制約2、制約3、制約4を設けるとよい。この制約の下であれば、同一入力シーケンスに対して全出力系列が変換前後で一致する。一方、並行プロセスをクロック同期スレッドプロセスSCCTHREADに変換する場合には、以下に示す制約2、制約3、制約5を設けるのが良い。この制約の下であれば、出力サイクルが1サイクルだけ異なる、すなわち1サイクルのずれを無視すれば、全出力系列が変換前後で一致する。制約1:組合せゲートループとなる記述が存在しないこと、制約2:読み出し書き込み両方の操作が行われることになる内部信号となる変数が存在していないこと、制約3:出力ポートとなる変数への読み出し操作が全くないか、読み出し操作を行う場合は、他の並行プロセスとなる関数から当該変数への書き込みが一切ないこと。すなわち出力ポートとなる変数を入出力変数として用いていないこと、制約4:入力ベクタがサイクル同期していること、制約5:1クロックで動作を終了する記述となっていること、である。《システムレベル記述変換》次にシステムレベル変換処理S34について詳述する。図15にはシステムレベル変換処理S34の処理フローの具体例が示される。システムレベル変換処理S34は、モジュールクラス生成処理S121、ユーザ定義型生成処理S122、並行プロセス変換処理S123,及びテストベンチ生成処理S124によって実現される。システムレベル変換処理S34は、データ依存関係維持変換処理S33で生成したデータ依存関係保存済コード中間コード42、及びハードウェア要素指示データ20を用いて、4つのステップS121乃至S124によりシステムレベル記述を用いたハードウェアモデルデータ30を生成する。モジュールクラス生成処理S121では、ハードウェアモデルのクラスの宣言として、ポート及び信号宣言、並行プロセスの登録などの記述を生成する。この時にハードウェア要素指示データ20を見て、データ型変換が指示されている場合には、元の型を指示された型に変換する。例えば、C整数型のint型に対して、SystemCデータ型であるscintへの変換指示がある場合、int型で定義されている変数は、scint型に変換する。尚、モジュールはSystemC言語における設計の基本要素となるクラスとされ、プロセス、ポート、チャネル、他のモジュールなどをメンバとして持つ。ユーザ定義型生成処理S122では、構造体ポート、構造体信号が生成されることになる場合に、演算子をオーバーロードしたユーザ定義型クラスを生成する。これは、構造体ポートや構造体信号を用いた処理記述で、通常の演算子を使用できるようにするために必要となる。オーバーロードする演算子としては、、、、、、、、、、、、、、、、、、等であり、演算子の内部実装は、構造体の各データメンバに対して、該当演算子の処理を個別に実施する処理となる。並行プロセス変換処理S123では、Cアルゴリズムからハードウェアモデルの並行プロセス記述を生成する。リセット処理や無限ループ処理を用いて、入出力信号に関わる変数のデータ依存関係を維持しつつハードウェアモデル記述を生成する。この時にハードウェア要素指示データ20を参照して、データ型変換が指示されている場合には、元の型を指示された型に変換する。データ依存関係はデータ依存関係維持変換処理で生成されたデータ依存関係保存済コード452を参照して得ることができる。更に、並行プロセス変換処理S123では、記述変換規則としてCアルゴリズム内に記述されたを、クロック境界の記述コールに変換する。本情報については、ソースコードの何行目にクロック境界を挿入するかをハードウェア要素指示データ20から与えることも可能である。Cアルゴリズム記述内に、クロック境界を意味するこの記述を埋め込む方が、意味付けの明確化と可読性の向上を見込むことができる。またCアルゴリズムとして動作させる場合に意味のない処理記述なので、機能動作として弊害が生じることもない。記述変換規則として、Cアルゴリズム内に記述されたタイプのコメントは、ハードウェアモデルではコメントを無効化して、有効な記述となる。これは、自動変換では対応しきれないハードウェアモデル特有の記述を、Cアルゴリズム内にあらかじめ埋め込んでおくことにより、変換を補助する目的で用意したものである。テストベンチ生成処理S124では、Cアルゴリズム、および生成したシステムレベル記述の動作を確認できるテストベンチをそれぞれ生成する。Cアルゴリズムとハードウェアモデルデータに対して、同一のランダムテストベクタを入力し、出力結果のログをそれぞれ取得可能である。この出力結果を比較することにより、変換によって生成したハードウェアモデルが、オリジナルのCアルゴリズム記述と機能的に等価であるかを確認することが可能となる。ハードウェアモデル用のテストベンチは、ハードウェアモデルにポートを介して接続可能なモデルであり、自律動作プロセスを所持する。このプロセスでは、ランダムテストベクタを一定時間間隔で入力ポートに与え、出力ポートから得られる信号値をログファイルに記録する動作を一定回数繰り返す。ハードウェアモデルとテストベンチモデルのインスタンスを作成してポート間接続を行い、シミュレーションを実行する記述も合わせて生成する。一方、Cアルゴリズム用のテストベンチは、ランダムテストベクタを生成してアルゴリズム関数を呼び出し、処理結果をログファイルに記録する動作を一定回数繰り返す。尚、テストベンチの生成は必須ではない。所定の記述制約を満足し、デバッグにて不都合が解消されたCアルゴリズム記述に対して自動変換処理S3が行われれば、テストベンチを用いた評価及び返照を行わなくても、バグのないシステムレベル記述を得ることができる。テストベンチはそのような記述制約が遵守されていなかったりした場合に、全く評価環境が提供さていないことによる不都合に対する予備的なものとされる。以上説明した自動変換処理S3を言語変換処理方法に採用することにより、以下の作用効果を得ることができる。即ち、人手によって開発していたハードウェアモデルの作成工数を大幅に削減できると共に、アルゴリズム記述に対して機能的に等価なバグのないハードウェアモデルを得ることが可能となる。これにより、ハードウェアモデルへの書き換え工数低減のみならず、従来行ってきた、ハードウェアモデルを対象としたコード解析検証やデバッグの工数の削減が可能となり、人手によるバグ混入による信頼性低下も回避可能になる。更に、データ依存関係の生成にCDFGコントロールデータフローグラフを生成する必要がないため、言語変換処理方法の開発コスト低減、変換処理の高速化に資することができる。《言語変換処理方法の具体例》図16乃至図23に基づいて上述の言語変換処理方法による処理の更なる具体例について説明する。図16には図6の自動変換処理S3の入力データとしてCアルゴリズム記述データ10、ハードウェア要素指示データ20を用意する。入力となるCアルゴリズム記述データは、すでにコード解析検証およびデバッグが完了されているものとする。図16においてCアルゴリズム記述データ10として、ソード部10sとヘッダ部10hが例示される。自動変換処理S3における入出力アクセス解析処理S31では、Cアルゴリズム記述データ10におけるグローバル変数in1は入力ポート、グローバル変数out1は出力ポート、グローバル変数sig1およびsig2は信号として認識される。自動変換処理S3におけるデータ依存解析処理S32では、図10の処理フローによって、Cアルゴリズム記述データで使われている変数out1に順データ依存関係があると認識され、図11に例示されるようなデータ依存関係テーブル41が生成される。自動変換処理S3におけるデータ依存関係維持変換処理S33では図12の処理フローによって、図17に例示されるデータ依存関係保存済みコード42が生成される。自動変換処理S3におけるシステムレベル記述変換処理S34では、図15の処理フローによって、図18に例示されるハードウェアモデルのクラス定義部、図19に例示されるユーザ定義型クラス、図20に例示される並行プロセス、図21乃至図23に例示されるテストベンチのコードがそれぞれ生成される。図18においてDS1はポート宣言の記述、DS2は信号宣言の記述、DS3は並行プロセスの登録の記述である。並行プロセスの登録では同期スレッドプロセスSCCTHREADの登録が行われる。図19においてDS4は演算子のオーバーロードの記述である。図20においてDS5はリセット処理の記述、DS6は無限ループの記述である。図21においてDS7はランダムテストベクタ生成の記述、DS8は出力結果のログ取得の記述である。図22においてDS9はハードウェアモデル作成のモジュール記述、DS10はテストベンチモデル作成のモジュール記述、DS11はハードウェアモデルとテストベンチモデルの接続の記述である。図23においてDS12はランダムテストベクタ生成の記述、DS13はアルゴリズム関数の呼び出しと出力結果のログ取得の記述である。生成されたハードウェアモデルデータ30は、公知の高位合成手法などによってRTLデータに変換される。実施の形態2実施の形態2ではハードウェア要素指示データ20を不要とする言語処理変換方法について説明する。ハードウェア要素指示データ20を不要とする場合には、Cアルゴリズムで用いる変数名、構造体名、関数名への命名規則によって、入出力属性や並行プロセスに関するハードウェア要素の意味付けを行う。例えば以下の命名規則を採用する。1inoutsigで始まる整数型のグローバル変数は、それぞれ入力ポート出力ポート信号とする。2thで始まるグローバル関数は、並行プロセスとする。この命名規則を採用するとき図6の自動変換処理S3は、Cアルゴリズム記述10のみを入力として受け取る。入出力アクセス解析処理S31では、Cアルゴリズム記述をパースして本命名規則に基づき入出力アクセスの解析を行い、それによる入出力変数解析結果をデータベース40に保存する。図24に例示されるCアルゴリズムでは、上記命名規則によって、変数in1は入力ポート、変数out1は出力ポート、変数sig1とsig2は信号となり、関数th1とth2は並行プロセスとなる。これ以降の処理は実施の形態1と同様であるからその詳細な説明は省略する。尚、図24では上記命名規則がコメントとして付記され、記述に対する可読性が考慮されている。実施の形態2によれば、実施の形態1と同様に、アルゴリズム記述を、ハードウェア特有の時間や並列処理の概念を表現するシステムレベル記述に変換したとき、前記記述制約を満足するアルゴリズム記述で想定されているデータ依存関係はデータ依存関係維持記述によって維持されるから、アルゴリズム記述からシステムレベル記述に変換されたハードウェアモデルには、アルゴリズム記述に対して既に評価及び検証された結果が反映されることになり、変換されたハードウェアモデルに対して、使用言語が相違されていても、重ねてコード解析やデバッグなどの評価及び検証を行うことを要しない。更にハードウェア要素としてのパラメータについてはその命名規則に基づいて自動的に判別されるから、ハードウェア要素指示データのようなデータは必要ではない。実施の形態3上述した自動変換処理S3を制御する言語変換処理プログラムは、特に制限されないが、図7のDVD9dに格納されて提供される。DVD9dはDVDドライブ9装置を介してワークステーション1によって読み取り可能な情報記録媒体である。特に図示はしないが、言語変換処理プログラムは通信ネットワークを介してワークステーションン1がダウンロードしてもよい。言語変換処理プログラムはワークステーション1の機械語に対応したオブジェクトプログラムとして提供される。言語変換処理プログラムによる制御機能については図1乃至図24に基づいて説明した上述の自動変換処理S3を実現すればよい。例えば図6の入出力アクセス解析処理S31、データ依存解析処理S32、データ依存関係維持変換処理S33、及びシステムレベル記述変換処理S34を制御する機能を備えればよく、その詳細な説明を重ねて行うことは省略する。このような言語変換処理プログラムが提供されることにより、上述の言語変換処理のための自動変換処理S3を容易に実現可能にすることができる。以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、プログラム記述言語はC言語に限定されず、JAVA登録商標やその他の言語であってよい。それに従って、システム記述言語もSystemC言語に限定されず適宜変更可能である。図16乃至図24などに例示された記述例は一例であり、プロセスの内容、パラメータの種類、及びパラメータの命名規則などは適宜変更可能である。本発明はSoC開発向けハードウェアモデル高位合成向け性能評価向け問わず全般等に適用可能であり、例えば、携帯電話のアプリケーションチップ、携帯オーディオ、携帯ビデオ、車載オーディオ、車載ビデオ、車載ナビゲーションシステム、暗号システム等を個別に又は複合的に実現する回路モジュール、更にはLSIの開発に広く適用することができる。"