Back

ⓘ Atom, programming language. Originally intended as a high level hardware description language, Atom was created in early 2007 and released in open-source of Apr ..




Atom (programming language)
                                     

ⓘ Atom (programming language)

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. Inspired by TRS and Bluespec, Atom compiled circuit descriptions, that were based on guarded atomic operations, or conditional term rewriting, into Verilog netlists for simulation and logic synthesis. As a hardware compiler, Atoms primary objective was to maximize the number of operations, or rules, that can execute in a given clock cycle without violating the semantics of atomic operation. By employing the properties of conflict-free and sequentially composable rules, Atom reduced maximizing execution concurrency to a feedback arc set optimization of a rule-data dependency graph. This process was similar to James Hoes original algorithm.

When Atoms author switched careers in late 2007 from logic design to embedded software engineering, Atom was redesigned from an HDL to a domain specific language targeting hard realtime embedded applications. As a result, Atoms compilers primary objective changed from maximizing rule concurrency to balancing processing load and minimizing worst case timing latency. In September 2008, Atom was presented at CUFP, and in April 2009, was released as open-source in its new form.

                                     

1. Overview

Atom is a concurrent programming language intended for embedded applications. Atom features compile-time 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. Atoms concurrency model is that of guarded atomic actions, which eliminates the need for, and the problems of using, mutex locks.

By removing run-time task scheduling and mutex locking - two services traditionally served by an RTOS - Atom can eliminate the need and overhead of an RTOS in embedded applications.

                                     

2. 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.

                                     
  • Logic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences
  • Dart is a client - optimized programming language for apps on multiple platforms. It is developed by Google and is used to build mobile, desktop, backend
  • function - level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on programs as mathematical
  • COWSEL COntrolled Working SpacE Language is a programming language designed between 1964 and 1966 by Robin Popplestone. It was based on an RPN form
  • and unlike many other programming languages Prolog is intended primarily as a declarative programming language the program logic is expressed in terms
  • the Atom which allowed users to switch between Atom BASIC and the more advanced BASIC used by the BBC Micro. The upgrade was purely to the programming language
  • Julia is a high - level, high - performance, dynamic programming language While it is a general purpose language and can be used to write any application, many
  • agent programming language for programming cognitive agents. GOAL agents derive their choice of action from their beliefs and goals. The language provides
  • Object - oriented programming OOP is a programming paradigm based on the concept of objects which can contain data, in the form of fields often known
  • Agda is a dependently typed functional programming language originally developed by Ulf Norell at Chalmers University of Technology with implementation
  • never to use. That new language is the language of atomic warfare. The United States then launched an Atoms for Peace program that supplied equipment
  • Atom Squad was an American science - fiction TV series that was broadcast live 5 times a week by the NBC network out of their Philadelphia studios Monday

Users also searched:

...
...
...