ロゼッタ・ラング

コンピューティング分野において、Rosettaシステムレベル仕様言語は、複雑で異種混合のシステムのための設計言語です。具体的な言語設計目標は以下のとおりです。

ロゼッタはさまざまな時期に 標準化を進めていました。

歴史

ロゼッタの取り組みは、1996年に半導体産業評議会(SIC)のシステムレベル設計言語委員会の会議から生まれました。この会議の目的は、VHDLVerilogといった既存言語の欠点を克服する次世代設計言語の要件を定義することでした。具体的な懸念事項としては、制約の表現が不可能であること、形式的なセマンティクスが欠如していること、異機種システムの表現が不可能であること、そして解析においてコンピュータシミュレーションへの依存度が高いことなどが挙げられました。これらの要件に対応するため、3つの主要なアプローチが追求されました。

  1. VHDLVerilogなどのハードウェア記述言語の拡張
  2. CC++を含むプログラミング言語の拡張
  3. 新しい言語の定義

最初のアプローチは最終的にSystemVerilogとVHDLの拡張につながり、2番目のアプローチはSystemCにつながり、これらはすべて半導体業界の電気電子技術者協会(IEEE)標準となりました。Rosettaの当初の応用分野は、システムオンチップ(SoC)半導体システムでした。[ 1 ]

Rosettaは3番目のアプローチから生まれたもので、開発は半導体産業協議会と空軍研究所の後援の下で始まりました。もともとカンザス大学のペリー・アレクサンダーらによって開発され、単にシステムレベル設計言語として知られていました。[ 2 ] 標準化は2000年までにVHDL Internationalに移管され、仕様の異機種間の性質を反映するためにロゼッタ(ロゼッタストーンにちなんで)に改名されました。最終的に、VHDL InternationalとOpen Verilog Initiativeは合併して、電子設計自動化(EDA)標準のための業界主導のコンソーシアムであるAccelleraが設立されました。Rosettaの標準草案は、2003年11月にAccelleraから発行されました。[ 3 ]標準化はIEEE設計自動化標準委員会(DASC) に移管され、 2007年3月からIEEEプロジェクトP1699の下、ロゼッタワーキンググループによって開発が進められました。 [ 4 ] [ 5 ] 言語リファレンスマニュアルの草稿は2008年4月にオーストラリアのピーター・アシェンデン氏を編集者として公開されました。[ 6 ] プロジェクトは2013年6月に撤回されました。[ 7 ]

構造

Rosetta は、さまざまな仕様要素の定義をサポートする 3 つのサブ言語で構成されています。式言語、仕様で用語や値として使用される基本的な関数と式を定義します。式言語は、 Haskellの精神を受け継いだ、非厳密純粋に関数的な型付き言語です。関数は参照透過的でカプセル化された式であり、副作用を持つことはできません。すべての Rosetta 式の型は静的に決定されます。型システムは、各型が少なくとも最低値または未定義の値を含むリフト セットに基づいています。任意のセットを使用して型を定義でき、セットを返す任意の関数を使用して型フォーマーを定義できます。型定義には一般的な Rosetta 式を含めることができるため、型システムは依存的です。

ファセット言語は、システムを定義するための個々の仕様と仕様構成を定義します。ファセットコンポーネントは、1つのエンジニアリングの観点からシステムモデルを定義します。各ファセットは、モデルの語彙とセマンティクスを提供するドメインを拡張することによって記述されます。ファセットは、項目を宣言し、それらの項目のプロパティを定義することによって定義されます。したがって、Rosettaは宣言型言語であり、構成要素が値に評価されることは保証されませんが、一部のファセットは評価可能です。ドメインによって提供される設計抽象化を使用して、ファセットはシステムの要件、動作、制約、または機能を記述します。ファセットは異種であり、定義済みまたはユーザー定義のドメインのいずれかを使用して定義できます。Rosettaのセマンティクスは、各ファセットを、その計算モデルを定義するコゲーマ(coalgebra)で表します。Rosettaはリフレクティブであるため、ファセットを構成および変換して複雑なシステムを定義することができます。一般的な仕様定義手法は、システムのさまざまな側面に対応するファセットを記述し、積和演算を使用してそれらの側面を合成し、完全なシステムを定義することです。

ドメイン言語は、仕様ドメイン(仕様タイプとも呼ばれる)を定義します。ドメインのコレクションは、空またはヌルドメインを最上位要素、不整合または最下位ドメインを最下位要素として、準同型性によって順序付けられた完全な格子を形成します。主なドメインタイプは3つあります。セマンティクス単位ドメインは、仕様の基本単位を定義します。例えば、状態ベースドメインは、値やプロパティを制約することなく、状態と次の状態の概念を定義します。計算モデルドメインは、セマンティクス単位ドメインを拡張して、有限状態連続時間離散時間周波数などの一般的な計算モデルを定義します。エンジニアリングドメインは、計算モデルドメインを拡張して、特定のエンジニアリングドメイン向けの仕様機能を提供します。

初期の頃から、Rosetta は油圧および機械システム、ネットワーク システム、セキュリティと信頼性、ソフトウェア定義無線などの設計領域を含むように拡大してきました。

さらに読む

Rosettaは、非正格な純粋関数型言語HaskellLarchファミリーの仕様記述言語、そしてプロトタイプ検証システム(PVS)から大きな影響を受けています。Rosettaに関する書籍は2006年11月に出版されました。[ 8 ]

参考文献

  1. ^ Perry Alexander、David Barton (2000年6月). 「Rosetta がシステムレベル設計をサポート」 EE Times . 2000年8月16日時点のオリジナルよりアーカイブ。 2013年10月7日閲覧
  2. ^ 「SLDLとRosettaについて」オリジナルウェブサイト。カンザス大学。2004年3月18日時点のオリジナルからアーカイブ。 2013年10月7日閲覧
  3. ^ David Maliniak (2003年11月10日). 「Rosetta Design Language On Road To Standardization」 . Electronic Design . 2013年10月7日閲覧
  4. ^ 「Rosetta WG - Rosetta Systems Level Design Language Working Group」 . IEEE Standards Association. 2015年6月10日時点のオリジナルよりアーカイブ。 2013年10月7日閲覧
  5. ^ Sherry Hampton (2007年3月22日). 「P1699 - Rosetta Systems レベル設計言語定義の標準」(PDF) .プロジェクト承認書. IEEE Standards Association.オリジナル(PDF)から2015年6月10日時点のアーカイブ。 2013年10月7日閲覧
  6. ^ “P1699 Rosetta LRM subcommittee” . 2008年4月22日. 2015年6月10日時点のオリジナルよりアーカイブ。 2013年10月7日閲覧
  7. ^ 「Standards Board New Standards Committee (NesCom) の勧告」(PDF) IEEE Standards Association. 2013年6月14日. 2013年10月7日閲覧
  8. ^ペリー・アレクサンダー (2006). 『Rosettaによるシステムレベル設計』モーガン・カウフマン. ISBN 978-1-55860-771-2