45 research outputs found
Compilation certifiée de SCADE/LUSTRE
Les langages synchrones sont apparus autour des annĂ©es quatre-vingt, en rĂ©ponse Ă un besoin d avoir un modĂšle mathĂ©matique simple pour implĂ©menter des systĂšmes temps rĂ©el critiques. Dans ce modĂšle, le temps est dĂ©coupĂ© en instants discrets durant lesquels tous les composants du systĂšme reçoivent et produisent une donnĂ©e. Cette modĂ©lisation permet des raisonnements beaucoup plus simples en Ă©vitant de devoir prendre en compte le temps de calcul de chaque opĂ©ration. Dans le monde du logiciel critique, la fiabilitĂ© du matĂ©riel et de son fonctionnement sont primordiaux, et on accepte d ĂȘtre plus lent si on devient plus sĂ»r. Afin d augmenter cette fiabilitĂ©, plutĂŽt que de concevoir manuellement tout le systĂšme, on utilise des machines qui synthĂ©tisent automatiquement le systĂšme souhaitĂ© Ă partir d une description la plus concise possible. Dans le cas du logiciel, ce mĂ©canisme s appelle la compilation, et Ă©vite des erreurs introduites par l homme par inadvertance. Elle ne garantit cependant pas la bonne correspondance entre le systĂšme produit et la description donnĂ©e. Des travaux rĂ©cents menĂ©s par une Ă©quipe INRIA dirigĂ©e par Xavier Leroy ont abouti en 2008 au compilateur CompCert d un sous-ensemble large de C vers l assembleur PowerPC pour lequel il a Ă©tĂ© prouvĂ© dans l assistant de preuve Coq que le code assembleur produit correspond bien Ă la description en C du programme source. Un tel compilateur offre des garanties fortes de bonne correspondance entre le systĂšme synthĂ©tisĂ© et la description donnĂ©e. De plus, avec les compilateurs utilisĂ©s pour le temps rĂ©el critique, la plupart des optimisations sont dĂ©sactivĂ©es afin d Ă©viter les erreurs qui y sont liĂ©es. Dans CompCert, des optimisations elles aussi prouvĂ©es sont proposĂ©es, ce qui pourrait permettre ces passes dans la production de systĂšmes temps rĂ©el critiques sans en compromettre la fiabilitĂ©. Le but de cette thĂšse est d avoir une approche similaire mais spĂ©cifique Ă un langage synchrone, donc plus appropriĂ© Ă la description de systĂšmes temps rĂ©el critiques que ne l est le C. Un langage synchrone flots de donnĂ©es semblable Ă Lustre, nommĂ© Ls, et un langage impĂ©ratif semblable au langage C, nommĂ© Obc y sont proposĂ©s ainsi que leur sĂ©mantique formelle et une chaĂźne de compilation avec des preuves de prĂ©servation de sĂ©mantique le long de cette chaĂźne.Synchronous languages first appeared during the 80 s, in order to provide a mathematical model for safety-critical systems. In this model, time is discrete. At each instant, all components of the system simultaneously receive and produce some data. This model allows simpler reasonning on the behaviour of the system, as it does not involve the time required for each of the operations for every component. In safety-critical systems, safety is the rule, so a poor performance behaviour can be allowed if it improves safety. In order to improve safety, rather than conceiving directly the system, machines are used to automatically design the system from a given concise description. In the case of software, this machine is called a compiler, and avoids issues due to some human inadvertence. But it does not ensure that the produced system and the description specification really show the same behaviour. Some recent work from an INRIA team lead by Xavier Leroy achieved in 2008 the realisation of the CompCert compiler from a large subset of C to PowerPC assembly, for which it was proven inside of the Coq proof assistant that the produced system fits its source description. Such a compiler offers strong guarantees that the produced system and its given description by the programmer really fit. Furthermore, most current compiler s optimizations are disabled when dealing with safety-critical systems in order to avoid tedious compilation errors that optimizations may introduce. Proofs for optimizations may allow their use in this domain without affecting the faith we could place in the compiler. The aim of this thesis is to follow a similar path, but this one on a language which would be more suited for safety-critical systems than the C programming language. Some dataflow synchronous programming language very similar to Lustre, called Ls is described with its formal semantics, as well as an imperative programming language similar to a subset of C called Obc. Furthermore some compilation process is described as well as some proofs that the semantics is preserved during the compilation process.PARIS11-SCD-Bib. Ă©lectronique (914719901) / SudocSudocFranceF
Propriétés combinatoires des f-palindromes
Ce mémoire fait partie du domaine de la combinatoire des mots et plus particuliÚrement\ud
de l'étude de la complexité palindromique (le nombre de facteurs palindromes) des mots infinis. La conjecture de Hof, Knill et Simon, énoncée pour la premiÚre fois en 1995, donne une caractérisation des points fixes dont la complexité palindromique est infinie. Récemment, elle a été résolue pour les points fixes sur un alphabet binaire (Tan, 2007). Dans ce mémoire, nous la démontrons pour les points fixes de morphismes uniformes\ud
sur un alphabet binaire (ce n'est pas plus gĂ©nĂ©ral que le rĂ©sultat de Tan). De plus, notre approche permet d'obtenir une dĂ©monstration d'un rĂ©sultat similaire pour les points fixes contenant une infinitĂ© d'antipalindromes. Afin d'atteindre notre objectif, nous Ă©tablissons un ensemble de rĂ©sultats combinatoires sur les mots. En effet, nous faisons une Ă©tude des Æ-palindromes et de certaines Ă©quations qui en contiennent. Ensuite, nous introduisons les morphismes de classe P, PÂč et Æ-P et nous dĂ©montrons notamment que l'ensemble des morphismes de classe PÂč est un monoĂŻde. Nous rassemblons Ă©galement les rĂ©sultats d'un travail prĂ©cĂ©dent sur les morphismes conjuguĂ©s. Finalement, nous Ă©tudions les chevauchements de mots et nous construisons un graphe de chevauchements, assise de notre dĂ©monstration de la conjecture. Toutes ces recherches ont contribuĂ© au dĂ©veloppement d'un outil informatique vouĂ© Ă l'Ă©tude de questions soulevĂ©es en combinatoire des mots. Ce dernier est constituĂ©\ud
d'un ensemble de classes et de fonctions Ă©crites en langage Python annexĂ©es Ă ce mĂ©moire. Elles seront bientĂŽt incluses dans un paquetage sur la combinatoire des mots associĂ© au logiciel libre Sage. ______________________________________________________________________________ MOTS-CLĂS DE LâAUTEUR : Combinatoire des mots, Æ-palindrome, ComplexitĂ© palindromique, Conjecture de Hof, Knill et Simon, Point fixe de morphisme, Chevauchement, Automates
Profil d'application Normetic 2.0 (v0.9)
TirĂ© de l'Ă©cran-titre (visionnĂ© le 27 juin 2017).Cette eÌtude a eÌteÌ reÌaliseÌe avec le soutien financier du Groupe de travail queÌbeÌcois sur les normes et standards en TI pour lâapprentissage, lâeÌducation et la formation (GTN-QueÌbec). Le contenu de ce rapport demeure la responsabiliteÌ des auteurs. Les opinions qui y sont exprimeÌes ne refleÌtent pas neÌcessairement celles du GTN-QueÌbec
Algorithmique & programmation en langage C - vol.2: Sujets de travaux pratiques
LicenceCe document regroupe 64 sujets de travaux pratiques (TP) et dâexamen, Ă©crits pour diffĂ©rents enseignements dâalgorithmique et de programmation en langage C donnĂ©s Ă la FacultĂ© dâingĂ©nierie de lâUniversitĂ© Galatasaray (Istanbul, Turquie), entre 2005 et 2014. Il sâagit du deuxiĂšme volume dâune sĂ©rie de 3 documents, comprenant Ă©galement le support de cours (volume 1) et un recueil des corrigĂ©s de ces sujets (volume 3).Les sujets dâexamen ont Ă©tĂ© retravaillĂ©s pour prendre la forme de sujets de TP. Les 64 sujets proposĂ©s ont Ă©tĂ© ordonnĂ©s de maniĂšre Ă correspondre Ă la progression des concepts parallĂšlement Ă©tudiĂ©s en cours (cf. le volume 1). En ce qui concerne les concepts les plus simples, il est difficile de sortir des exercices assez classiques, dâautant plus que les Ă©tudiants ne disposent Ă ce moment-lĂ du cours que dâun bagage technique trĂšs rĂ©duit. Cependant, nous avons tentĂ© dâaborder des thĂšmes plus originaux dans les sujets venant plus tard. Nous nous sommes particuliĂšrement attachĂ©s Ă proposer des exercices basĂ©s sur une approche graphique de lâalgorithmique, grĂące Ă lâutilisation de la bibliothĂšque SDL (Simple DirectMedia Layer).Le volume horaire dâun (ou mĂȘme de deux) cours classique(s) ne permet bien entendu pas dâeffectuer tous les TP proposĂ©s ici. Il faut remarquer que si certains sujets introduisent un concept nouveau, dâautres, au contraire, se concentrent sur lâapprofondissement dâune ou plusieurs notions dĂ©jĂ utilisĂ©es. LâidĂ©e est plutĂŽt, pour lâenseignant, de disposer dâun assortiment dâexercices divers, dans lequel il peut choisir ce dont il a besoin, en fonction des Ă©tudiants, de la progression effective et des objectifs de son cours. Pour les Ă©tudiants, il sâagit de proposer des exercices pouvant offrir une vision alternative Ă celle donnĂ©e dans le cours suivi, ou bien dâapprofondir certains points vus en cours
Mise à jour de la famille des générateurs minimaux des treillis de concepts et des icebergs
Mémoire numérisé par la Direction des bibliothÚques de l'Université de Montréal
On Infinite Words Determined by Stack Automata
We characterize the infinite words determined by one-way stack automata. An infinite language L determines an infinite word alpha if every string in L is a prefix of alpha. If L is regular or context-free, it is known that alpha must be ultimately periodic. We extend this result to the class of languages recognized by one-way nondeterministic checking stack automata (1-NCSA). We then consider stronger classes of stack automata and show that they determine a class of infinite words which we call multilinear. We show that every multilinear word can be written in a form which is amenable to parsing. Finally, we consider the class of one-way multihead deterministic finite automata (1:multi-DFA). We show that every multilinear word can be determined by some 1:multi-DFA, but that there exist infinite words determined by 1:multi-DFA which are not multilinear