Un Système De Programmation Scheme Pour Micro-Contrôleur
Total Page:16
File Type:pdf, Size:1020Kb
Universite de Montreal Un systeme de programmation Scheme p our microcontroleur par Danny Dube Departement dinformatique et de recherche operationnelle Faculte des arts et sciences Memoire presente a la Faculte des etudes superieures en vue de lobtention du grade de Matre es sciences M Sc en informatique Avril c Danny Dube Page didentication du jury Universite de Montreal Faculte des etudes superieures Ce memoire intitule Un systeme de programmation Scheme p our microcontroleur presente par Danny Dube a ete evalue par un jury comp ose des p ersonnes suivantes Yoshua Bengio president du jury Francois Ma jor Marc Feeley directeur de matrise Memoire accepte le er ao ut Sommaire Notre travail vise a etudier les dierents asp ects relies a un systeme de programmation Scheme compact Le but principal consiste a montrer quon p eut faire une implantation suf samment compacte p our p ouvoir fonctionner sur un microcontroleur Les buts secondaires consistent a trouver ou developper un gestionnaire memoire automatique GC temps reel im plantable de facon compacte ainsi que de choisir des techniques p ortables Les dierents asp ects que nous etudions sont la representation des donnees principalement en ce qui concerne le typage les symboles les continuations et les environnements lexicaux plusieurs techniques de GC temps reel et la recherche dune technique originale le developpement dun mo dele dexecution tres compact utilisant la compilation A priori il ne semble pas evident datteindre lob jectif principal Plusieurs systemes Scheme compacts existent deja et aucun de ceuxci ne p eut se plier aux contraintes severes imp osees par un microcontroleur La contrainte ma jeure imp osee par un microcontroleur est la p etitesse de lespace memoire TABLE DES MATIERES Table des matieres Introduction Ob jectifs Motivation Problematique Methodologie Description precise de lob jectif Type de machine cible Survol de Scheme Scheme sur microcontroleur Continuations Denition Acces aux continuations en Scheme Exemple dutilisation des continuations Impact sur linterprete Traitement des app els terminaux Denition dapp el terminal Implantation correcte Impact sur linterprete Gestion memoire TABLE DES MATIERES Denition Interet de la denition Traitement derreurs Question decacite Representation des ob jets Representation des types Representation uniforme Representation taggee Les autres representations Nos choix dimplantation Les symboles Contenant directement le nom Numerotation des symboles Les continuations Pile Fermetures Structures de donnees ad hoc Nos choix dimplantation Les environnements Listes dasso ciation Listes Blo cs de liaison chanes Blo cs de liaison avec display Representation plate Nos choix dimplantation Recherche dun GC adequat TABLE DES MATIERES Limp ortance deviter la fragmentation Les dicultes liees aux GC temps reel Lincoherence des donnees Les mutations faites par lapplication Les grands ob jets Reglage de la vitesse du GC Les dierentes appro ches Regroup ement en zones ou en pages GC a deux semiespaces GC a un seul espace La version blo quante de notre technique de GC Disp osition du tas Declenchement du GC Description de lalgorithme La technique temps reel Les barrieres en lecture et en ecriture Lalgorithme du GC Synchronisation du GC avec lapplication Trois ameliorations Le calcul du ratio utilise par linterprete Compilation vers du co deo ctets Ap ercu du systeme Le systeme entier Le compilateur Reduction des formes syntaxiques derivees Les formes de base TABLE DES MATIERES Les reductions proprement dites Transformation en arbres de syntaxe Selection des fonctions de la librairie References globales La librairie Extraction des fonctions requises Traitement des constantes litterales Decoupage des constantes Co dage des constantes Reconstruction des constantes Lo calisation des variables Valeur initiale des variables globales Valeur initiale Utilite des valeurs initiales Co dage des valeurs initiales Substitution des fonctions app elees Pro duction du co deo ctets Organisation globale du co deo ctets Compilation des formes syntaxiques Linearisation et resolution des references La machine virtuelle et le co deo ctets La premiere machine virtuelle Les registres Comp ortement general Operandes courts et longs Operande facultatif TABLE DES MATIERES Le jeu dinstructions Compilation des dierentes formes Constantes .