Langages de programmation et compilation 2018-2019

Jean-Christophe Filliâtre

Cours donné aux élèves de première année à l'École Normale Supérieure.

Cours

Note : Une copie des transparents sera distribuée à chaque cours. Il est donc inutile d'imprimer les PDF ci-dessous.

TD

Projet

Cette année, on compile un sous-ensemble du langage Kotlin.

Sujet (version 2 - 22 octobre)

Quelques tests sont fournis (les télécharger : tests-18-oct.tar.gz). Ce script shell peut être utilisé pour automatiser les tests, avec la syntaxe ./test -n binaire-compilon vaut 1 (tests parseur), 2 (tests typage) ou 3 (tests production de code).

Un module OCaml est fourni pour construire du code x86-64 : x86_64.ml / x86_64.mli / documentation / télécharger.
Libre à vous de le compléter si besoin.

Le projet est à rendre en deux fois :

Il est conseillé de procéder construction par construction (que ce soit pour le typage ou pour la production de code), dans cet ordre : affichage, arithmétique, variables locales, fonctions (globales et monomorphes), classes (monomorphes), polymorphisme, fonctions de première classe.

Le rapport rendu avec le projet doit notamment aider à la compréhension du code du projet.

Il y aura des soutenances de projet en janvier (après le rendu du projet).

Examen

L'examen aura lieu le vendredi 25 janvier de 8h30 à 11h30 en salle U/V.

Les notes de cours manuscrites ou reprographiées sont les seuls documents autorisés.

Archives : janvier 2009 (corrigé) / janvier 2010 (corrigé) / janvier 2011 (corrigé) / janvier 2012 (corrigé) / janvier 2013 (corrigé) / janvier 2014 (corrigé) / janvier 2015 (corrigé) / janvier 2016 (corrigé) / janvier 2017 (corrigé) / janvier 2018 (corrigé)

Liens / Bibliographie

Outils

Cartes de référence

Ouvrages en rapport avec le cours

Ces trois ouvrages sont disponibles à la bibliothèque. Le cours ci-dessus ne suit pas vraiment ces ouvrages. Néanmoins, ce sont de très bons ouvrages, conseillés pour aller plus loin.

For foreign students not yet fluent in French


Remerciements : merci à Christine Paulin, François Pottier et Xavier Leroy pour leur aide dans la préparation de ce cours