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
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...