Sémantique dénotationnelle par continuations de TOY



Le but du devoir est d'implémenter la sémantique par continuations de Toy. Vous rendrez un rapport de quelques pages expliquant de manière concise vos choix de programmation, les problèmes rencontrés, etc. N'oubliez pas que l'introduction et la conclusion sont deux points importants dans le rapport : l'introduction donne envie de lire et situe le problème, la conclusion rappelle le problème et fait une synthèse de l'ensemble du rapport avec d'éventuelles perspectives.

Le rapport est à rendre pour le lundi 24/11/2008 ŕ 17h (reporté dimanche 30/11 ŕ 17h), 1 point de pénalité par heure de retard.

Les soutenances auront lieu les mardi 25 et jeudi 27/11/2008 (reporté lundi 01/12 et jeudi 04/12).

Travail à faire



    Première semaine (semaine 45)


  1. On réfléchit avant de se lancer tête baissée sur les machines. On va considérérer le cas où les continuations de commandes sont de type State -> Answer avec Answer qui est la séquence des impressions, c'est-à-dire une liste de valeurs.
  2. Implémentez la sémantique par continuations des expressions de TOY sans effets de bord. Vous pouvez récupérer une partie des sources ici, et utiliser les fichiers parser, lexer, state et printer du tp précédent.

  3. Implémentez la sémantique par continuations des programmes TOY sans exceptions.


    Deuxième semaine (semaine 46)


  4. Ajoutez les effets de bord et les exceptions.

  5. Essayez différents types de "réponses", et testez-les sur des exemples bien choisis.

  6. On veut maintenant ajouter la notion d'environnement, telle que définie dans la "Sémantique standard" vue en cours.

    Quels seront les types CAML correspondant aux différents domaines sémantiques ?


    Troisième semaine (semaine 47)



  7. Transformez votre outil pour prendre en compte la notion d'environnement.

  8. Ajoutez les déclarations de variables et la notion de bloc.

  9. S'il vous reste du temps : le module Format permet de faire de la mise en page a base de blocs. Vous pouvez vous en servir pour un affichage plus joli de vos programmes...



Benoit Delahaye 2008-10-23