Jump to content

Атом (язык программирования)

Атом
Парадигма Функциональный , синхронный , реактивный
Семья Хаскелл
Разработано Томас Хокинс
Впервые появился 2007 г .; 17 лет назад ( 2007 )
Стабильная версия
1.0.13 / 13 ноября 2021 г .; 2 года назад ( 13.11.2021 )
Дисциплина набора текста статический , сильный
ТЫ Кросс-платформенный
Лицензия БСД 3
Веб-сайт хакерство .haskell .org /упаковка /атом
Под влиянием
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 не предоставляет никаких функций или конструкций циклов. Вместо этого обновления переменных состояния представляют собой чистые комбинационные логические функции текущего состояния.

  1. ^ ANN: Atom: еще один Haskell HDL (отчет).
  2. ^ Jump up to: а б с Хо, Джеймс С.; Арвинд (ноябрь 2000 г.). Синтез операционных описаний оборудования (PDF) . Международная конференция по компьютерному проектированию (ICCAD).
  3. ^ «Управление гибридными транспортными средствами с помощью Haskell» . Архивировано из оригинала 4 июля 2008 г. Проверено 5 декабря 2009 г.
  4. ^ ИНС: атомный-0.0.2
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3deb1676fb885c032172cdb02f7487d6__1701719100
URL1:https://arc.ask3.ru/arc/aa/3d/d6/3deb1676fb885c032172cdb02f7487d6.html
Заголовок, (Title) документа по адресу, URL1:
Atom (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)