Cours de Compilation / Compiler Construction Course, P. Cousot
Langages de programmation et compilation
Programming Languages and Compiler Construction
Patrick Cousot
Programmes sources Objective Caml V3.04 fournis pour les travaux dirigés / Given source Objective Caml V3.04 programs for the personnal project :
Typage exponentiel en CAML
- typer1.ml,
- typer2.ml,
- typer3.ml,
- typer4.ml,
- typer5.ml
- exemples de H. G. Mairson ;
Réalisation d'un compilateur pour un mini-langage
fonctionnel
Interpréteur pour le mini-langage, programmes en syntaxe
abstraite
- aintv.mli,
aintv.ml
- interface et implémentation du module de l'interpréteur
pour le langage avec portée dynamique et paramètres par
valeur, programmes en syntaxe abstraite, Objective Caml V3.04, utilise print.mli
(exemple de makefile simple et
script d'exécution) ;
- aintvex0.ml
- aintvex1.ml
- aintvex2.ml
- aintvex3.ml
- aintvex4.ml
- aintvex5.ml
- aintvex6.ml
- aintvex7.ml (programme mal typé)
- aintvex8.ml (programme qui boucle)
- aintvex9.ml
- exemples de programmes sous forme abstraite ;
- print.mli
- interface du module d'impression des valeurs et pile à
l'exécution utilisées par l'interpréteur.
Syntaxe concrète
- cintvex0.mini
- cintvex1.mini
- cintvex2.mini
- cintvex3.mini
- cintvex4.mini
- cintvex5.mini
- exemples de programmes sous forme concrète ;
- cintvex6.mini
- cintvex6v.mini
- cintvex7.mini
- cintvex8.mini
- cintvex8v.mini
- cintvex9.mini
- cintvex10.mini
- autres exemples de programmes sous forme concrète ;
-
lexervhc.mll,
parservhc.mly,
- ébauches de l'analyseur lexical et de l'analyseur syntaxique
pour la syntaxe concrète et conversion abstrait -> concret pour
Objective Caml 3.04. À compiler respectivement par ocamllex
lexervhc.mll et ocamlyacc parservhc.mll ;
- interprete.ml, fichier pour réaliser
un exécutable d'interprete (nouvel exemple de
makefile pour le compiler) ;
- runvhc.ml
- lanceur de l'interpréteur pour le langage avec portée
dynamique et paramètres par valeur, programmes en syntaxe
concrète, Objective Caml 3.04 (Utilisation dans le toplevel par
#use "runvhc.ml";;) ;
Vérification des conditions de contexte
-
- exvcc1.mini
- exvcc2.mini
- exvcc3.mini
- exvcc4.mini
- exvcc5.mini
- exemples de vérification des conditions de contexte ;
Typage
- graphe.ml, une solution possible pour
extraire les composantes connexes dans l'ordre des appels de fonctions.
Paramètres par valeur et par nécessité,
portée statique et dynamique
- cintvsdntcex1.mini,
- cintvsdntcex2.mini,
- cintvsdntcex3.mini,
- cintvsdntcex4.mini,
- cintvsdntcex5.mini,
- cintvsdntcex6.mini,
- exemples de divers modes de passage de paramètres ;
Langage machine
- ciex.ml
- exemples de programmes en langage machine ;
-
ci.mli,
ci.ml,
- interpréteur de code machine (avec metteur au point
intégré), Objective Caml 3.06
Droits d'auteur / Copyright Notice.
Retour à / back to :
Index,
Institutions,
Enseignement / Teaching,
Recherche / Research,
Services
Email: Patrick.Cousot@ens.fr, cousotp@acm.org
Dernière mise à jour / Last modified :