Atom (programming language): Difference between revisions

Content deleted Content added
m Bot: Removing category Category:Embedded systems which is already in Category:Real-time computing
m Cut needless carriage return whitespace characters in sections: standardize, aid edits via mobile devices.
Line 24:
 
== History ==
 
Originally intended as a high level [[hardware description language]], Atom was created in early 2007 and released in open-source of April of the same year.<ref>[http://www.haskell.org/pipermail/haskell-cafe/2007-April/024090.html ANN: Atom - Yet another Haskell HDL]</ref>
Inspired by TRS <ref name="hoe1">[http://www.ece.cmu.edu/~jhoe/distribution/2000/iccad00.pdf Synthesis of Operation-Centric Hardware Descriptions].
Line 38 ⟶ 37:
 
== Overview ==
 
Atom is a concurrent programming language intended for embedded applications. Atom features [[Compile time|compile-time]] [[Scheduling (computing)|task scheduling]] and generates code with deterministic execution time and memory consumption, simplifying [[worst case execution time]] analysis for applications that require hard realtime performance. Atom's concurrency model is that of [[Atomic action|guarded atomic actions]], which eliminates the need for, and the [[Lock (computer science)#The problems with locks|problems]] of using, [[Lock (computer science)|mutex locks]].
 
Line 44 ⟶ 42:
 
== Examples ==
 
{{Empty section|date=July 2010}}
 
== Limitations ==
 
To provide guarantees of deterministic execution time and memory consumption, Atom places several restrictions on computation. First, Atom designs are always finite state: all variables are global and declared at compile time and [[dynamic memory allocation]] is not allowed. Second, Atom provides no function or looping constructs. Instead state variable updates are pure [[Combinational logic|combinational functions]] of the current state.
 
== References ==
 
{{reflist}}