СИГНАЛ (язык программирования) - SIGNAL (programming language)
SIGNAL - это язык программирования, основанный на синхронизированном потоке данных (потоки + синхронизация): процесс - это набор уравнений на элементарных потоках, описывающих как данные, так и управление.
Формальная модель SIGNAL предоставляет возможность описывать системы с несколькими часами (полихронные системы) как реляционные спецификации . Отношения полезны как частичные спецификации и как спецификации недетерминированных устройств (например, недетерминированной шины ) или внешних процессов (например, небезопасного водителя автомобиля).
Использование SIGNAL позволяет указать приложение, спроектировать архитектуру , детализировать компоненты вплоть до RTOS или описания оборудования. Модель SIGNAL поддерживает методологию проектирования, которая идет от спецификации к реализации , от абстракции к конкретизации , от синхронности к асинхронности .
SIGNAL в основном разрабатывается командой INRIA Espresso с 1980-х годов, одновременно с аналогичными языками программирования Esterel и Lustre .
Краткая история
Язык SIGNAL был впервые разработан для приложений обработки сигналов в начале 1980-х годов. Было предложено удовлетворить потребность в новом предметно-ориентированном языке для разработки приложений обработки сигналов , приняв стиль потока данных и блок-диаграммы с операторами массива и скользящего окна . П. Ле Герник, А. Бенвенист и Т. Готье отвечали за определение языка. Первая статья о СИГНАЛЕ была опубликована в 1982 году, а первое полное описание СИГНАЛА появилось в докторской диссертации Т. Готье. Символьное представление SIGNAL через z / 3z (больше [-1,0,1]) было введено в 1986 году. Полный компилятор SIGNAL, основанный на исчислении часов на иерархии булевых часов, был описан Л. Безнаром в его работе. Кандидатская диссертация в 1992 году. Исчисление часов было улучшено позже Т. Амагбеньоном с предложением древовидных канонических форм.
В течение 1990-х прикладная область языка SIGNAL была расширена до общих встроенных систем и систем реального времени. Стиль спецификации, ориентированный на отношения, позволил расширить построение систем, а также привел к проектированию, учитывающему многочастотные системы, по сравнению с оригинальной реализацией Эстерель и Ластер на основе одного такта. Кроме того, в SIGNAL были учтены дизайн и реализация распределенных встроенных систем. Соответствующее исследование включает методы оптимизации, предложенные Б. Шероном, модели кластеризации, определенные Б. Ле Гоффом, абстракцию и раздельную компиляцию, формализованные О. Маффеисом, и реализацию распределенных программ, разработанную П. Обри.
Наборы инструментов полихронии
Набор инструментов Polychrony - это среда разработки с открытым исходным кодом для критически важных / встроенных систем, основанная на SIGNAL, языке полихронного потока данных в реальном времени . Он предоставляет единую управляемую моделями среду для исследования проекта с использованием методологий проектирования сверху вниз и снизу вверх, формально поддерживаемых преобразованиями модели проекта от спецификации к реализации и от синхронности к асинхронности. Его можно включать в разнородные системы проектирования с различными формализмами ввода и языками вывода.
Полихрония - это набор инструментов, состоящий из:
- Пакетный компилятор SIGNAL
- Графический пользовательский интерфейс (редактор + интерактивный доступ к компиляции функций)
- Инструмент Sigali , связанная формальная система для формальной проверки и синтеза контроллеров . Sigali разработан совместно с проектом INRIA Vertecs .
Среда малого и среднего бизнеса
Среда SME (SIGNAL Meta в Eclipse) - это интерфейсная часть Polychrony в среде Eclipse, основанная на технологиях Model-Driven Engineering (MDE). Он состоит из набора подключаемых модулей Eclipse, основанных на Eclipse Modeling Framework (EMF). Среда построена вокруг SME, метамодели языка SIGNAL, расширенного концепциями автоматов режимов .
Среда SME состоит из нескольких плагинов, которые соответствуют:
- Рефлексивный редактор : а дерево вид позволяет манипулировать модели соответствовать метамоделям МСПА.
- Программа для графического моделирования, основанная на средствах моделирования TopCased (см. Предыдущий рисунок).
- Рефлексивный редактор и представление Eclipse для создания сценариев компиляции.
- Прямое подключение к сервисам Полихронии ( компиляция , формальная проверка и т. Д.).
- А документация и типовые примеры.
Смотрите также
- Эстерель
- Lustre (язык программирования)
- Синхронный язык программирования
- Программирование потока данных
- Язык программирования
- Глобально асинхронный локально синхронный
- Формальная проверка
- Проверка модели
- Формальная семантика языков программирования
- AADL
- Simulink
- Авионика
- Системный дизайн
- Асинхронность (компьютерное программирование)
Примечания и ссылки
внешние ссылки
- Команда INRIA / IRISA Espresso
- Набор инструментов Полихрония, посвященный СИГНАЛУ (официальный сайт Полихронии)
- Synchrone Lab (синхронный язык Lustre)
- Эстерель (синхронный язык Эстерель)