Content deleted Content added
Jerryobject (talk | contribs) m Cut needless carriage return whitespace characters in sections: standardize, aid edits via mobile devices. |
Jerryobject (talk | contribs) Adds: Template:Start date and age, Template:URL, Template:Official website, Template:GitHub. Template:Infobox programming language, WP:REFerence WP:CITation parameters: updates, reorders. WP:LINKs: updates, adds, fix needless WP:PIPEs (WP:NOPIPEs) for WP:EASTEREGGs WP:LEAST. WP:COPYEDITs WP:EoS WP:TERSE. Cut needless carriage returns in paragraphs: aid edits via mobile devices. MOS:FIRSTABBReviation define before WP:ABBR. |
||
Line 1:
{{
{{Infobox programming language
| name
| logo
| paradigm
▲| designer = Thomas Hawkins
| released = {{Start date and age|2007}}
▲| developer =
| latest release version = 1.0.13
| latest release date = {{Start date and age|2021|11|13}}
▲| typing = [[static typing|static]], [[strong typing|strong]]
▲| implementations =
|
▲| dialects =
| operating system = [[Cross-platform software|Cross-platform]]
▲| influenced =
| license = [[BSD licenses|BSD]]3
▲| influenced_by = [[Bluespec, Inc.|Bluespec]], Confluence, [[Haskell (programming language)|Haskell]]
▲| website = http://hackage.haskell.org/package/atom/
▲| file ext =
}}
'''Atom''' is a [[___domain-specific language]] (DSL) in [[Haskell (programming language)|Haskell]], for designing [[Real-time computing|real-time]] [[
== History ==
Originally intended as a [[high-level programming language|high-level]] [[hardware description language]] (HDL), Atom was created in early 2007 and released as [[free and open-source software]] (FOSS) of April of that year.<ref>{{Cite report |url=http://www.haskell.org/pipermail/haskell-cafe/2007-April/024090.html |title=ANN: Atom: Yet another Haskell HDL}}</ref> Inspired by TRS<ref name="hoe1">{{Cite conference |last1=Hoe |first1=James C. |author2=Arvind |author2-link=Arvind (computer scientist) |date=November 2000 |url=http://www.ece.cmu.edu/~jhoe/distribution/2000/iccad00.pdf |title=Synthesis of Operation-Centric Hardware Descriptions |conference=International Conference on Computer Aided Design (ICCAD)}}</ref> and [[Bluespec]], Atom [[Compiler|compiled]] circuit descriptions, that were based on guarded [[Linearizability|atomic operations]], or conditional term [[rewriting]], into [[Verilog]] [[netlist]]s for simulation and [[logic synthesis]]. As a hardware compiler, Atom's main objective is to maximize the number of operations, or rules, that can execute in a given [[Clock signal#Digital circuits|clock cycle]] without violating the semantics of atomic operation. By employing the properties of conflict-free and sequentially composable rules,<ref name="hoe1"/> Atom reduced maximizing execution [[Concurrency (computer science)|concurrency]] to a [[feedback arc set]] optimization of a rule-data dependency graph. This process was similar to [[James Hoe]]'s original algorithm.<ref name="hoe1"/>
When Atom's author switched careers in late 2007, from logic design to [[Embedded systems|embedded software]] engineering, Atom was redesigned from an HDL to a [[___domain specific language]] targeting [[Realtime computing|hard realtime]] embedded applications. As a result, Atom's compiler's main objective changed from maximizing rule concurrency to balancing processing load and minimizing [[Worst case execution time|worst case timing latency]]. In September 2008, Atom was presented at the Commercial Users of Functional Programming (CUFP) conference.<ref>{{Cite web |url=http://cufp.galois.com/2008/schedule.html |title=Controlling Hybrid Vehicles with Haskell |url-status=dead |archive-url=https://web.archive.org/web/20080704175648/http://cufp.galois.com/2008/schedule.html |archive-date=2008-07-04 |access-date=2009-12-05}}</ref> In April 2009, in its new form, it was released as FOSS.<ref>[http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html ANN: atom-0.0.2]</ref>
== Overview ==
Atom is a concurrent programming language intended for embedded applications.
By removing [[
== Examples ==
{{Empty section|date=July 2010}}
==
To provide guarantees of deterministic execution time and memory consumption, Atom places several restrictions on
== References ==
{{
== External links ==
*{{Official website|hackage.haskell.org/package/atom}}
*{{GitHub|tomahawkins/atom.git}}
[[Category:Declarative programming languages]]
|