Laboratorio di Programmazione - A.A. 2004/05

Esercitazione 8
( esercizio d'esame)

Espressioni Booleane

Parte 1

Si rappresentino attraverso classi Java espressioni booleane formate da: (i) espressioni atomiche (atomi) che denotano variabili (ii) not di una espressione, (iii) and di due espressioni e (iv) or di due espressioni.

Parte 2

Si definisca una classe EspressioneUtil contenente due metodi statici che implementino rispettivamente le procedure di conversione da stringa ad espressione e da espressione a stringa. Per la trasformazione da stringa a espressione si utilizzi la seguente grammatica.

E -> EE | EE & EE | EE | EE
EE -> !EE | EEE
EEE -> ( E ) | atomo

Equipaggiare inoltre la classe con un metodo statico che data una espressione restituisca l'insieme (Set) delle sue variabili.

Parte 3

Definire una classe per rappresentare assegnazioni di valori a variabili con le seguenti funzionalità:

Parte 4

Definire una classe Valutazione contenente un metodo statico che data una espressione ed una assegnazione dele sue variabili, valuta l'espressione.