Synchronous programming language
Encyclopedia
A synchronous programming language is a computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...

 programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 optimized for programming reactive systems, systems that are often interrupted and must respond quickly. Many such systems are also called realtime
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...

 systems, and are found often in embedded uses
Embedded system
An embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...

. The term 'reactive' is chosen to avoid ambiguities that occur sometimes when using the term 'realtime'. They are of growing importance.

Synchronous Programming (also Synchronous reactive programming or SRP) is a computer programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 paradigm
Programming paradigm
A programming paradigm is a fundamental style of computer programming. Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation A programming paradigm is a fundamental style of computer programming. (Compare with a...

 supported by synchronous programming languages.

Synchronous languages

  • Argos
  • Atom
    Atom (programming language)
    Atom is a domain-specific language in Haskell, for designing real-time embedded software.- 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.Inspired by TRS and Bluespec, Atom compiled...

     (a DSL in Haskell
    Haskell (programming language)
    Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...

     for hard realtime embedded programming)
  • Averest
    Averest
    Averest is a synchronous programming language and set of tools to specify, verify, and implement reactive systems. It includes a compiler for synchronous programs, a symbolic model checker, and a tool for hardware/software synthesis....

  • ChucK
    ChucK
    ChucK is a concurrent, strongly timed audio programming language for real-time synthesis, composition, and performance, which runs on Mac OS X, Linux, Microsoft Windows, and iPhone/iPad. It is designed to favor readability and flexibility for the programmer over other considerations such...

     (a synchronous reactive programming language for audio)
  • Esterel
    Esterel
    Esterel is a synchronous programming language for the development of complex reactive systems. The imperative programming style of Esterel allows the simple expression of parallelism and preemption...

  • LabVIEW
    LabVIEW
    LabVIEW is a system design platform and development environment for a visual programming language from National Instruments. LabVIEW provides engineers and scientists with the tools needed to create and deploy measurement and control systems.The graphical language is named "G"...

  • LEA
  • Lustre
    Lustre programming language
    Lustre is a formally defined, declarative, and synchronous dataflow programming language for programming reactive systems. It began as a research project in the early 1980s. In 1993 it progressed to practical, industrial use in a commercial product as the core language of the industrial environment...

  • PLEXIL
    PLEXIL
    PLEXIL is an open source technology for automation, created and currently in development by NASA.-Overview:PLEXIL is a programming language for representing plans for automation....

  • SIGNAL (a dataflow-oriented synchronous language enabling multi-clock specifications)
  • SOL
  • SyncCharts
    SyncCharts
    SyncCharts is a graphical formalism dedicated to reactive system modeling. It allows specifying the reactive behavior, and the synchronous programming, of applications. SyncCharts is the name of the model. A syncChart is an instance. This language was created by Prof...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK