Skip to main content

Clocks as First Class Abstract Types

  • Conference paper
Embedded Software (EMSOFT 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2855))

Included in the following conference series:

Abstract

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 à 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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. André, C.: Representation and Analysis of Reactive Behaviors: A Synchronous Approach. In: CESA, Lille, July 1996, IEEE-SMC (2000), Available at www-mips.unice.fr/~andre/synccharts.html

  2. Ashcroft, E.A., Wadge, W.W.: Lucid, the data-flow programming language. Academic Press, London (1985)

    Google Scholar 

  3. Benveniste, A., LeGuernic, P., Jacquemot, C.: Synchronous programming with events and relations: the SIGNAL language and its semantics. Science of Computer Programming 16, 103–149 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  4. Berry, G.: Real time programming: Special purpose or general purpose languages. Information Processing 89, 11–17 (1989)

    Google Scholar 

  5. Berry, G., Gonthier, G.: The Esterel synchronous programming language, design, semantics, implementation. Science of Computer Programming 19(2), 87–152 (1992)

    Article  MATH  Google Scholar 

  6. Boulmé, S., Hamon, G.: Certifying Synchrony for free. In: Nieuwenhuis, R., Voronkov, A. (eds.) LPAR 2001. LNCS (LNAI), vol. 2250, p. 495. Springer, Heidelberg (2001); Short version of A clocked denotational semantics for Lucid-Synchrone in Coq, available as a Technical Report (LIP6) at http://www-spi.lip6.fr/lucid-synchrone

    Chapter  Google Scholar 

  7. Buck, J., Ha, S., Lee, E., Messerschmitt, D.: Ptolemy: A framework for simulating and prototyping heterogeneous systems. International Journal of computer Simulation (1994); special issue on Simulation Software Development

    Google Scholar 

  8. Caspi, P.: Clocks in dataflow languages. Theoretical Computer Science 94, 125–140 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  9. Caspi, P., Curic, A., Maignan, A., Sofronis, C., Tripakis, S., Niebert, P.: From Simulink to SCADE/Lustre to TTA: a layered approach for distributed embedded applications. In: LCTES 2003 (2003)

    Google Scholar 

  10. Caspi, P., Pouzet, M.: Synchronous Kahn Networks. In: ACM SIGPLAN International Conference on Functional Programming, Philadelphia, Pensylvania (May 1996)

    Google Scholar 

  11. Caspi, P., Pouzet, M.: Lucid Synchrone, a functional extension of Lustre (2001) (submitted to publication)

    Google Scholar 

  12. Colaço, J.-L., Pouzet, M.: Type-based Initialization of a Synchronous Data-flow Language. In: Synchronous Languages, Applications, and Programming. Electronic Notes in Theoretical Computer Science, vol. 65 (2002)

    Google Scholar 

  13. The coq proof assistant (2002), http://coq.inria.fr

  14. Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language lustre. Proceedings of the IEEE 79(9), 1305–1320 (1991)

    Article  Google Scholar 

  15. Kahn, G.: The semantics of a simple language for parallel programming. In: IFIP 74 Congress, North Holland, Amsterdam (1974)

    Google Scholar 

  16. Läufer, K., Odersky, M.: An extension of ML with first-class abstract types. In: ACM SIGPLAN Workshop on ML and its Applications, San Francisco, California, June 1992, pp. 78–91 (1992)

    Google Scholar 

  17. Leroy, X.: The Objective Caml system release 3.06. Documentation and user’s manual. Technical report, INRIA (2002)

    Google Scholar 

  18. Maraninchi, F., Rémond, Y.: Argos: an automaton-based synchronous language. Computer Languages (27), 61–92 (2001)

    Article  MATH  Google Scholar 

  19. Mauny, M., Pottier, F.: An implementation of Caml Light with existential types. Technical Report 2183, INRIA (October 1993)

    Google Scholar 

  20. Milner, R.: A theory of type polymorphism in programming. Journal of Computer and System Science 17, 348–375 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  21. Nowak, D., Beauvais, J.R., Talpin, J.P.: Co-inductive axiomatisation of synchronous language. In: Grundy, J., Newey, M. (eds.) TPHOLs 1998. LNCS, vol. 1479, pp. 387–399. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  22. Olendersky, L.: Private communication. In: Workshop Synchron, Toulon, France (December 2002)

    Google Scholar 

  23. Pouzet, M.: Lucid Synchrone, version 2. Tutorial and reference manual. Université Pierre et Marie Curie, LIP6 (Mai 2001), Distribution available at http://www-spi.lip6.fr/lucid-synchrone

  24. Reynolds, J.C.: Theories of Programming Languages. Cambridge University Press, Cambridge (1998)

    Book  MATH  Google Scholar 

  25. SCADE, http://www.esterel-technologies.com/scade/

  26. Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad-hoc. In: Conference Record of the 16th Annual ACM Symposium on Principles of Programming Languages, pp. 60–76. ACM, New York (1989)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Colaço, JL., Pouzet, M. (2003). Clocks as First Class Abstract Types. In: Alur, R., Lee, I. (eds) Embedded Software. EMSOFT 2003. Lecture Notes in Computer Science, vol 2855. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45212-6_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45212-6_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20223-3

  • Online ISBN: 978-3-540-45212-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics