SIGNAL: A declarative language for synchronous programming of real-time systems

  • Thierry Gautier
  • Paul Le Guernic
  • Loïc Besnard
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 274)


We present an applicative language, SIGNAL, designed to program real-time systems. The language is based on a synchronous notion of time. We assume the execution of operations to have a zero logical time duration; then, the sequence of communication events determines entirely a temporal reference. The ordering of the runable operations is limited only by the dependencies between the calculi : this is the point of view of data flow languages. SIGNAL is a data flow language (where the potential parallelism is implicit), which permits a structural description of interconnected processes. SIGNAL handles possibly infinite sequences of values (called signals) characterized by an implicit clock which specifies the relative instants (with respect to other signals) at which these values are available. Specific operators, such as delay, undersampling, deterministic merge, are designed to express temporal relations between different signals : in this way, a SIGNAL program expresses both functional and temporal relationships between all the involved signals. The language is semantically sound, and its declarative style allows to derive, by a simple projection on the commutative field Z/3Z, a complete static calculus of the timing of any SIGNAL process, called its clock calculus. Hence, the language SIGNAL is also a formal system to reason about timing and concurrency. The clock calculus is completed together with the dependency analysis of a given program. This leads to a conditional dependence graph in which the edges may be labelled by the involved clocks. From this graph, we generate code for a sequential machine, but it appears to be the suitable level to study the implementation on a multiprocessor architecture.


Input Port Synchronous System Language Signal Signal Program Multiprocessor Architecture 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    Reference Manual for the ADA Programming Language; U.S. Department of Defense, 1983.Google Scholar
  2. [2]
    Manuel officiel de référence LTR 3 (indice 2); CELAR, Bruz, July 1985.Google Scholar
  3. [3]
    OCCAM Programming Manual; INMOS Limited, 1983.Google Scholar
  4. [4]
    C.A.R. HOARE: Communicating Sequential Processes; Comm. of the ACM 21 (8), August 1978, 666–677.Google Scholar
  5. [5]
    G. BERRY, L. COSSERAT: The ESTEREL Synchronous Programming Language and its Mathematical Semantics; Seminar on Concurrency, July 1984, S.D. Brookes, A.W. Roscoe and G. Winskel, editors, Lect. Notes in Computer Science, 197, Springer Verlag, 1985, 389–448.Google Scholar
  6. [6]
    P. LE GUERNIC, A. BENVENISTE, P. BOURNAI, T. GAUTIER: SIGNAL: a data flow oriented language for signal processing; INRIA, Rennes, Research Report no 378, March 1985.Google Scholar
  7. [7]
    P. LE GUERNIC, A. BENVENISTE: Real-Time, Synchronous, Data-Flow Programming: the Language SIGNAL and its Mathematical Semantics; INRIA, Rennes, Research Report no 533, June 1986.Google Scholar
  8. [8]
    P. CASPI, N. HALBWACHS, D. PILAUD, J.A. PLAICE: LUSTRE: A declarative language for programming synchronous systems; 14th ACM Symp. on Principles of Programming Languages, Munich, January 1987.Google Scholar
  9. [9]
    W.W. WADGE, E.A. ASHCROFT: Lucid, the Dataflow Programming Language; Academic Press U.K., 1985.Google Scholar
  10. [10]
    A. BENVENISTE, P. LE GUERNIC: A denotational theory of synchronous communicating systems; IRISA, Rennes, Research Report no 360, May 1987.Google Scholar
  11. [11]
    S.J. YOUNG: Real time languages: design and development; Elis Horwood publ., 1982.Google Scholar
  12. [12]
    G. KAHN: The semantics of a simple language for parallel programming; Information Processing 74, J.L. Rosenfeld, editor, North-Holland, 1974, 471–475.Google Scholar
  13. [13]
    D. HAREL, A. PNUELI: On the Development of Reactive Systems; Logics and Models of Concurrent Systems, NATO ASI Series, Vol. F13, Springer-Verlag, 1985, 477–498.Google Scholar
  14. [14]
    T. GAUTIER, P. LE GUERNIC, A. BENVENISTE, P. BOURNAI: Programming real-time with events and data flow; Information Processing 86, Proceedings of the IFIP 10th World Computer Congress, September 1986, H.-J. Kugler, editor, North-Holland, 1986, 469–498.Google Scholar
  15. [15]
    B. LE GOFF, P. LE GUERNIC: Granules' help to sharing out a data flow graph over multiprocessor hardware; forthcoming paper.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Thierry Gautier
    • 3
    • 1
  • Paul Le Guernic
    • 3
  • Loïc Besnard
    • 3
    • 2
  1. 1.IRISA/INRIAFrance
  2. 2.CICB/CNRSFrance
  3. 3.Campus de BeaulieuRennes CédexFrance

Personalised recommendations