Si vogliono realizzare delle classi per rappresentare un semplice linguaggio di programmazione in cui esistono solo variabili, istruzioni di stampa, sequenze di istruzioni e condizionali. Un programma in questo linguaggio è composto da una istruzione. Ogni istruzione può però essere composto da una singola istruzione di stampa, da una sequenza di altre istruzioni, oppure da un condizionale.
Si realizzino le classi che rappresentano le variabili e le istruzioni. Si noti che viene richiesta una sola classe per la variabili, mentre deve esistere una classe per l'istruzione genererica e tre per le istruzioni specifiche.
Oggetti di queste classi rappresentano sintatticamente dei programmi scritti in un linguaggio di programmazione in cui esistono solo variabili, istruzioni di stampa, sequenze di istruzioni e condizionali. La stampa di un tale programma si può effettuare a partire da questi oggetti in questo modo:
Oggetto | Cosa stampare |
---|---|
variabile | si stampa la stringa che rappresenta il nome della variabile |
istruzione di stampa | si stampa print(stringa), dove la stringa è quella che si trova nell'oggetto che rappresenta l'istruzione |
istruzione condizionale | si stampa if(var,istr,istr) dove var è l'oggetto variabile e istr sono le due istruzioni che si trovano nell'oggetto |
istruzione sequenza | si stampa (istr,istr,...,istr), ossia si stampa la sequenza delle istruzioni precedute e seguite da parentesi e intervallate da virgole |
Le classi devono essere incapsulate e avere i seguenti metodi:
Realizzare una classe ServiziProgrammi che contiene due metodi: