ComputingComputer ScienceComputer SystemsProgramming LanguagesReal-time SystemsSystems ProgrammingComputational ModelsSoftware DesignTemporal LogicAd Hoc NetworksGraphical User InterfacesParallel CompositionReactive ProgrammingReactive Routing ProtocolsReactive System ModelingReactive SystemsType Inference
We present ReactiveML, a programming language dedicated to the implementation of complex reactive systems as found in graphical user interfaces, video games or simulation problems. The language is based on the reactive model introduced by Boussinot. This model combines the so-called synchronous model found in Esterel which provides instantaneous communication and parallel composition with classical features found in asynchronous models like dynamic creation of processes.The language comes as a conservative extension of an existing call-by-value ML language and it provides additional constructs for describing the temporal part of a system. The language receives a behavioral semantics á la Esterel and a transition semantics describing precisely the interaction between ML values and reactive constructs. It is statically typed through a Milner type inference system and programs are compiled into regular ML programs. The language has been used for programming several complex simulation problems (e.g., routing protocols in mobile ad-hoc networks).
15
A theory of type polymorphism in programming
Robin Milner · Journal of Computer and System Sciences · 1978 · 2.2K citations · Full text
The Semantics of a Simple Language for Parallel Programming.
Gilles Kahn · IFIP Congress · 1974 · 2.1K citations
The synchronous languages 12 years later
Albert Benveniste, P. Caspi, Stephen A. Edwards et al. · Proceedings of the IEEE · 2003 · 932 citations · Full text
Basic category theory for computer scientists
Choice Reviews Online · 1992 · 393 citations
Functional reactive programming from first principles
Zhanyong Wan, Paul Hudak · 2000 · 211 citations · Full text