stringtranslate.com

СИГНАЛ (язык программирования)

SIGNAL — это язык программирования , основанный на синхронизированном потоке данных (потоки + синхронизация): процесс — это набор уравнений элементарных потоков, описывающих как данные, так и управление. [1]

Формальная модель SIGNAL обеспечивает возможность описания систем с несколькими часами [2] [3] (полихронные системы) в качестве реляционных спецификаций . Отношения полезны в качестве частичных спецификаций и спецификаций недетерминированных устройств (например, недетерминированного автобуса ) или внешних процессов (например, небезопасного водителя автомобиля).

Использование SIGNAL позволяет указать [ 4] приложение, спроектировать архитектуру , уточнить подробные компоненты вплоть до RTOS [ необходимо разъяснение ] или описания оборудования. Модель SIGNAL поддерживает методологию проектирования , которая идет от спецификации к реализации , от абстракции к конкретизации , от синхронности к асинхронности .

SIGNAL в основном разрабатывался командой INRIAEspresso с 1980-х годов, одновременно с похожими языками программирования Esterel и Lustre .

Краткая история

Язык SIGNAL был впервые разработан для приложений обработки сигналов в начале 1980-х годов. Он был предложен для удовлетворения спроса на новый предметно-ориентированный язык для проектирования приложений обработки сигналов , приняв стиль потока данных и блок-схемы с операторами массива и скользящего окна . P. Le Guernic, A. Benveniste и T. Gautier отвечали за определение языка. Первая статья о SIGNAL была опубликована в 1982 году, а первое полное описание SIGNAL появилось в докторской диссертации T. Gautier. Символическое представление СИГНАЛА через z/3z (над [-1,0,1]) было введено в 1986 году. Полный компилятор СИГНАЛА, основанный на исчислении часов на иерархии булевых часов, был описан Л. Беснаром в его докторской диссертации в 1992 году. Исчисление часов было позже улучшено Т. Амагбеньоном с предложением древовидных канонических форм.

В 1990-х годах область применения языка SIGNAL была расширена на общие встроенные системы и системы реального времени. Стиль спецификации, ориентированный на отношения, позволил увеличить построение систем, а также привел к проектированию, учитывающему многотактовые системы, по сравнению с первоначальной реализацией Esterel и Lustre на основе одного такта. Более того, проектирование и реализация распределенных встроенных систем также были приняты во внимание в SIGNAL. Соответствующие исследования включают методы оптимизации, предложенные Б. Шероном, модели кластеризации, определенные Б. Ле Гоффом, абстракцию и раздельную компиляцию, формализованные О. Маффеисом, и реализацию распределенных программ, разработанных П. Обри.

Наборы инструментов Полихронии

Набор инструментов Polychrony — это среда разработки с открытым исходным кодом для критических/встроенных систем на основе SIGNAL, языка полихронных потоков данных в реальном времени . Он предоставляет унифицированную среду на основе моделей для выполнения проектных исследований с использованием методологий проектирования сверху вниз и снизу вверх, формально поддерживаемых преобразованиями моделей проектирования от спецификации к реализации и от синхронности к асинхронности. Его можно включать в гетерогенные системы проектирования с различными формализмами ввода и языками вывода.

Полихрония — это набор инструментов, состоящий из:

Среда МСП

Среда SME (SIGNAL Meta в Eclipse) является интерфейсом Polychrony в среде Eclipse , основанной на технологиях Model-Driven Engineering (MDE). Она состоит из набора подключаемых модулей Eclipse, которые опираются на Eclipse Modeling Framework (EMF). Среда построена вокруг SME, метамодели [7] языка SIGNAL, расширенной концепциями режимных автоматов [8] .

Среда МСП состоит из нескольких плагинов, которые соответствуют:

Смотрите также

Примечания и ссылки

  1. ^ П. Ле Герник, Т. Готье, М. Ле Борн и К. Ле Мэр. Программирование приложений реального времени с помощью SIGNAL. Труды IEEE , 79(9) : 1321-1336, сентябрь 1991 г.
  2. ^ П. Ле Герник, Ж.-П. Талпин и Ж.-К. Ле Ланн. Полихрония для проектирования систем. Журнал схем, систем и компьютеров , специальный выпуск по проектированию аппаратных средств специального назначения, World Scientific, апрель 2003 г. (также доступен как отчет об исследованиях INRIA 4715, 2003 г.).
  3. ^ А. Гаматье и Т. Готье. Синхронный многотактовый подход SIGNAL к проектированию распределенных встраиваемых систем. Труды IEEE по параллельным и распределенным системам , 21(5) : 641-657, май 2010 г.
  4. ^ А. Гаматие. Проектирование встраиваемых систем с использованием языка программирования SIGNAL: синхронная реактивная спецификация. ISBN  978-1-4419-0940-4 . Книга под редакцией Springer - Нью-Йорк, 260 страниц, 2010.
  5. ^ А. Бенвенист, П. Бурнаи, Т. Готье, М. Ле Борнь, П. Ле Герник и Х. Маршан. Декларативный синхронный язык Signal: синтез контроллера и проектирование систем/архитектуры. 40-я конференция IEEE по принятию решений и управлению, 2001.
  6. ^ Х. Маршан, П. Бурнаи, М. Ле Борнь, П. Ле Герник, Синтез дискретно-событийных контроллеров на основе сигнальной среды, Дискретно-событийная динамическая система: теория и приложения , 10(4):325-346, октябрь 2000 г.
  7. ^ C. Brunette, J.-P. Talpin, A. Gamatié и T. Gautier. Метамодель для проектирования полихронных систем. Журнал логического и алгебраического программирования , 78(4) : 233-259, Elsevier, апрель 2009 г.
  8. ^ J.-P. Talpin, C. Brunette, T. Gautier и A. Gamatié. Полихронные режимные автоматы. Труды 6-й международной конференции ACM & IEEE по встроенному программному обеспечению (EMSOFT '06), ACM Press, октябрь 2006 г., 83-92.

Внешние ссылки