Vérification de la génération modulaire du code impératif pour Lustre - Archive ouverte HAL
Communication Dans Un Congrès Année : 2017

Vérification de la génération modulaire du code impératif pour Lustre

Résumé

Les langages synchrones sont utilisés pour programmer des logiciels de contrôle-commande d'applications critiques. Le langage Scade, utilisé dans l'industrie pour ces applications, est fondé sur le langage Lustre introduit par Caspi et Halbwachs. On s'intéresse ici à la formalisation et la preuve, dans l'assistant de preuve Coq, d'une étape clef de la compilation : la traduction de programmes Lustre vers des programmes d'un langage impératif. Le défi est de passer d'une sémantique synchrone flot de données, où un programme manipule des flots, à une sémantique impérative, où un programme manipule la mémoire de façon séquentielle. Nous spécifions et vérifions un générateur de code simple qui gère les traits principaux de Lustre : l'échantillonnage, les noeuds et les délais. La preuve utilise un modèle sémantique intermédiaire qui mélange des traits flot de données et impératifs et permet de définir un invariant inductif essentiel. Nous exploitons la formalisation proposée pour vérifier une optimisation classique qui fusionne des structures conditionnelles dans le code impératif généré.
Fichier principal
Vignette du fichier
bourke (1).pdf (616.5 Ko) Télécharger le fichier
Rustre.Common.html (152.52 Ko) Télécharger le fichier
Rustre.Correctness.IsPresent.html (34.1 Ko) Télécharger le fichier
Rustre.Correctness.MemoryCorres.html (138.65 Ko) Télécharger le fichier
Rustre.Correctness.Proper.html (46.13 Ko) Télécharger le fichier
Rustre.Correctness.html (556.21 Ko) Télécharger le fichier
Rustre.Dataflow.Clocking.Parents.html (36.93 Ko) Télécharger le fichier
Rustre.Dataflow.Clocking.Properties.html (30.92 Ko) Télécharger le fichier
Rustre.Dataflow.Clocking.html (57.43 Ko) Télécharger le fichier
Rustre.Dataflow.IsDefined.Decide.html (34.1 Ko) Télécharger le fichier
Rustre.Dataflow.IsDefined.html (41.25 Ko) Télécharger le fichier
Rustre.Dataflow.IsFree.Decide.html (109.46 Ko) Télécharger le fichier
Rustre.Dataflow.IsFree.html (35.31 Ko) Télécharger le fichier
Rustre.Dataflow.IsVariable.Decide.html (32.52 Ko) Télécharger le fichier
Rustre.Dataflow.IsVariable.html (39.65 Ko) Télécharger le fichier
Rustre.Dataflow.MemSemantics.html (222.93 Ko) Télécharger le fichier
Rustre.Dataflow.Memories.html (19.99 Ko) Télécharger le fichier
Rustre.Dataflow.NoDup.html (35.29 Ko) Télécharger le fichier
Rustre.Dataflow.Ordered.html (68.82 Ko) Télécharger le fichier
Rustre.Dataflow.Semantics.html (323.42 Ko) Télécharger le fichier
Rustre.Dataflow.Stream.html (21.53 Ko) Télécharger le fichier
Rustre.Dataflow.Syntax.html (24.1 Ko) Télécharger le fichier
Rustre.Dataflow.WellFormed.Decide.html (102.82 Ko) Télécharger le fichier
Rustre.Dataflow.WellFormed.html (62.73 Ko) Télécharger le fichier
Rustre.Dataflow.html (9.01 Ko) Télécharger le fichier
Rustre.Example.html (128.39 Ko) Télécharger le fichier
Rustre.Memory.html (27.79 Ko) Télécharger le fichier
Rustre.Minimp.Equiv.html (34.94 Ko) Télécharger le fichier
Rustre.Minimp.FuseIfte.html (176.94 Ko) Télécharger le fichier
Rustre.Minimp.Semantics.html (122.3 Ko) Télécharger le fichier
Rustre.Minimp.Syntax.html (43.94 Ko) Télécharger le fichier
Rustre.Minimp.html (7.07 Ko) Télécharger le fichier
Rustre.Nelist.html (110.3 Ko) Télécharger le fichier
Rustre.Translation.html (49.24 Ko) Télécharger le fichier
index.html (289.9 Ko) Télécharger le fichier
toc.html (20.92 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01403830 , version 1 (28-11-2016)

Identifiants

  • HAL Id : hal-01403830 , version 1

Citer

Timothy Bourke, Pierre-Evariste Dagand, Marc Pouzet, Lionel Rieg. Vérification de la génération modulaire du code impératif pour Lustre. JFLA 2017 - Vingt-huitième Journées Francophones des Langages Applicatifs, Jan 2017, Gourette, France. ⟨hal-01403830⟩
399 Consultations
299 Téléchargements

Partager

More