Rosetta-lang - Rosetta-lang

Розетта система -уровень язык спецификации язык дизайна для сложных, гетерогенные системы. Конкретные цели языкового дизайна включают:

Розетта переживала стандартизация в разное время.

История

Усилия Rosetta явились результатом встречи комитета по языку проектирования на системном уровне Совета полупроводниковой промышленности в 1996 году. Целью встречи было определение требований к языку проектирования следующего поколения, который устранял бы очевидные недостатки существующих языков, таких как VHDL и Verilog. Конкретные проблемы включали неспособность представить ограничения, отсутствие формальной семантики, неспособность представить гетерогенные системы и сильную зависимость от компьютерное моделирование для анализа. В ответ на эти требования использовались три основных подхода:

  1. Расширение языки описания оборудования в том числе VHDL и Verilog
  2. Расширение языки программирования в том числе C и C ++
  3. Определение новых языков

Первый подход в конечном итоге привел к SystemVerilog и расширения для VHDL, а второй привел к SystemC, все из которых стали Институт инженеров по электротехнике и электронике (IEEE) стандарты для полупроводниковая промышленность Первоначальный домен приложения .Rosetta был система на чипе полупроводниковые системы.[1]

Розетта стала результатом третьего подхода, разработка которого началась под эгидой Совета полупроводниковой промышленности и Исследовательская лаборатория ВВС. Первоначально разработан Перри Александером и другими в Канзасский университет, он был известен просто как язык проектирования системного уровня.[2]Стандартизация была передана VHDL International к 2000 году и переименована в Rosetta (после Розеттский камень ), чтобы отразить неоднородный характер его спецификаций. В конце концов, VHDL International и Open Verilog Initiative объединились в Accellera, отрасль, спонсируемая консорциум за автоматизация проектирования электроники (EDA) стандарты. Проект стандарта Rosetta был опубликован в ноябре 2003 года через Accellera.[3]Стандартизация перенесена в IEEE Комитет по стандартам автоматизации проектирования (DASC), где он был разработан Рабочей группой Rosetta в рамках проекта IEEE P1699, начиная с марта 2007 года.[4][5]Проект справочного руководства по языку был опубликован в апреле 2008 года с редактором Питером Эшенденом из Австралии.[6]Проект был снят в июне 2013 года.[7]

Структура

Rosetta построена вокруг трех подъязыков, которые поддерживают определение различных элементов спецификации. В выражение язык определяет основные функции и выражения, используемые в качестве терминов и значений в спецификациях. Язык выражения - это нестрогий, чисто функциональный, напечатанный язык в духе Haskell. Функции ссылочно прозрачный, инкапсулированные выражения и не могут иметь побочных эффектов. Все выражения Rosetta имеют типы, которые определяются статически. Система типов основана на поднятых наборах, где каждый тип содержит по крайней мере нижнее или неопределенное значение. Любой набор может использоваться для определения типа, и любая функция, возвращающая набор, может использоваться для определения формирователя типа. Поскольку определения типов могут содержать общие выражения Rosetta, система типов зависимый.

В язык аспектов определяет индивидуальные спецификации и состав спецификаций для определения систем. Грани и составные части определять системные модели с одной инженерной точки зрения. Каждый фасет записывается путем расширения домен который предоставляет словарь и семантику для модели. Фасеты определяются путем объявления элементов и определения свойств для этих элементов. Таким образом, Rosetta - это декларативный язык и нельзя гарантировать, что конструкции оценят значение, хотя некоторые аспекты могут быть оценены. Используя абстракции дизайна, предоставляемые его предметной областью, фасет описывает требования, поведение, ограничения или функции системы. Фасеты неоднородны и могут быть определены с использованием любого из предопределенных или определенных пользователем доменов. Семантика Rosetta обозначает каждый аспект коалгебра что определяет его вычислительную модель. Потому что Розетта отражающий, фасеты могут быть составлены и преобразованы для определения сложных систем. Распространенный метод спецификации - написать фасеты для различных аспектов системы, а затем составить эти аспекты, используя операции произведения и суммирования для определения всей системы.

В язык домена определяет домены спецификации, иначе известные как типы спецификации. Коллекция доменов образует полная решетка заказан гомоморфизм с пустым или значение NULL домен в качестве его верхнего элемента, а несогласованный или дно домен в качестве его нижней части. Есть три основных типа доменов. Домены единиц семантики определяют базовые единицы спецификации. Например, state_based домен определяет понятие состояния и следующего состояния без ограничения значений или свойств. Области модели вычислений расширяют области единицы семантики для определения общих вычислительных моделей, таких как конечное_состояние, Continuous_time, дискретное время и частота. Инженерные домены расширяют домены модели вычислений, чтобы обеспечить возможности спецификации для конкретных инженерных областей.

С самого начала Rosetta расширилась, включив в нее такие области проектирования, как гидравлические и механические системы, сетевые системы, безопасность и доверие, а также программно определяемые радиостанции.

дальнейшее чтение

Rosetta находился под сильным влиянием нестрогого, чисто функционального языка. Haskell, то Лиственница семейство языков спецификации и Система проверки прототипа (ПВС). Книга, посвященная языку, вышла в ноябре 2006 года.[8]

Рекомендации

  1. ^ Перри Александр и Дэвид Бартон (июнь 2000 г.). «Rosetta обеспечивает поддержку проектирования на уровне системы». EE Times. Архивировано из оригинал 16 августа 2000 г.. Получено 7 октября, 2013.CS1 maint: использует параметр авторов (ссылка на сайт)
  2. ^ «О SLDL и Rosetta». Оригинальный веб-сайт. Канзасский университет. Архивировано из оригинал 18 марта 2004 г.. Получено 7 октября, 2013.
  3. ^ Давид Малиняк (10 ноября 2003 г.). «Язык дизайна Rosetta на пути к стандартизации». Электронный дизайн. Получено 7 октября, 2013.
  4. ^ "Rosetta WG - Рабочая группа по языку проектирования уровней Rosetta Systems". Ассоциация стандартов IEEE. Получено 7 октября, 2013.
  5. ^ Шерри Хэмптон (22 марта 2007 г.). «P1699 - Стандарт для определения языка проектирования уровней Rosetta Systems» (PDF). Письмо об одобрении проекта. Ассоциация стандартов IEEE. Получено 7 октября, 2013.
  6. ^ «Подкомитет P1699 Rosetta LRM». 22 апреля 2008 г. Архивировано с оригинал 10 июня 2015 г.. Получено 7 октября, 2013.
  7. ^ «Рекомендации Комитета Совета по новым стандартам (NesCom)» (PDF). Ассоциация стандартов IEEE. 14 июня 2013 г.. Получено 7 октября, 2013.
  8. ^ Перри Александр (2006). Проектирование системного уровня с Rosetta. Морган Кауфманн. ISBN  978-1-55860-771-2.

внешняя ссылка