TD GDC numéro 6 et 7


L'objectif de ces exercices est de spécifier précisément la machine virtuelle, d'écrire du code à la main et d'en générer sur des exemples simples.
  1. Specifications pour l'appel de fonction
    Il faut préciser chacun des points suivants Toute combinaison est possible mais certaines sont plus simples que d'autres.

  2. Quelques fonctions simples
    Ecrire à la main, dans le code de la VM et en suivant les spécifications que vous avez choisies, le code des focntions suivantes : Vérifier que le code produit est non seulement correct, mais qu'il respecte vos conventions et qu'il aurait pu être produit par un programme.
  3. Calculette
    En suivant les spécifications que vous avez choisies,
    définir la fonction compile-calcul qui prend une expression arithmétique en paramètre et génère le code VM correspondant.
    La spécification de la calculette est la même que dans le TD précédent.

  4. Fonction fact
    Ecrire la fonction de génération de code compile-vm permettant de compiler la fonction fact écrite de façon récursive.
    Pour cela, on traitera les schémas de compilation nécessaires pour la fonction :

  5. Variables locales
    Généraliser au traitement des variables locales (lambda ou let), par exemple
    Dans les deux cas, on écrira d'abord la fonction à la main pour bien voir à quoi on veut aboutir.