Atom (programming language)
Appearance
Paradigm | functional, synchronous, reactive |
---|---|
Designed by | Thomas Hawkins |
First appeared | 2007 |
Typing discipline | static, strong, inferred |
OS | portable |
License | BSD3 |
Website | http://hackage.haskell.org/package/atom/ |
Influenced by | |
Bluespec, Confluence, Haskell |
Atom is a domain-specific language (DSL) in Haskell, for designing real-time embedded software.
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 functions of the current state.