Clocks as First Class Abstract Types

Clocks in synchronous data-flow languages are the natural way to define several time scales in reactive systems. They play a fundamental role during the specification of the system and are largely used in the compilation process to generate efficient sequential code. Based on the formulation of clocks as dependent types, the paper presents a simpler clock calculus reminiscent to ML type systems with first order abstract types a la Laufer & Odersky. Not only this system provides clock inference, it shares efficient implementations of ML type systems and appears to be expressive enough for many real applications.

[1]  X. Leroy The Objective Caml system release 3.09 Documentation and user''s manual , 2005 .

[2]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003 .

[3]  Paul Caspi Clocks in Dataflow Languages , 1992, Theor. Comput. Sci..

[4]  Damien Doligez,et al.  The Objective Caml system release 2.04 , 2002 .

[5]  Philip Wadler,et al.  How to make ad-hoc polymorphism less ad hoc , 1989, POPL '89.

[6]  Sylvain Boulmé,et al.  Certifying Synchrony for Free , 2001, LPAR.

[7]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[8]  Jean-Pierre Talpin,et al.  Co-inductive Axiomatization of a Synchronous Language , 1998, TPHOLs.

[9]  Marc Pouzet,et al.  Lucid Synchrone - version 2.0: Tutorial and reference manual , 2001 .

[10]  Marc Pouzet,et al.  Type-Based Initialisation Analysis of a Synchronous Data-Flow Language , 2002, Electron. Notes Theor. Comput. Sci..

[11]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[12]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[13]  Florence Maraninchi,et al.  Argos: an automaton-based synchronous language , 2001, Comput. Lang..

[14]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003, LCTES '03.

[15]  Marc Pouzet,et al.  Synchronous Kahn networks , 1996, ICFP '96.

[16]  Albert Benveniste,et al.  programmi language and its , 2001 .

[17]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[18]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[19]  Gérard Berry,et al.  Real Time Programming: Special Purpose or General Purpose Languages , 1989, IFIP Congress.

[20]  Michel Mauny,et al.  An Implementation of Caml-Light with existential types , 1994 .

[21]  Charles André Representation and Analysis of Reactive Behaviors: A Synchronous Approach , 2000 .

[22]  N. S. Barnett,et al.  Private communication , 1969 .

[23]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[24]  Peter Claussen Theories of programming languages , 2000, SOEN.

[25]  E. A. Ashcroft,et al.  LUCID: The data flow programming language , 1985 .