général
curriculum vitae
contact

CARDIWEB
2007
2006
2005

Etudes
les projets
les sites web
les exposés

liens
OTB World
EPITA
PCN
CARDIWEB

 
Modalités de rendu (non contractuelles)
=======================================

Date de rendu:			24/01/2003 12h00
Groupe de News: 		epita.cours.compile
Sujet de mail Yaka		[T0]
Repertoire de rendu:		~/rendu/tiger
Droits sur le rep et les exos : 705 sur les répertoires,
				604 pour les fichiers,
				au moins 701 sur ~

Votre répertoire de rendu doit contenir le fichier login-evalexp.tig
(où `login' est votre login).
Les informations ci-dessus peuvent changer jusqu'au 23/01/2003 12h00.



Sujet
=====

Cet exercice a pour but de vous familiariser avec la syntaxe du tiger.
Il  vous permettra  par  ailleurs de  mettre  en oeuvre  les cours  de
compilation pour réaliser un parseur LL.



Exercice
========

Le but de cet exercice est donc de réaliser un EvalExp en Tiger.  Pour
ce faire, vous devez dans un premier temps parser l'entrée standard
(un parseur LL est conseillé) puis afficher l'expression parenthésée
suivie du résultat.

Il vous faudra gérer les opérateurs binaires +,-,*,/ et les opérateurs
unaire + et - 
Il vous faudra par ailleur gérer les parenthèses.  
En cas d'erreur vous devrez afficher un message d'erreur puis quitter
avec la valeur de retour 1 sinon 0
Il n'est pas neccessaire de gérer les debordements, les calculs seront
de tailles raisonnables.

Votre  programme  sera  automatiquement  compilé  et  exécuté  par  un
programme fourni.


Exemple
-------

42sh>echo "-1+2*(3+4)" | ~yaka/tiger-interpreter evalexp.tig 
((-1) + (2 * (3 + 4)))
13
42sh> 




Lecture
=======

A. Appel, ¨Modern Compiler Implementation in {ML,C,Java}¨

http://www.lrde.epita.fr/~akim

 

 
 
     

| Copyright 2002 © OTB World Conception |
.:: version du site : v2.0 ::.