СИГНАЛ (язык программирования)
Эта статья может иметь запутанные или двусмысленные сокращения . ( Ноябрь 2011 г. ) |
СИГНАЛ — это язык программирования, основанный на синхронизированном потоке данных (потоки + синхронизация): процесс — это набор уравнений для элементарных потоков, описывающих как данные, так и управление. [1]
SIGNAL Формальная модель обеспечивает возможность описания систем с несколькими часами. [2] [3] (полихронные системы) как реляционные спецификации . Отношения полезны в качестве частичных спецификаций и спецификаций недетерминированных устройств (например, недетерминированной шины ) или внешних процессов (например, небезопасного водителя автомобиля).
Использование SIGNAL позволяет указать [4] приложение, для проектирования архитектуры , для доработки детальных компонентов до RTOS [ нужны разъяснения ] или описание оборудования. Модель SIGNAL поддерживает методологию проектирования , которая идет от спецификации к реализации , от абстракции к конкретизации , от синхронности к асинхронности .
SIGNAL в основном разрабатывался командой INRIA Espresso с 1980-х годов одновременно с аналогичными языками программирования Esterel и Lustre .
Краткая история
[ редактировать ]Язык SIGNAL был впервые разработан для приложений обработки сигналов в начале 1980-х годов. Было предложено ответить на спрос на новый предметно-ориентированный язык для разработки приложений обработки сигналов , приняв стиль потока данных и блок-диаграмм с операторами массива и скользящего окна . За определение языка отвечали П. Ле Герник, А. Бенвенист и Т. Готье. Первая статья о СИГНАЛЕ была опубликована в 1982 году, а первое полное описание СИГНАЛА появилось в докторской диссертации Т. Готье. Символическое представление SIGNAL через z/3z (над [-1,0,1]) было введено в 1986 году. Полный компилятор SIGNAL, основанный на исчислении часов на иерархии булевых часов, был описан Л. Беснаром в его книге Кандидатская диссертация в 1992 году. Исчисление часов было позже усовершенствовано Т. Амагбегноном с предложением древовидных канонических форм.
В 1990-е годы область применения языка SIGNAL была расширена до общих встроенных систем и систем реального времени. Стиль спецификации, ориентированный на отношения, позволил расширить конструкцию систем, а также привел к проектированию с учетом многотактовых систем по сравнению с исходной реализацией Esterel и Lustre на основе одиночной тактовой частоты. Более того, в SIGNAL также учитывались проектирование и реализация распределенных встраиваемых систем. Соответствующие исследования включают методы оптимизации, предложенные Б. Шероном, модели кластеризации, определенные Б. Ле Гоффом, абстракцию и раздельную компиляцию, формализованную О. Маффейсом, и реализацию распределенных программ, разработанных П. Обри.
Наборы инструментов Полихронии
[ редактировать ]Набор инструментов Polychrony — это среда разработки с открытым исходным кодом для критических/встроенных систем, основанная на SIGNAL, в реальном времени языке полихронных потоков данных . Он предоставляет унифицированную среду, управляемую моделями, для выполнения исследования проекта с использованием «сверху вниз» и «снизу вверх», методологий проектирования формально поддерживаемых преобразованиями модели проектирования от спецификации к реализации и от синхронности к асинхронности. Его можно включать в гетерогенные системы проектирования с различными входными формализмами и языками вывода.
Полихрония — это набор инструментов, состоящий из:
- Пакетный компилятор SIGNAL
- Графический интерфейс пользователя (редактор + интерактивный доступ к функциям компиляции)
- Инструмент Sigali — связанная формальная система для формальной проверки и синтеза контроллеров . [5] Сигали разрабатывается совместно с проектом INRIA Vertecs . [6]
Среда малого и среднего бизнеса
[ редактировать ]Среда SME (SIGNAL Meta под Eclipse) — это интерфейс Polychrony в среде Eclipse, основанный на Model-Driven Engineering технологиях (MDE). Он состоит из набора плагинов Eclipse, основанных на Eclipse Modeling Framework (EMF). Среда построена вокруг малого и среднего бизнеса, метамодели [7] языка СИГНАЛ, расширенного автоматами режимов [8] концепции.
Среда SME состоит из нескольких плагинов, которые соответствуют:
- Рефлексивный редактор : древовидное представление, позволяющее манипулировать моделями, соответствующими метамодели МСП.
- Средство графического моделирования, основанное на средствах моделирования TopCased (см. предыдущее изображение).
- Рефлексивный редактор и представление Eclipse для создания сценариев компиляции.
- Прямое подключение к сервисам Polychrony ( компиляция , формальная проверка и т.д.).
- Документация и примеры моделей .
См. также
[ редактировать ]- Эстерель
- Блеск (язык программирования)
- Синхронный язык программирования
- Программирование потоков данных
- Язык программирования
- Глобально асинхронный локально синхронный
- Формальная проверка
- Проверка модели
- Формальная семантика языков программирования
- ААДЛ
- Симулинк
- Авионика
- Проектирование системы
- Асинхронность (компьютерное программирование)
Примечания и ссылки
[ редактировать ]- ^ П. Ле Герник, Т. Готье, М. Ле Борнь и К. Ле Мэр. Программирование приложений реального времени с помощью SIGNAL. Труды IEEE , 79(9) : 1321-1336, сентябрь 1991 г.
- ^ П. Ле Герник, Ж.-П. Тальпин и Ж.-К. Ле Ланн. Полихрония для системного проектирования. Журнал «Схемы, системы и компьютеры» , специальный выпуск по проектированию аппаратного обеспечения для конкретных приложений, World Scientific, апрель 2003 г. (также доступен как отчет об исследованиях INRIA 4715, 2003 г.).
- ^ А. Гаматье и Т. Готье. Синхронный многотактовый подход SIGNAL к проектированию распределенных встраиваемых систем. Транзакции IEEE в параллельных и распределенных системах , 21(5) : 641-657, май 2010 г.
- ^ А. Гаматье. Проектирование встраиваемых систем с использованием языка программирования SIGNAL: синхронная, реактивная спецификация. ISBN 978-1-4419-0940-4 . Книга под редакцией Springer – Нью-Йорк, 260 страниц, 2010 г.
- ^ А. Бенвенист, П. Бурне, Т. Готье, М. Ле Борнь, П. Ле Герник и Х. Маршан. Декларативный синхронный язык Signal: синтез контроллера и проектирование систем/архитектуры. 40-я конференция IEEE по принятию решений и контролю, 2001 г.
- ^ Х. Маршан, П. Бурне, М. Ле Борнь, П. Ле Герник, Синтез контроллеров дискретных событий на основе сигнальной среды, Динамическая система дискретных событий: теория и приложения , 10 (4): 325-346, октябрь 2000.
- ^ К. Брюнетка, Ж.-П. Тальпен, А. Гаматье и Т. Готье. Метамодель проектирования полихронных систем. Журнал логики и алгебраического программирования , 78(4) : 233-259, Elsevier, апрель 2009 г.
- ^ Ж.-П. Тальпин, К. Брюнет, Т. Готье и А. Гаматье. Автоматы полихронного режима. Материалы 6-й Международной конференции ACM и IEEE по встраиваемому программному обеспечению (EMSOFT '06), ACM Press, октябрь 2006 г., стр. 83-92.
Внешние ссылки
[ редактировать ]- Команда INRIA/IRISA Espresso
- The Polychronytoolset посвящён SIGNAL (официальный сайт Polychrony) резервной ссылке
- Synchrone Lab (синхронный язык Lustre)
- Эстерель (синхронный Язык Эстерель)