Mezzo: a Typed Language for Safe Effectful Concurrent Programs Jonathan Protzenko

Mezzo: a Typed Language for Safe Effectful Concurrent Programs Jonathan Protzenko

Mezzo: a typed language for safe effectful concurrent programs Jonathan Protzenko To cite this version: Jonathan Protzenko. Mezzo: a typed language for safe effectful concurrent programs. Programming Languages [cs.PL]. Université Paris Diderot - Paris 7, 2014. English. tel-01086106 HAL Id: tel-01086106 https://hal.inria.fr/tel-01086106 Submitted on 22 Nov 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Distributed under a Creative Commons Attribution - NonCommercial - ShareAlike| 4.0 International License Thèse présentée à l’Université Paris Diderot pour obtenir le titre de Docteur spécialité Informatique Mezzo a typed language for safe effectful concurrent programs soutenue par Jonathan Protzenko le 29 septembre 2014 Jury Président M. Roberto Di Cosmo Rapporteurs M. Lars Birkedal M. Nikhil Swamy Examinateurs M. Jean-Christophe Filliâtre M. David Pichardie M. Don Syme Directeur M. François Pottier Abstract The present dissertation argues that better programming languages can be designed and implemented, so as to provide greater safety and reliability for computer programs. I sustain my claims through the example of Mezzo, a programming language in the tradition of ML, which I co-designed and implemented. Programs written in Mezzo enjoy stronger properties than programs written in traditional ML languages: they are data-race free; state changes can be tracked by the type system; a central notion of ownership facilitates modular reasoning. Mezzo is not the first attempt at designing a better programming language; hence, a first part strives to position Mezzo relative to other works in the literature. I present landmark results in the field, which served either as sources of inspiration or points of comparison. The subse- quent part is about the design of the Mezzo language. Using a variety of examples, I illustrate the language features as well as the safety gains that one obtains by writing their programs in Mezzo. In a subsequent part, I formalize the semantics of the Mezzo language. Mezzo is not just a type system that lives on paper: the final part describes the implementation of a type-checker for Mezzo, by formalizing the algorithms that I designed and the various ways the type-checker ensures that a program is valid. Résumé Cette thèse décrit comment obtenir de plus fortes garanties de sûreté pour les programmes en utilisant Mezzo, un langage de programmation inspiré par ML, et muni d’un système de types novateur. Les programmes écrits en Mezzo bénéficient de plus fortes garanties, com- parés à des programmes équivalents écrits dans un dialecte de ML: absence de séquencements critiques (« race conditions »), suivi des changements d’états au travers du système de types, et une notion de possession qui facilite le raisonnement modulaire et la compréhension des programmes. Mezzo n’est pas la premier langage à s’attaquer à cet objectif louable : une première partie s’efforce donc de situer Mezzo dans son contexte, en présentant des travaux emblématiques de la recherche en langages de programmation, travaux qui ont constitué des sources d’inspiration ou ont servi de points de comparaison. Une seconde partie présente le langage. Tout d’abord, au travers d’une riche palette d’exemples, qui permettent d’illustrer les fonctionnalités du lan- gage ainsi que les gains de sûreté qui en découlent. Puis, dans une partie suivante, de manière formelle, en détaillant les différentes règles qui gouvernent le système de types de Mezzo. Mezzo n’existe pas seulement sur le papier : une dernière partie décrit la manière dont le lan- gage est implémenté, en formalisant les algorithmes utilisés dans le typeur et en détaillant les techniques utilisées pour déterminer la validité d’un programme. Remerciements On a parfois pu en douter, mais après quatre années d’un labeur qui fut, naturellement, fébrile et ininterrompu, cette thèse est finalement arrivée à son terme. Rédiger les remerciements au son de FIP,par une paisible après-midi du mois d’août, me permet ainsi de clore une époque heureuse à Rocquencourt. Une légère angoisse m’étreint, néanmoins, à la pensée de tous ceux qui liront ce bref texte, et qui frémiraient de n’y pas voir leur nom : je leur présente mes excuses d’avance pour ces regrettables oublis. Mes remerciements vont en tout premier lieu à mon directeur de thèse, qui m’a accompagné tout au long de ces années. Sa disponibilité et sa patience, alliées à une connaissance encyclopédique, et une compréhension toujours fine des problèmes en jeu, m’ont permis de bénéficier d’un encadrement scientifiquement irréprochable. Mes remerciements les plus chaleureux vont également à mes rapporteurs, Lars Birkedal et Nikhil Swamy, qui ont tous deux accepté de lire plus de deux cents pages d’un texte aride durant leurs vacances d’été. Je ne peux que m’incliner devant un tel dévouement. Je suis également heureux de compter parmi mon jury des chercheurs que je côtoie et que j’apprécie depuis plusieurs années ; c’est une réelle joie de soutenir devant un tel public. L’équipe Gallium est également pour beaucoup dans ce dénouement heureux : les discussions autour d’un café, qu’il ait été produit par l’ancienne ou la nouvelle machine, ont toujours été hautement enrichissantes, qu’il s’agisse de systèmes de types, de catégories, de tanks, ou de voile. Un environnement d’excellence, et pas seule- ment scientifique, donc. Mezzo a été l’occasion de collaborer avec d’autres membres. L’arrivée des stagiaires Henri, Armaël ou Cyprien a été particulièrement motivante pour mon propre travail ; la collaboration avec les post-doctorants Thibaut et Pierre-Évariste a été également hautement fructueuse. Quand la saturation s’est fait proche, la collaboration avec Thomas et Gabriel sur Articheck a été très agréable : mes félicitations à ces deux très bons éléments. Au moment de franchir la porte du bâtiment 14, je me rappelle mes premiers mois où, jeune étudiant fraîche- ment débarqué, mes connaissances en système de types se révélèrent vacillantes. Nicolas et Benoît m’ont, à cette époque, consacré du temps et de l’énergie pour combler mes lacunes, tout comme, plus tard à d’autres occasions, Gabriel, Didier ou Xavier. Cette thèse leur doit également. La liste des membres de Gallium que j’ai croisés est trop longue pour écrire une note personnelle à chacun : je terminerai simplement en saluant le stoïcisme de Jacques-Henri qui a bravement enduré la playlist éclectique de FIP dans le bureau. Mon séjour à l’INRIA ne s’est, fort heureusement, pas limité au bâtiment 14 : je suis reconnaissant à tous les collègues et amis avec qui j’ai pu discuter autour d’un café. Par ordre croissant de bâtiments : Thierry, Pauline, Sylvain (bâtiment 8), toute l’équipe RAP du bâtiment 9, qui m’a toujours accueilli dans un environnement sportif, lui aussi, d’excellence : Mathieu, Emanuele, Renaud, Sarah, Henning, Cédric, et surtout Philippe ; Victorien (bâ- timent 15) ; Elisa et Stéphanie (bâtiment 16) ; Stéphane (bâtiment 25). Et mes excuses à tous ceux que j’oublie. Beaucoup me connaissent aussi comme un sportif régulier et le plus gros contributeur de messages inutiles à la mailing-list inria-sport-team-roc : un grand merci à tous ceux qui m’ont motivé pour devenir un nageur et un coureur. Une pensée particulière va à Philippe, qui mérite le titre de « directeur sportif » de ma thèse, dont les conseils sportifs ou humains ont été toujours précieux. J’espère me montrer digne de ses enseignements en courant, après deux semi-marathons, un marathon à Seattle. La section course à pied a été ma porte d’entrée dans le club des sportifs : merci à Alexandre et Benoît pour m’avoir poussé initialement, et à tous les autres qui sont venus courir un jour ou l’autre, la liste est trop longue pour être recopiée ici. Mention spéciale à Thierry, Pauline et Thomas, pour avoir couru un ou plusieurs semi-marathons avec moi. La section natation n’est pas en reste : Alexandre, Mathieu, Emanuele, Renaud et Cédric en ont été les dignes membres, avec, plus occasionnellement, la iv participation de Thierry, Sarah, Pauline ou Henning. Un seul nom manque cruellement à l’appel, celui de Philippe Robert. J’espère qu’un thésard plus doué saura le motiver pour aller fendre les flots de la piscine du Chesnay de son crawl puissant. Un grand plaisir au cours de ces années à Rocquencourt a été d’organiser le séminaire des doctorants, et d’aller traquer des victimes dans les divers bâtiments du centre. D’abord avec Emanuele et Mathieu, puis avec Elisa. Une pensée émue pour tous ceux qui, sous l’effet de la surprise, se sont vus répondre « oui » pour donner un exposé, et tous mes vœux de succès aux repreneurs, Pauline, Jacques-Henri et Matteo. Sur une note plus personnelle, dans le flot de souvenirs de ces années de thèse, ressortent des soirées, des week-ends ou des après-midis, en compagnie d’amis proches. Sans eux, ces années auraient assurément été plus austères et étriquées. Je ne crois pas nécessaire de m’étendre sur le soutien et l’amitié qu’ils m’ont témoignés. Je peux, en revanche, mentionner Benoît, qui n’a jamais

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    221 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us