Атом (язык программирования) - Википедия - Atom (programming language)

Атом
Парадигмафункциональный, синхронный, реактивный
РазработаноТомас Хокинс
Впервые появился2007
Печатная дисциплинастатический, сильный
Операционные системыпортативный
ЛицензияBSD3
Интернет сайтhttp://hackage.haskell.org/package/atom/
Под влиянием
Bluespec, Confluence, Haskell

Атом это предметно-ориентированный язык (DSL) в Haskell, для проектирования в реальном времени встроенный программного обеспечения.

История

Первоначально задумывался как высокий уровень язык описания оборудования, Atom был создан в начале 2007 года и выпущен в открытый доступ в апреле того же года.[1]В духе TRS [2]и Bluespec, Atom скомпилировал описания схем, основанные на защищенных атомарных операциях, или условное изменение срока, в Verilog списки соединений для моделирования и логический синтез Как аппаратный компилятор, основная цель Atom заключалась в максимальном увеличении числа операций или правил, которые могут выполняться в заданном тактовом цикле, без нарушения семантики атомарной операции. Используя свойства бесконфликтных и последовательно составляемых правил,[2] Atom сократил максимальное параллелизм выполнения до набор дуги обратной связи оптимизация графа зависимости правило-данные. Этот процесс был похож на Джеймс Хоу оригинальный алгоритм.[2]

Когда автор Атома в конце 2007 года сменил карьеру с логического дизайна на встроенное программное обеспечение инженерии, Atom был переработан из HDL к язык домена нацеливание жесткий реалтайм встроенные приложения. В результате основная цель компилятора Atom изменилась с максимизации параллелизма правил на балансировку нагрузки обработки и минимизациювремя задержки наихудшего случая. В сентябре 2008 года Atom был представлен на CUFP,[3]а в апреле 2009 года был выпущен в новой форме с открытым исходным кодом.[4]

Обзор

Atom - это язык параллельного программирования, предназначенный для встраиваемых приложений. Особенности атома время компиляции планирование задач и генерирует код с детерминированным временем выполнения и потреблением памяти, упрощая время выполнения наихудшего случая анализ приложений, требующих высокой производительности в реальном времени. Модель параллелизма Atom - это модель охраняемые атомные действия, что устраняет необходимость, а проблемы использования, мьютексные блокировки.

Удалив время выполнения планирование задач и блокировка мьютексов - две службы, традиционно обслуживаемые ОСРВ —Atom может устранить необходимость и накладные расходы на ОСРВ во встроенных приложениях.

Примеры

Ограничения

Чтобы гарантировать детерминированное время выполнения и потребление памяти, Atom накладывает несколько ограничений на вычисления. Во-первых, проекты Atom всегда имеют конечное состояние: все переменные являются глобальными и объявляются во время компиляции и распределение динамической памяти не допускается. Во-вторых, Atom не предоставляет функций или циклических конструкций. Вместо этого обновления переменных состояния являются чистыми комбинационные функции текущего состояния.

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

  1. ^ ANN: Atom - еще один Haskell HDL
  2. ^ а б c Синтез описаний аппаратного обеспечения, ориентированных на эксплуатацию. Джеймс С. Хоу и Арвинд. Международная конференция по автоматизированному проектированию (ICCAD), ноябрь 2000 г.
  3. ^ «Управление гибридными автомобилями с помощью Haskell». Архивировано из оригинал на 2008-07-04. Получено 2009-12-05.
  4. ^ ИНС: атом-0.0.2

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