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