TP Programmation




Présentation

Le but de ce cours est de comprendre comment les langages de programmation s'articulent autour de la notion de sémantique, et d'illustrer ceci au travers de la réalisation en projet d'un mini-compilateur pour un langage-jouet, vers le langage machine.


Organisation


Calendrier et polycopiés


Projet

Voici un compilateur/typeur d'un fragment de Caml écrit en OCaml. Il transforme un programme donné sous forme de fichier texte en assembleur x86 que l'on compile ensuite en exécutable via gcc. L'exécutable est disponible (Executablex86) avec quelques exemples: La compilation se fait dans un shell en tapant: ./compile prog.ml (il faut eventuellement rendre le fichier exécutable, en tapant chmod +x compile). Les types des expressions sont alors affichés et un fichier prog.ml.s est créé. On compile ensuite celui-ci avec la commande gcc -o prog prog.ml.s Pour les exemples, cat prend deux fichiers en argument et affiche leur concaténation, fib et factorielle prennent un entier en argument et calculent factorielle/ fib de cet entier. Les trois derniers utilisent des fonctions imbriquées et des références (pointeurs).

Liens

About LSV