MIO2-2
Projet
basic
8 Juin 2001
--
° --






Documents autorisés : notes de cours manuscrites ou polycopiées






Intro

On veut remplacer la construction alternative IF .. GOTO .. des instructions du langage basic par l'instruction plus générale IF .. THEN .. Cette nouvelle instruction pourra être utilisée de deux façons :


Question
  1. décrivez les modifications à apporter à l'ensemble du programme vu en cours.



Rappels

Nous rappelons, quelques types et fonctions mis en oeuvre.

(* == Fichier: syntabs.ml *)
type bin_op = PLUS | MINUS | MULT | DIV 

type exp =
  ExpInt of int 
| ExpVar of string
| ExpOpp of exp
| ExpBin of exp * bin_op * exp  

type inst = 
  Rem of string
| Goto of int
| Gosub of int
| Print_e of exp
| Print_s of string
| Println
| Input of string 
| If of test * int 
| Let of string * exp
| Return
| End

(* == Fichier: eval.ml *)
val eval_exp : Syntabs.exp -> Env.env -> int
val eval_test : Env.env -> Syntabs.exp * Syntabs.bin_rel * Syntabs.exp -> bool
val exec_inst : bool ref -> Env.env -> int ref -> int Stack.t -> Syntabs.inst -> unit
val ld_prog : (int * Syntabs.inst) list -> Syntabs.inst array
val exec_prog : (int * Syntabs.inst) list -> unit

(* == Fichier: printer.ml *)
val print_exp : Syntabs.exp -> unit
val print_test : Syntabs.exp * Syntabs.bin_rel * Syntabs.exp -> unit
val print_inst : Syntabs.inst -> unit
val print_prog : (int * Syntabs.inst) list -> unit
Les fonctions d'analyses lexicale et syntaxique sont sythétisées par les outils ocamllex et ocamlyacc à partir des définitions contenues dans les fichiers parser.mly et lexer.mll.


This document was translated from LATEX by HEVEA.