Synchronous programming language
Encyclopedia
A synchronous programming language is a computer
programming
language
optimized for programming reactive systems, systems that are often interrupted and must respond quickly. Many such systems are also called realtime
systems, and are found often in embedded uses
. 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
paradigm
supported by synchronous programming languages.
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
- AtomAtom (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 HaskellHaskell (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) - AverestAverestAverest 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....
- ChucKChucKChucK 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) - EsterelEsterelEsterel 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...
- LabVIEWLabVIEWLabVIEW 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
- LustreLustre programming languageLustre 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...
- PLEXILPLEXILPLEXIL 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
- SyncChartsSyncChartsSyncCharts 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 Synchronous group
- The SIGNAL programming language
- Unification of Synchronous and Asynchronous Models for Parallel Programming Languages -- Proposes parallel languages based on CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, lets programmers specify and manage parallelism on a broad range of computer architectures.