Liens externes
  • Directories
  • Faculties
  • Libraries
  • Campus maps
  • Sites A to Z
  • My UdeM
    • Mon portail UdeM
    • My email
    • StudiUM
Dessin du pavillon Roger Gaudry/Sketch of Roger Gaudry Building
University Home pageUniversity Home pageUniversity Home page
Papyrus : Institutional Repository
Papyrus
Institutional Repository
Papyrus
    • français
    • English
  • English 
    • français
    • English
  • Login
  • English 
    • français
    • English
  • Login
View Item 
  •   Home
  • Faculté des arts et des sciences
  • FAS - Département d'informatique et de recherche opérationnelle
  • FAS - Département d'informatique et de recherche opérationnelle - Thèses et mémoires
  • View Item
  •   Home
  • Faculté des arts et des sciences
  • FAS - Département d'informatique et de recherche opérationnelle
  • FAS - Département d'informatique et de recherche opérationnelle - Thèses et mémoires
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

My Account

To submit an item or subscribe to email alerts.
Login
New user?

Browse

All of PapyrusCommunities and CollectionsTitlesIssue DatesAuthorsAdvisorsSubjectsDisciplinesAffiliationTitles indexThis CollectionTitlesIssue DatesAuthorsAdvisorsSubjectsDisciplinesAffiliationTitles index

Statistics

View Usage Statistics
Show metadata
Permalink: http://hdl.handle.net/1866/19108

Implémentation d'un langage fonctionnel orienté vers la méta programmation

Thesis or Dissertation
Thumbnail
Delaunay_Pierre_2017_memoire.pdf (512.3Kb)
2017-03 (degree granted: 2017-07-12)
Author(s)
Delaunay, Pierre
Advisor(s)
Monnier, Stefan
Level
Master's
Discipline
Informatique
Keywords
  • Scheme
  • Assistant à la preuve
  • proof assistant
  • Coq
  • Type dépendant
  • dependant type
  • Applied Sciences - Computer Science / Sciences appliqués et technologie - Informatique (UMI : 0984)
Abstract(s)
Ce mémoire présente l'implémentation d'un nouveau langage de programmation nommé Typer. Typer est un langage fonctionnel orienté vers la méta programmation. Il a été conçu pour augmenter la productivité du programmeur et lui permettre d'écrire des applications plus fiables grâce à son système de types. Pour arriver à ses fins, Typer utilise l'inférence de types et implémente un puissant système de macros. L'inférence de types permet à l'utilisateur d'omettre certains éléments, le système de macros, quant à lui, permet de compléter le programme pendant la compilation lorsque l'inférence n'est pas suffisante ou pour générer du code. Typer utilise les types dépendants pour permettre à l'utilisateur de créer des types très expressifs pouvant même être utilisés pour représenter des preuves formelles. De plus, l'expressivité des types dépendants permet au compilateur d'effectuer des vérifications plus approfondies pendant la compilation même. Ces mécaniques permettent au code source d'être moins verbeux, plus concis et plus simple à comprendre, rendant, ainsi l'écriture de programmes ou/et de preuves plus plaisante. Ces fonctionnalités sont implémentées dans l'étape que nous appelons l'élaboration, à l'intérieur de laquelle de nombreuses transformations du code source ont lieu. Ces transformations incluent l'élimination des aides syntaxiques, la résolution des identificateurs, l'expansion des macros, la propagation et l'inférence des types.
 
This dissertation present the implementation of a new programming language named Typer Typer is a functional programming language oriented towards meta programming. It has been created to increase the programmer productivity and enable him to write safer programs thanks to his type system. To achieve his goal, Typer use type inference and a powerful macro system. Type inference enable to user to elide some elements while the macro system enable us to complete the program during compilation. Typer use dependent type which enable the user to create very expressive types which can even be used to represent formal proofs. Furthermore, dependent type's expressivity enable the compiler to perform a in-depth checks during compilation. Those mechanics enable the source code to be less verbose, shorter and easier to understand, making the writing of new programmes more enjoyable. Those functionalities are implemented during the step we call the elaboration in which numerous transformations occur. Those transformations include the removal of syntactic sugar, identifier resolution, macro expansion and the propagation and the inference of types.
Collections
  • Thèses et mémoires électroniques de l’Université de Montréal [15031]
  • FAS - Département d'informatique et de recherche opérationnelle - Thèses et mémoires [629]

DSpace software [version 5.8 XMLUI], copyright © 2002-2015  DuraSpace
Contact Us | Send Feedback
Certificat SSL / SSL Certificate
les bibliothéques/UdeM
  • Emergency
  • Private life
  • Careers
  • My email
  • StudiUM
  • iTunes U
  • Contact us
  • Facebook
  • YouTube
  • Twitter
  • University RSS
 

 


DSpace software [version 5.8 XMLUI], copyright © 2002-2015  DuraSpace
Contact Us | Send Feedback
Certificat SSL / SSL Certificate
les bibliothéques/UdeM
  • Emergency
  • Private life
  • Careers
  • My email
  • StudiUM
  • iTunes U
  • Contact us
  • Facebook
  • YouTube
  • Twitter
  • University RSS