To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Atom (programming language)

From Wikipedia, the free encyclopedia

Atom
ParadigmFunctional, synchronous, reactive
FamilyHaskell
Designed byThomas Hawkins
First appeared2007; 16 years ago (2007)
Stable release
1.0.13 / November 13, 2021; 2 years ago (2021-11-13)
Typing disciplinestatic, strong
OSCross-platform
LicenseBSD3
Websitehackage.haskell.org/package/atom
Influenced by
Bluespec, Confluence, Haskell

Atom is a domain-specific language (DSL) in Haskell, for designing real-time embedded software.

YouTube Encyclopedic

  • 1/3
    Views:
    485 671
    82 013
    182 352
  • My Code Editor: Atom, Setup & Packages
  • Atom Editor Tutorials #1 - Installing Atom
  • Top 5 free IDE of 2016

Transcription

History

Originally intended as a 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.[1] Inspired by TRS[2] 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, Atom's main objective is 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,[2] Atom reduced maximizing execution concurrency to a feedback arc set optimization of a rule-data dependency graph. This process was similar to James Hoe's original algorithm.[2]

When Atom's author switched careers in late 2007, from logic design to embedded system software engineering, Atom was redesigned from an HDL to a domain-specific language targeting hard real-time computing embedded applications. As a result, Atom's compiler's main objective changed from maximizing rule concurrency to balancing processing load and minimizing worst case timing latency. In September 2008, Atom was presented at the Commercial Users of Functional Programming (CUFP) conference.[3] In April 2009, in its new form, it was released as FOSS.[4]

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 use, simplifying worst case execution time analysis for applications that need hard realtime performance. Atom's concurrency model is that of guarded atomic actions, which eliminates the need for, and the problems of using, mutex locks.

By removing runtime task scheduling and mutex locking, two services traditionally served by a real-time operating system (RTOS), Atom can eliminate the need and overhead of an RTOS in embedded applications.

Limits

To provide guarantees of deterministic execution time and memory consumption, Atom places several restrictions on computing. First, Atom designs are always finite state: all variables are global and declared at compile time and dynamic memory allocation is disallowed. Second, Atom provides no function or looping constructs. Instead, state variable updates are pure combinational logic functions of the current state.

References

  1. ^ ANN: Atom: Yet another Haskell HDL (Report).
  2. ^ a b c Hoe, James C.; Arvind (November 2000). Synthesis of Operation-Centric Hardware Descriptions (PDF). International Conference on Computer Aided Design (ICCAD).
  3. ^ "Controlling Hybrid Vehicles with Haskell". Archived from the original on 2008-07-04. Retrieved 2009-12-05.
  4. ^ ANN: atom-0.0.2

External links

This page was last edited on 4 December 2023, at 22:45
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.