Laboratorio di Programmazione 2001-2002
Parte Java
Riccardo Solmi
Programma del corso
- Introduzione alla programmazione orientata agli oggetti
- Concetti di oggetto, messaggio, classe
- Incapsulamento, ereditarietà, polimorfismo
- Il linguaggio Java
- Packages, classi, classi astratte e interfacce
- Variabili e metodi di classe e di istanza
- Variabili primitive e riferimenti ad array e ad oggetti
- Tipi: regole di assegnamento e passaggio parametri
- Espressioni aritmetiche, relazionali e condizionali
- Istruzioni di scelta, iterazione, eccezioni
- La piattaforma Java
- La documentazione delle API standard di Java
- Collezioni: Set, List, Map
- Programmazione funzionale e imperativa
- Esempi comparati Scheme vs. Java
Materiale didattico
Strumenti di sviluppo
- Compitino2 Scheme
- Ereditarietà
- Flusso
- Fattoriale e Fibonacci (ricorsione e iterazione)
- ALU (decisioni ed eccezioni)
- Collezioni
- GraphNode (List, Set, Iterator)
- AcyclicGraphNode
- Literal (Map)
- Polimorfismo
- classe astratta
- interfaccia
- design pattern visitor
Il progetto consiste nell'implementare in Java un interprete e una funzione di stampa per un linguaggio minimo dato.
Le specifiche e le istruzioni per compilare, eseguire e consegnare il progetto sono contenute nel documento
docs\api\index.html che si trova nel file da scaricare.
Dopo la presentazione del progetto ho deciso di semplificare ulteriormente il vostro lavoro e ho aggiunto una interfaccia
Literal che deve essere implementata dalle classi che rappresentano costanti.
A seguito di questa modifica anche l'implementazione dei metodi execute() e evaluate() diventa intuitiva quanto
quella di prettyPrint().