Évaluateur Mini-BASIC
Projet

2000-01






Nous avons vu en cours et vous avez implanté en TP une version minimale d'un interpréteur du langage BASIC. Votre projet final consistera à implanter au moins une des extensions proposées ci-dessous.


Outre ces rajouts, vous devrez également affiner votre interpréteur de façon à intercepter tout déclenchement d'exception pour afficher un message d'erreur et rendre le contrôle à la boucle principale.



Nouvelle instruction

Un immense progrés des langage de compilation a été l'introduction de la possibilité d'appel à des sous-programmes.


L'appel à un sous programme se fait par l'instruction
GOSUB num
num est un numéro de ligne (la première du sous-programme).

On sort du sous-programme, pour revenir àl'exécution de l'instruction suivant celle de l'appel par l'instruction
RETURN

La gestion des adresses (i.e. numéros de lignes) de retour est réalisée à' l'aide d'une pile :

Commandes enrichies

On veut enrichir les commandes RUN et LIST de façon àpour leur passer en argument des numéros de ligne. Nous vous proposons les options suivantes :

Nouvelles commandes

On veut rajouter quelques nouvelles commandes d'édition des programmes.

Un autre type de données

On veut pouvoir calculer aussi bien sur les entiers que sur les nombres décimaux (les flottants).


Un nombre décimal est notécomme deux suites de chiffres séparées par un point. L'une des deux suites peut être vide. Par exemple 1.234, 123.4, 1234. et .1234 sont des nombres décimaux. Les opérations utilisées seront les mêmes que celles sur les entiers (addition, soustraction, multiplication et division).

On interdira les conversions en cours d'opération : l'évaluation de l'expression 1 + 2.3 doit provoquer une erreur (de type). Le résultat de 3 / 2 est 1 et non pas 1.5, mais le résultat de 3.0 / 2.0 est bien le flottant 1.5.

Le type des variables est fixélors de leur première affectation (soit par LET, soit par INPUT). Ainsi, le programme
10 LET n = 2
20 LET n = 1.5
est incorrect. De même que le programme
10 LET n = 2
20 LET x = 0.5
30 LET a = n * x

Un ``débeugueur''

Un outil important des environnements de programmation est le ``débeugueur'' (de l'anglais debugger) qui permet d'exécuter pas-à-pas les instructions d'un programme, d'inspecter et de modifier les valeurs des variables qu'il manipule. On veut rajouter un tel outil à notre interpréteur.


Pour cela, on rajoute la commande DEBUG qui permet de passer du mode usuel de l'interpréteur en mode ``débeugage''. Ce mode (et ce mode seulement) donne accés àde nouvelles commandes : En mode de ``débeugage'' on aura égalemnt accés à la commande LIST (avec ou sans paramètres) ainsi qu'àla commande QUIT. Cette dernière aura pour effet de revenir en mode usuel.

Nous vous conseillons d'utiliser une invite différente pour le mode usuel et le mode de ``débeugage''.



Administratif

Vous aurez remis à vos chargés de TP l'état courrant de votre implantation de la version de base de l'interpréteur la semaine du 2 avril 2001.

L'évaluation finale de votre projet aura lieu la semaine du 14 mai 2001. Vous aurez remis d'ici là, sur papier, l'ensemble des sources de votre réalisation ainsi qu'un document indiquant le choix des extensions que vous aurez implantées accompagné de la description des ajouts et modification que vous aurez apportées à la version de base de l'interpréteur (nouvelles fonctions, nouvelles variables, et le rôle de chacune).
Vous aurez préparépour la semaine du 14 mai, aux horaires des séances de TP, une démonstration de vos réalisations durant laquelle, vous illustrerez celles-ci àl'aide d'un jeu d'exemples manifestant aussi bien ce qui tourne correctement que ce qui peut provoquer des erreurs ou des comportements imprévus.




This document was translated from LATEX by HEVEA.