GNU epsilon : an extensible programming language

par Luca Saiu

Thèse de doctorat en Informatique

Sous la direction de Christophe Fouqueré.

Soutenue en 2012

à Paris 13 .


  • Résumé

    Le réductionnisme est une technique réaliste de conception et implantation de vrais langages de programmation, et conduit à des solutions plus faciles à étendre, expérimenter et analyser. Nous spécifions formellement et implantons un langage de programmation extensible, basé sur un langage-noyau minimaliste impératif du premier ordre, équipé de mécanismes d’abstraction forts et avec des possibilités de réflexion et auto-modification. Le langage peut être étendu à des niveaux très hauts : en utilisant des macros à la Lisp et des transformations de code à code réécrivant les expressions étendues en expressions-noyau, nous définissons les clôtures et les continuations de première classe au dessus du noyau. Les programmes qui ne s’auto-modifient pas peuvent être analysés formellement, grâce à la simplicité de la sémantique. Nous développons formellement un exemple d’analyse statique et nous prouvons une propriété de soundness par apport à la sémantique dynamique. Nous développons un ramasse-miettes parallèle qui convient aux machines multi-cœurs, pour permettre l’exécution efficace de programmes parallèles.

  • Titre traduit

    GNU epsilon, un langage de programmation extensible


  • Résumé

    Reductionism is a viable strategy for designing and implementing practical programming languages, leading to solutions which are easier to extend, experiment with and formally analyze. We formally specify and implement an extensible programming language, based on a minimalistic first-order imperative core language plus strong abstraction mechanisms, reflection and self-modification features. The language can be extended to very high levels: by using Lisp-style macros and code-to-code transforms which automatically rewrite high-level expressions into core forms, we define closures and first-class continuations on top of the core. Non-self-modifying programs can be analyzed and formally reasoned upon, thanks to the language simple semantics. We formally develop a static analysis and prove a soundness property with respect to the dynamic semantics. We develop a parallel garbage collector suitable to multi-core machines to permit efficient execution of parallel programs.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (155 p.)
  • Annexes : Bibliogr. p.147-155

Où se trouve cette thèse ?

  • Bibliothèque : Université Paris 13 (Villetaneuse, Seine-Saint-Denis). Bibliothèque universitaire. Section Sciences.
  • PEB soumis à condition
  • Cote : TH 2012 030
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.