F. Mallet, PR

Programmation Synchrone

Le cours offre une introduction à la programmation synchrone en mélangeant les approches déclaratives, flots de données ou basées sur les états.

Description

  • Paradigme synchrone
    • Styles : Flots de données, états hiérarchiques, par contraintes ;
    • Lustre : type, analyse de causalité, tableaux, recursivité ;
    • Horloge logique et Horloge de Lamport ;
    • Système multi-horloge.
  • En pratique
    • Compilation vers C;
    • Simulation (avec Luciole);
    • Vérification (avec Lesar).
  • Temps logique vs. Temps Physique

Modalités de contrôle des connaissances

  • 1 TP noté - Lustre (25%)
  • 1 TP noté - BDD (25%)
  • 1 examen écrit (50%)

Supports

  1. Berry, G. and Gonthier, G. 1992. The Esterel Synchronous Programming Language: Design, Semantics, Implementation. Sci. Comput. Program. 19, 2, 87–152. DOI: 10.1016/0167-6423(92)90005-V
  2. Berry, G. and Cosserat, L. 1984. The Esterel synchronous programming language and its mathematical semantics. INRIA. https://hal.inria.fr/inria-00076230
  3. Harel, D. and Pnueli, A. 1984. On the Development of Reactive Systems. Logics and Models of Concurrent Systems, Springer, 477–498. DOI: 10.1007/978-3-642-82453-1_17
  4. Colaço, J.-L., Pagano, B., and Pouzet, M. 2017. SCADE 6: A formal language for embedded critical software development (invited paper). 11th International Symposium on Theoretical Aspects of Software Engineering, TASE 2017, IEEE Computer Society, 1–11. DOI: 10.1109/TASE.2017.8285623
  5. Berry, G. 2007. Circuit design and verification with Esterel v7. IW. on High Level Design Validation and Test, HLDVT’07, IEEE Computer Society, 133–136. DOI: 10.1109/HLDVT.2007.4392800
  6. André, C. 1996. Representation and Analysis of Reactive Behaviors: A Synchronous Approach. CESA’96.
  7. Maraninchi, F. 1992. Operational and Compositional Semantics of Synchronous Automaton Compositions. CONCUR ’92, 3rd IC. on Concurrency Theory, Springer, 550–564. DOI: 10.1007/BFb0084815
  8. Caspi, P., Pilaud, D., Halbwachs, N., and Plaice, J. 1987. Lustre: A Declarative Language for Programming Synchronous Systems. 14th Annual ACM Symposium on Principles of Programming Languages, ACM Press, 178–188. DOI: 10.1145/41625.41641
  9. Le Guernic, P., Benveniste, A., Bournai, P., and Gautier, T. 1986. Signal-A data flow-oriented language for signal processing. IEEE Trans. Acoust. Speech Signal Process. 34, 2, 362–374. DOI: 10.1109/TASSP.1986.1164809