Atom (programovací jazyk) - Atom (programming language) - Wikipedia

Atom
Paradigmafunkční, synchronní, reaktivní
NavrhlThomas Hawkins
Poprvé se objevil2007
Psací disciplínastatický, silný
OSpřenosný
LicenceBSD3
webová stránkahttp://hackage.haskell.org/package/atom/
Ovlivněno
Bluespec, Soutok, Haskell

Atom je jazyk specifický pro doménu (DSL) v Haskell, za návrh reálný čas vložený software.

Dějiny

Původně zamýšlen jako vysoká úroveň jazyk popisu hardwaru „Atom byl vytvořen počátkem roku 2007 a vydán v open-source v dubnu téhož roku.[1]Inspirováno TRS [2]a Bluespec Atom sestavil popisy obvodů, které byly založeny na střežených atomových operacích, nebo přepis podmíněného termínu, do Verilog netlisty pro simulaci a logická syntéza Jako kompilátor hardwaru bylo primárním cílem Atomu maximalizovat počet operací nebo pravidel, která lze provést v daném hodinovém cyklu, aniž by byla porušena sémantika atomové operace. Využitím vlastností bezkonfliktních a postupně skládatelných pravidel[2] Atom snížil maximalizaci souběžnosti provádění na a sada zpětného oblouku optimalizace grafu závislosti pravidel na datech. Tento proces byl podobný James Hoe původní algoritmus.[2]

Když autor Atomu změnil kariéru na konci roku 2007 z logického designu na vestavěný software Atom byl přepracován z HDL do a jazyk specifický pro doménu cílení v reálném čase vestavěné aplikace. Výsledkem je, že primární cíl kompilátoru Atom se změnil z maximalizace souběžnosti pravidel na vyvažování zátěže zpracování a minimalizacinejhorší načasování latence. V září 2008 byl Atom představen na CUFP,[3]a v dubnu 2009 byl vydán jako open-source v nové podobě.[4]

Přehled

Atom je souběžný programovací jazyk určený pro vestavěné aplikace. Funkce Atom čas kompilace plánování úkolů a zjednodušuje generování kódu s deterministickým časem spuštění a spotřebou paměti nejhorší doba provedení analýza pro aplikace, které vyžadují tvrdý výkon v reálném čase. Atomův model souběžnosti je model hlídané atomové akce, což eliminuje potřebu, a problémy používání, zámky mutex.

Odstraněním run-time plánování úkolů a zamykání mutexu - dvě služby tradičně poskytované službou RTOS —Atom může eliminovat potřebu a režii RTOS ve vestavěných aplikacích.

Příklady

Omezení

Aby poskytl záruky deterministického času spuštění a spotřeby paměti, Atom klade několik omezení na výpočet. Za prvé, Atom designy jsou vždy konečný stav: všechny proměnné jsou globální a deklarované v době kompilace a dynamická alokace paměti není povoleno. Za druhé, Atom neposkytuje žádné funkce ani smyčkové konstrukce. Místo toho jsou aktualizace proměnných stavu čisté kombinační funkce současného stavu.

Reference

  1. ^ ANN: Atom - ještě další Haskell HDL
  2. ^ A b C Syntéza popisů hardwaru zaměřeného na provoz James C. Hoe a Arvind. Mezinárodní konference o navrhování podporovaném počítačem (ICCAD), listopad 2000.
  3. ^ „Ovládání hybridních vozidel pomocí Haskell“. Archivovány od originál dne 4. 7. 2008. Citováno 2009-12-05.
  4. ^ ANN: atom-0.0.2

externí odkazy