LO SVILUPPO PASSO A PASSO

Di seguito presentiamo le varie attività che sono state svolte per sviluppare il programma, seguendo l'ordine in cui sono state effettuate. Inoltre nel seguito riportiamo i documenti prodotti in ogni attività considerata.
Determinazione della struttura modulare
Per prima cosa cerchiamo di determinare i moduli in cui sembra conveniente suddividere il programma, e per ognuno di essi determiniamo la loro interfaccia iniziale.
Riportiamo il risultato di quest'attività in questo documento:
Prima versione della struttura modulare

Sviluppo top-down del main
Al passo successivo cerchiamo di sviluppare il MAIN, o più precisamente la procedura che lo costituisce.
Sviluppo del main
Come risultato dello sviluppo del MAIN abbiamo modificato la struttura modulare, aggiungendo ulteriori moduli.
Riportiamo la nuova versione nel documento:
Seconda versione della struttura modulare

Sviluppo del modulo REALI_ENORMI
Sviluppo di REALI_ENORMI
Sviluppando questo modulo non abbiamo modificato la struttura modulare, eccetto l'aggiunta delle funzioni Scrivi_Car e Leggi_Car nell'interfaccia di BASIC_IO.
Sviluppo del modulo IDENT
Sviluppo di IDENT
Lo sviluppo di IDENT ha modificato la sua interfaccia, ed inoltre dato che abbiamo realizzato IDENT come array non è più possibile definire funzioni che ritornano IDENT e neppure assegnare variabili di tale tipo, pertanto le interfacce dei vari moduli ed anche il MAIN dovranno essere modificate.
Le nuove interfacce ed il nuovo main sono riportati di seguito.
BASIC_IO (operazioni elementari di I/O)
Aggiunta delle nuove funzioni
BASIC_IO: versione 3
REALI_ENORMI (il tipo di dato reali enormi)
Non dipende da IDENT e quindi non è modificato
REALI_ENORMI: versione 2
IDENT (il tipo di dato identificatori)
IDENT: versione 3
ESPRESSIONI (il tipo di dato espressioni)
ESPRESSIONI: versione 3
MEMORIA (le memorie per immagazzinare i valori delle costanti e dei parametri delle funzioni)
nterfaccia non modificata
MEMORIA: versione1
AMBIENTE (gli ambienti per immagazzinare le definizioni delle funzioni)
AMBIENTE: versione2
MAIN
MAIN: versione 2
Sviluppo del modulo MEMORIA
Sviluppo di MEMORIA
Sviluppo del modulo AMBIENTE
Sviluppo di AMBIENTE
Sviluppo del modulo ESPRESSIONI
Sviluppo di ESPRESSIONI
Sviluppo del modulo BASIC_IO
Sviluppo di BASIC_IO
Messa a punto del programma
Dopo aver controllato la correttezza sintattica del programma, abbiamo "testato" i vari moduli che costituiscono il programma (dal verbo inglese to test, cioè li abbiamo sottoposti a test per controllare che siano corretti, cioè che facciano quello che devono) realizzando parecchi main particolari che chiamano le funzioni presenti sull'interfaccia di ogni modulo in maniera sistematica.
Riportiamo di seguito alcuni di questi main, nell'ordine con cui sono stati sviluppati; notare che per effettuare alcuni test abbiamo dovuto sviluppare ulteriori funzioni ausiliarie, ad esempio una per stampare le espressioni. Successivamente è stato testato il MAIN utilizando vari casi del file ingresso.txt, iniziando con quello proposto nel testo dell'esercitazione (dato in input ingresso.txt il programma sviluppato ritorna uscita.txt).