Атом (язык программирования) - Atom (programming language)
Тема этой статьи может не соответствовать Википедии общее руководство по известности.Март 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигма | функциональный, синхронный, реактивный |
---|---|
Разработано | Томас Хокинс |
Впервые появился | 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 может устранить необходимость и накладные расходы на ОСРВ во встроенных приложениях.
Примеры
Этот раздел пуст. Вы можете помочь добавляя к этому. (Июль 2010 г.) |
Ограничения
Чтобы гарантировать детерминированное время выполнения и потребление памяти, Atom накладывает несколько ограничений на вычисления. Во-первых, проекты Atom всегда имеют конечное состояние: все переменные являются глобальными и объявляются во время компиляции и распределение динамической памяти не допускается. Во-вторых, Atom не предоставляет функций или циклических конструкций. Вместо этого обновления переменных состояния являются чистыми комбинационные функции текущего состояния.
Рекомендации
- ^ ANN: Atom - еще один Haskell HDL
- ^ а б c Синтез описаний аппаратного обеспечения, ориентированных на эксплуатацию. Джеймс С. Хоу и Арвинд. Международная конференция по автоматизированному проектированию (ICCAD), ноябрь 2000 г.
- ^ «Управление гибридными автомобилями с помощью Haskell». Архивировано из оригинал на 2008-07-04. Получено 2009-12-05.
- ^ ИНС: атом-0.0.2