Files
compilateur-l/eval-partiel/README.html
2016-02-23 18:02:37 +01:00

98 lines
3.6 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Carlos Ramisch - personal page</title>
<link rel="stylesheet" href="main.css" type="text/css" media="screen"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<div id="page_body">
<H1 >Evaluation de l'analyseur syntaxique 2015/2016</H1>
<H2>1 - Compilation du compilateur</H2>
Compilez votre analyseur à l'aide d'un Makefile.
<H2>2 - Exécution sur des exemples existants</H2>
<p>Vous pouvez modifier le script <tt>runEval.sh</tt> en modifiant le chemin vers l'exécutable de votre compilateur. Ensuite, exécutez-le pour effectuer les tests ci-dessous 100% automatiquement</p>
<p>Analysez les programmes suivants :</p>
<table border="1pt">
<tr><td>affect.l</td></tr>
<tr><td>boucle.l</td></tr>
<tr><td>expression.l</td></tr>
<tr><td>max.l</td></tr>
<tr><td>tri.l</td></tr>
<tr><td>affect-err.l</td></tr>
</table>
<H2>3 - Exécution sur de nouveaux exemples</H2>
<h3>3.1 Exemples compilés OK</h3>
<p>Compilez à l'aide de votre compilateur, les programmes suivants :</p>
<table border="1pt">
<tr><td>eval1.l</td></tr>
<tr><td>eval2.l</td></tr>
<tr><td>eval3.l</td></tr>
<tr><td>eval4.l</td></tr>
<tr><td>eval5.l</td></tr>
<tr><td>eval6.l</td></tr>
<tr><td>eval7.l</td></tr>
<tr><td>eval8.l</td></tr>
</table>
<h3>3.1 Exemples pas compilés</h3>
<p>Vérifiez que les programmes suivants ne compilent pas :</p>
<table border="1pt">
<tr><td>eval1err.l</td></tr>
<tr><td>eval2err.l</td></tr>
<tr><td>eval3err.l</td></tr>
<tr><td>eval4err.l</td></tr>
<tr><td>eval5err.l</td></tr>
</table>
<!--<H2>4 - Ajout de la boucle <tt>faire - tantque</tt></H2>
On désire ajouter à notre langage un nouveau type de boucle, dont voici la syntaxe:<br><br>
<tt>faire IB tantque E;</tt><br><br>
une telle instruction exécute le bloc d'instructions dans <tt>IB</tt> tant que la valeur de l'expression <tt>E</tt> est vraie, c'est-à-dire, ne vaut pas zéro. L'évaluation de l'expression est effectuée à la fin de la boucle, comme le <tt>do-while</tt> en C.-->
<H2>4 - Ajout de la boucle <tt>pour</tt></H2>
<p>On désire ajouter à notre langage une boucle de type <tt>pour</tt>, dont voici la syntaxe:</p>
<p><tt>pour IAFF<sub>init</sub> E; IAFF<sub>incr</sub> faire IB</tt><br><br></p>
<p>Une telle instruction exécute d'abord la première affectation, contenue dans <tt>IAFF<sub>init</sub></tt>, pour l'initialisation. Ensuite, tant que la valeur de l'expression <tt>E</tt> est vraie, c'est-à-dire, ne vaut pas zéro, elle exécute le bloc d'instructions dans <tt>IB</tt> suivi de l'instruction d'incrément <tt>IAFF<sub>incr</sub></tt>. Cette boucle est similaire à la boucle <tt>for</tt> en C. Cependant, il n'est pas possible de mettre autre chose qu'une affectation dans les parties d'initialisation et d'incrément (en C, elles peuvent être vides ou contenir n'importe quelle instruction-expression).</p>
<!--<p>Modifiez l'analyseur lexical, l'analyseur syntaxique, la structure de
l'arbre abstrait, et la génération de code afin de prendre en compte cette nouvelle instruction.</p>-->
<p>Modifiez l'analyseur lexical et l'analyseur syntaxique afin de prendre en compte cette nouvelle instruction.</p>
<H2>5 - Tests</H2>
<p>Vous testerez votre nouvel analyseur sur les programmes suivants:</p>
<table border="1pt">
<tr><td>test1.l</td></tr>
<tr><td>test2.l</td></tr>
<tr><td>test3.l</td></tr>
<tr><td>test1err.l - ne doit pas compiler</td></tr>
</table>
<br/>
</div>
</body>
</html>