Атом (язык программирования)
Парадигма | Функциональный , синхронный , реактивный |
---|---|
Семья | Хаскелл |
Разработано | Томас Хокинс |
Впервые появился | 2007 г |
Стабильная версия | 1.0.13 / 13 ноября 2021 г |
Дисциплина набора текста | статический , сильный |
ТЫ | Кросс-платформенный |
Лицензия | БСД 3 |
Веб-сайт | хакерство |
Под влиянием | |
Bluespec , Confluence, Haskell |
Atom — это предметно-ориентированный язык (DSL) в Haskell , предназначенный для разработки реального времени встроенного программного обеспечения .
История
[ редактировать ]Первоначально задуманный как высокого уровня язык описания аппаратного обеспечения (HDL), Atom был создан в начале 2007 года и выпущен как бесплатное программное обеспечение с открытым исходным кодом (FOSS) в апреле того же года. [1] Вдохновленный ТРС [2] и Bluespec , Atom компилировал описания схем, основанные на защищенных атомарных операциях или перезаписи условных терминов , в Verilog списки соединений для моделирования и логического синтеза . Основная цель Atom как аппаратного компилятора — максимизировать количество операций или правил, которые могут выполняться за заданный такт без нарушения семантики атомарных операций. Используя свойства бесконфликтных и последовательно компонуемых правил, [2] Atom свел максимизацию параллелизма выполнения к оптимизации набора дуг обратной связи графа зависимостей правила-данных. Этот процесс был похож на Джеймса Хо . оригинальный алгоритм [2]
Когда в конце 2007 года автор Atom сменил карьеру с логического проектирования на разработку программного обеспечения для встраиваемых систем , Atom был преобразован из HDL в предметно-ориентированный язык, ориентированный на встраиваемые приложения для жестких вычислений в реальном времени . В результате основная цель компилятора Atom изменилась с максимизации параллелизма правил на балансировку вычислительной нагрузки и минимизацию задержки времени в худшем случае . В сентябре 2008 года Atom был представлен на конференции коммерческих пользователей функционального программирования (CUFP). [3] В апреле 2009 года в новой форме он был выпущен как FOSS. [4]
Обзор
[ редактировать ]Atom — это язык параллельного программирования, предназначенный для встроенных приложений. Atom обеспечивает во время компиляции задач планирование и генерирует код с детерминированным временем выполнения и использованием памяти, что упрощает времени выполнения в наихудшем случае анализ для приложений, которым требуется высокая производительность в реальном времени. Модель параллелизма Atom представляет собой модель защищенных атомарных действий , которая устраняет необходимость и проблемы использования мьютексных блокировок .
Удалив планирование задач во время выполнения и блокировку мьютексов — две службы, традиционно обслуживаемые операционной системой реального времени (RTOS), — Atom может устранить необходимость и накладные расходы на RTOS во встроенных приложениях.
Пределы
[ редактировать ]Чтобы гарантировать детерминированное время выполнения и потребление памяти, Atom накладывает несколько ограничений на вычисления. Во-первых, проекты Atom всегда имеют конечное состояние : все переменные являются глобальными и объявляются во время компиляции, а динамическое выделение памяти запрещено. Во-вторых, Atom не предоставляет никаких функций или конструкций циклов. Вместо этого обновления переменных состояния представляют собой чистые комбинационные логические функции текущего состояния.
Ссылки
[ редактировать ]- ^ ANN: Atom: еще один Haskell HDL (отчет).
- ^ Jump up to: а б с Хо, Джеймс С.; Арвинд (ноябрь 2000 г.). Синтез операционных описаний оборудования (PDF) . Международная конференция по компьютерному проектированию (ICCAD).
- ^ «Управление гибридными транспортными средствами с помощью Haskell» . Архивировано из оригинала 4 июля 2008 г. Проверено 5 декабря 2009 г.
- ^ ИНС: атомный-0.0.2
Внешние ссылки
[ редактировать ]- Декларативные языки программирования
- Функциональные языки
- Вычисления в реальном времени
- Синхронные языки программирования
- Статически типизированные языки программирования
- Семейство языков программирования Haskell
- Бесплатное программное обеспечение, написанное на Haskell.
- Кроссплатформенное бесплатное программное обеспечение
- Бесплатные компиляторы и интерпретаторы
- Языки программирования, созданные в 2007 году.
- программное обеспечение 2007 года