Travail personnel
Transcription
Travail personnel
Travail personnel Dans le cadre du contrôle continu du cours, il vous est demandé de réaliser un travail de synthèse d’un ou deux articles. Vous devrez rédiger un rapport court (entre 5 et 10 pages) présentant et illustrant le problème considéré et les solutions proposées dans les documents à lire. Certains de ces documents sont accessibles dans le répertoire www.di.ens.fr/~pouzet/cours/mpri/devoirs, les autres étant accessibles sur le web. Vous pourrez, si vous l’estimez nécessaire, compléter ces lectures par d’autres articles cités en référence. Dans ce dernier cas, pensez à l’indiquer dans votre rapport. Ce travail est à rendre pour le 15 décembre 2011. Vérifications de programmes synchrones en présence de contraintes arithmétiques Techniques de vérification par interprétation abstraite de propriétés numériques pour les programmes synchrones. Articles à lire [13, 12, 11] ou la thèse de Bertrand Jeannet [14]. Le modèle Quasi-synchrone Le modèle quasi-synchrone permet de faire communiquer des systèmes asynchrones sans mécanisme de synchronisation globale: des processus échantillonnés sur des horloges non synchronisées communiquent par mémoire partagée. C’est un mécanisme très robuste dès lors que les horloges “ne divergent pas trop”. Ce type de communiation est utilisée dans de nombreux domaines (avionique, en particulier). Vous devrez faire la synthèse du “Cooking Book” de Caspi [6]. Ces idées sont a l’origine de nombreux autres travaux. Lire, par exemple, l’article de Caspi & Benveniste [5]. Génération de code pour un OS temps-réel A partir d’une spécification synchrone, on étudie le problème de la génération de code s’exécutant sur une OS temps réel multi-tâche en garantissant le respect de la sémantique synchrone initiale. Plusieurs techniques ont été développées, dont celle de Caspi et al. dans le cas de Lustre. Lire l’article [7]. La théorie des circuits insensibles aux délais et élastiques Le modèle “Latency-insensitive designs” (LID) a été introduit par Carloni & all pour développer des systèmes insensibles aux délais de transmission [4]. Le modèle des circuits élastiques permet de concevoir des circuits insensibles aux délais. C’est un cas d’étude de systèmes insensibles aux délais. Article à lire (au minimum): [15]. 1 Langages fonctionnels pour le hardware De nombreuses expériences de modélisations de circuits synchrones ont été réalisés dans des langages fonctionnels. Elles ont été obtenues en définissant des librairies au dessus d’un langage existant. Article à lire [3] et distribution de Lava. Automates synchrones hiérarchiques Un langage dataflow tel que Lustre peut être étendu avec de nouvelles constructions pour décrire des automates et autres structures impératives. Ces constructions sont intégrées a SCADE6. L’idée des automates de modes a été introduite par Maraninchi et al. [18]. La solution retenue pour SCADE est décrite dans l’article de Colaço et al. [10]. ReactiveML F. Boussinot a introduit proposé de relacher la contrainte de réaction instantanée à l’absence pour éliminer les problèmes de causalité. C’est l’origine de ce qu’il a appelé l”’approche réactive”. Le langage ReactiveML est basé sur ce principe en en proposant un plongement dans le langage fonctionnel Objective Caml. Document de thèse de Louis Mandel [16] (disponible sur sa page web). Esterel et Gotos Afin d’expliquer les phénomènes de réincarnation et de compilation, Olivier Tardieu revisite la sémantique d’Esterel en introduisant une instruction de branchement. Articles à lire [22, 20, 23] ou, beaucoup mieux, sa thèse [21]. Une extension hybride des langages synchrones On s’intéresse ici à la sémantique des modeleurs hybrides (e.g., Simulink et Modelica) qui permettent de combiner des systèmes à temps discret et à temps continu. Malheureusement, ces outils n’ont pas de base sémantique claire, les rendant difficiles à analyser et à vérifier formellement. Des travaux récents d’Edward Lee (Berkeley), de Paul Caspi (VERIMAG) et Albert Benveniste montrent comment simuler des systèmes à temps continu dans un cadre synchrone. Des travaux de Benveniste et al. prososent d’utiliser l’analyse non-standard comme sémantique des systèmes hybride, utilisée ensuite pour définir un langage synchrone hybride. Vous pourrez lire les articles [1] pour les aspects typage et compilation; l’article [2] pour la sémantique. Les systèmes N -synchrones Le modèle N -synchrone est une extension du modèle synchrone dans lequel les processus communiquent à travers des buffers et dont la taille est calculée 2 automatiquement durant la compilation. Cette extension est particulièrement utile dans les applications de calcul de flux (e.g., calcul vidéo dans une TV). Vous pouvez lire la thèse de Florence Plateau [19] et/ou les articles [8, 9, 17]. Les propriétés algébriques et preuves en Coq sont décrites dans [9] et [17]. References [1] Albert Benveniste, Timothy Bourke, Benoit Caillaud, and Marc Pouzet. Divide and recycle: types and compilation for a hybrid synchronous language. In ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’11), Chicago, USA, April 2011. [2] Albert Benveniste, Timothy Bourke, Benoit Caillaud, and Marc Pouzet. Non-Standard Semantics of Hybrid Systems Modelers. Journal of Computer and System Sciences (JCSS), Special issue in honor of Amir Pnueli, 2011. Accepted for publication. [3] Per Bjesse, Koen Claessen, Mary Sheeran, and Satnam Singh. Lava: Hardware Design in Haskell. In International Conference on Functional Programming (ICFP). ACM, 1998. [4] L.P. Carloni, K.L. McMillan, and A.L. Sangiovanni-Vincentelli. Theory of latency-insensitive design. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2001. [5] P. Caspi and A. Benveniste. Time-robust discrete control over networked loosely time-triggered architectures. In Proc. of 2008 IEEE Control and Decision Conference, Cancun, Dec 2008. [6] Paul Caspi. The Quasi-Synchronous Approach to Distributed Control System Design, Crisys ”Cooking Book”. Crisys preliminary draft, 2000. [7] Paul Caspi, Norman Scaife, Christos Sofronis, and Stavros Tripakis. Semantics-preserving multitask implementation of synchronous programs. ACM Trans. Embed. Comput. Syst., 7(2):1–40, 2008. [8] Albert Cohen, Marc Duranton, Christine Eisenbeis, Claire Pagetti, Florence Plateau, and Marc Pouzet. N -Synchronous Kahn Networks: a Relaxed Model of Synchrony for Real-Time Systems. In ACM International Conference on Principles of Programming Languages (POPL’06), Charleston, South Carolina, USA, January 2006. [9] Albert Cohen, Louis Mandel, Florence Plateau, and Marc Pouzet. Abstraction of Clocks in Synchronous Data-flow Systems. In The Sixth ASIAN Symposium on Programming Languages and Systems (APLAS), Bangalore, India, December 2008. 3 [10] Jean-Louis Colaço, Bruno Pagano, and Marc Pouzet. A Conservative Extension of Synchronous Data-flow with State Machines. In ACM International Conference on Embedded Software (EMSOFT’05), Jersey city, New Jersey, USA, September 2005. [11] N. Halbwachs. About synchronous programming and abstract interpretation. In B. LeCharlier, editor, International Symposium on Static Analysis, SAS’94, Namur (belgium), September 1994. LNCS 864, Springer Verlag. http://www-verimag.imag.fr/Publications-Synchrones.html. [12] N. Halbwachs, Y.E. Proy, and P. Roumanoff. Verification of real-time systems using linear relation analysis. Formal Methods in System Design, 11(2):157–185, August 1997. http://www-verimag.imag.fr/Publications-Synchrones.html. [13] B. Jeannet, N. Halbwachs, and P. Raymond. Dynamic partitioning in analyses of numerical properties. In Static Analysis Symposium, SAS’99, Venezia (Italy), September 1999. http://www-verimag.imag.fr/Publications-Synchrones.html. [14] Bertrand Jeannet. Partitionnement Dynamique dans l’Analyse de Relations Linéaires et Application à la Vérification de Programmes Synchrones. PhD thesis, Institut National Polytechnique de Grenoble, september 2000. [15] Sava Krstic, Jordi Cortadella, Mike Kishinevsky, and John O’Leary. Synchronous elastic networks. In FMCAD ’06: Proceedings of the Formal Methods in Computer Aided Design, pages 19–30, Washington, DC, USA, 2006. IEEE Computer Society. [16] Louis Mandel. Conception, Sémantique et Implantation de ReactiveML : un langage à la ML pour la programmation réactive. PhD thesis, Université Paris 6, 2006. [17] Louis Mandel, Florence Plateau, and Marc Pouzet. Lucy-n: a nSynchronous Extension of Lustre. In 10th International Conference on Mathematics of Program Construction (MPC’10), Manoir St-Castin, Québec, Canada, June 2010. Springer LNCS. [18] F. Maraninchi and Y. Rémond. Mode-automata: About modes and states for reactive systems. In European Symposium On Programming, Lisbon (Portugal), March 1998. Springer verlag. [19] Florence Plateau. Modèle n-synchrone pour la programmation de réseaux de Kahn à mémoire bornée. PhD thesis, Université Paris-Sud 11, Orsay, France, 6 janvier 2010. [20] Olivier Tardieu. Goto and Concurrency: Introducing Safe Jumps in Esterel. In Synchronous Languages, Applications, and Programming, Barcelona, Spain, March 2004. 4 [21] Olivier Tardieu. Loops in Esterel: from Operational Semantics to Formally Specified Compilers. PhD thesis, Ecole des Mines de Paris, september 2004. [22] Olivier Tardieu and Robert de Simone. Instantaneous Termination in Pure Esterel. In Static Analysis Symposium, San Diego, USA, June 2003. [23] Olivier Tardieu and Robert de Simone. Curing Schizophrenia by Program Rewriting in Esterel. In Methods and Models for Codesign, San Diego, USA, June 2004. 5