Afficher la notice

dc.contributor.advisorMonnier, Stefan
dc.contributor.authorBarszcz, Jean-Alexandre
dc.date.accessioned2022-01-24T20:46:22Z
dc.date.availableNO_RESTRICTIONfr
dc.date.available2022-01-24T20:46:22Z
dc.date.issued2021-10-21
dc.date.submitted2021-05
dc.identifier.urihttp://hdl.handle.net/1866/26064
dc.subjectpolymorphisme ad hocfr
dc.subjectclasses de typesfr
dc.subjecttypes dépendantsfr
dc.subjectmétaprogrammationfr
dc.subjectad hoc polymorphismfr
dc.subjecttype classesfr
dc.subjectdependent typesfr
dc.subjectmetaprogrammingfr
dc.subject.otherApplied Sciences - Computer Science / Sciences appliqués et technologie - Informatique (UMI : 0984)fr
dc.titleTyper a de la classe : le polymorphisme ad hoc dans un langage avec des types dépendants et de la métaprogrammationfr
dc.typeThèse ou mémoire / Thesis or Dissertation
etd.degree.disciplineInformatiquefr
etd.degree.grantorUniversité de Montréalfr
etd.degree.levelMaîtrise / Master'sfr
etd.degree.nameM. Sc.fr
dcterms.abstractLa modularité est un enjeu important en programmation, surtout quand on l’enrichit avec des preuves, comme dans les langages avec des types dépendants. Typer est un tel langage, et afin d’augmenter sa modularité et de lui ajouter un moyen de faire la surcharge d’opérateurs, on s’inspire d’Agda et Coq et on l’étend avec les arguments instances, qui généralisent les classes de types de Haskell. Un aspect qui distingue notre conception est que comme Typer généralise les définitions, la généralisation des contraintes de classe est grandement facilitée. Pour pouvoir faire les preuves de lois de classes, on doit également ajouter l’élimination dépendante des types inductifs au langage, dont certains aspects sont en retour facilités par les arguments instances. Sur la base de ces deux fonctionnalités, on offre également une solution au problème de la cécité booléenne, tel que décrit par Harper.fr
dcterms.abstractModularity is an important concern for software development, especially when the latter is enriched with proofs in a language with dependent types. Typer is such a language, and in order to increase its modularity, and also provide a way to overload operators, we take inspiration from Agda and Coq and extend it with instance arguments, a generalization of Haskell’s type classes. An aspect that sets our design apart is that since Typer generalizes definitions, it greatly simplifies the generalization of class constraints. In order to allow writing proofs for class laws, we must also implement the dependent elimination of inductive types. In return, instance arguments facilitate some details of dependent elimination. Using both features, we suggest a solution to the problem of Boolean Blindness.fr
dcterms.languagefrafr


Fichier·s constituant ce document

Vignette

Ce document figure dans la ou les collections suivantes

Afficher la notice

Ce document diffusé sur Papyrus est la propriété exclusive des titulaires des droits d'auteur et est protégé par la Loi sur le droit d'auteur (L.R.C. (1985), ch. C-42). Il peut être utilisé dans le cadre d'une utilisation équitable et non commerciale, à des fins d'étude privée ou de recherche, de critique ou de compte-rendu comme le prévoit la Loi. Pour toute autre utilisation, une autorisation écrite des titulaires des droits d'auteur sera nécessaire.