Advertisement

Compilation of Programs

  • Abdoulaye Gamatié
Chapter

Abstract

This chapter focuses on the combination of the  ∕ 3 encoding and the conditional dependency graph, presented in Chap. 8, to analyze programs during the compilation phase, referred to as clock calculus, and to automatically generate a corresponding optimized executable code, guaranteed to be correct by construction with respect to the functional properties of the programs considered. Section 9.1 indicates the different aspects that are addressed during the compilation of Signal programs. Only the most specific aspects are detailed in this chapter. Section 9.2 first presents simple, yet typical program analyses in a very pragmatic way. These analyses take advantage of the  ∕ 3 encoding to manipulate clocks and reason on their properties. Then, Sect. 9.3 deals with the characterization of Signal programs regarding the monoclock and multiclock implementation models, based on the associated clock information. Finally, Sect. 9.4 briefly explains how this information is used for the code generation process.

Open image in new window

Keywords

Master Clock Clock Constraint Clock Tree Merging Operator Synchronous Language 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Amagbégnon P, Besnard L, Le Guernic P (1995) Implementation of the data-flow synchronous language Signal. In: ACM Conference on Programming Language Design and Implementation (PLDI’95), pp 163–173Google Scholar
  2. 2.
    Amagbégnon TP (1995) Forme canonique arborescente des horloges de Signal. PhD thesis, Université de Rennes I, IFSIC, France (document in French)Google Scholar
  3. 3.
    Benveniste A, Berry G (1991) The Synchronous approach to reactive and real-time systems. Proceedings of the IEEE 79(9):1270–1282CrossRefGoogle Scholar
  4. 4.
    Besnard L (1992) Compilation de Signal : horloges, dépendances, environnement. PhD thesis, Université de Rennes I, IFSIC, France (document in French)Google Scholar
  5. 5.
    Besnard L, Gautier T, Le Guernic P (2008) Signal v4 – Inria Version: Reference Manual. Available at: http://www.irisa.fr/espresso/Polychrony
  6. 6.
    Chéron B (1991) Transformations syntaxiques de Programmes Signal. PhD thesis, Université de Rennes I, IFSIC, France (document in French)Google Scholar
  7. 7.
    Dutertre B (1992) Spécification et preuve de systèmes dynamiques. PhD thesis, Université de Rennes I, IFSIC, France (document in French)Google Scholar
  8. 8.
    Besnard L, Gautier T, Talpin J-P (2009) Code Generation Strategies in the Polychrony Environment. Research report number 6894, INRIA. Available at: http://hal.inria.fr/ docs/00/37/24/12/PDF/RR-6894.pdf
  9. 9.
    Gautier T (1984) Conception d’un langage flot de données pour le temps réel. PhD thesis, Université de Rennes I, IFSIC, France (document in French)Google Scholar
  10. 10.
    Gautier T, Le Guernic P (1999) Code Generation in the Sacres Project. In: Safety-critical Systems Symposium, SSS’99. Springer, Huntingdon, UKGoogle Scholar
  11. 11.
    Nebut M (2003) An overview of the Signal clock calculus. In: Synchronous Languages, Applications, and Programming (SLAP’03). Electronic Notes in Theoretical Computer Science, Porto, Portugal 88:39–54Google Scholar

Copyright information

© Springer-Verlag New York 2010

Authors and Affiliations

  1. 1.CNRS - UMR 8022 (LIFL)INRIA Lille - Nord Europe Parc scientifique de la Haute BorneVilleneuve d’AscqFrance

Personalised recommendations