Corso di Linguaggi e Traduttori
JFlex & Cup
Home :: Forum
Mailing-list:
Iscriviti alla mailing di linguaggi e traduttori.
Basta inserire il tuo indirizzo di mail nella casella sottostante e premere Go
Comunicazioni:
- Le relazioni del tema d'esame del 25/01/2010 dovranno essere consegnate entro giovedi' 28/01/2010.
- Iscrivetevi alla mailing list, grazie
- [21/01/2010]: Aggiunti temi d'esame trattati nella sesta esercitazione in aula
- [21/01/2010]: Aggiunta soluzione sesta esercitazione di laboratorio
- Wiki con tesine svolte
JFlex e Cup sono la versione Java rispettivamente dello scanner Flex e del parser Bison
0 - Indice
1 - Nozioni preliminari
2 - Esercitazioni in Aula
3 - Esercitazioni di Laboratorio
4 - Risorse utili
5 - Temi d'Esame
6 - Tesine
1 - Nozioni preliminari
Installazione in ambiente Linux:
Come scaricare, installare e configurare Java, JFlex e Cup in ambiente linux
Installazione in ambiente Windows:
Come scaricare, installare e configurare Java, JFlex e Cup in ambiente Windows
2 - Esercitazioni in Aula
3 - Esercitazioni di Laboratorio
- Esercitazione 1: testo
Prima di iniziare l'esercitazione si provi a compilare il seguente esempio di scanner standalone:
Esempio Scanner Standalone
Espressioni regolare e utilizzo dello scanner JFlex
Soluzioni: Esercizio 1, Esercizio 2, Esercizio 3
- Esercitazione 2: testo
Riconoscimento di una semplice grammatica con Jflex e Cup. Un ulteriore esercizio sull'utilizzo di JFlex. Costruzione di uno scanner per il linguaggio C
Prima di iniziare l'esercitazione si provi a compilare l'esercizio qui allegato (Analizzatore grammaticale di espressioni matematiche): Esercizio espressioni matematiche
Soluzione: Esercizio 1 e 2.
-
Esercitazione 3: testo
Riconoscere la grammatica di un programma C.
Nel caso di conflitti usare l'opzione di compilazione -expect numero_conflitti di cup.
Codice fornito: Viene fornito il codice che realizza lo scanner e il main (che e' anche la soluzione del terzo esercizio della seconda esercitazione): scanner.jflex, Main.java.
Soluzione: Soluzione (NB. Nella soluzione sono state utilizzare le espressioni matematiche
ambigue, che verranno spiegate nell'esercitazione 3 e non si sono analizzate le direttive di pre-compilazione, perche' considerate come
appartenenti a un modulo a parte di pre-processing che produce un codice intermedio da mandare in ingresso al compilatore).
-
Esercitazione 4: testo
Riconoscere un programma logico.
Soluzione: Soluzione
Riconoscere un programma logico.
Esercitazione 5: testo
Realizzazione di una calcolatrice dotata di memoria.
Si allega la realizzazione di parte dello scanner e del parser scanner, parser
Soluzione: Soluzione
-
Esercitazione 6: testo
Si richiede di realizzare un type-checker elementare in cui vengano riconosciuti solo array, puntatori e tipi standard.
Si allega la classe java che facilita la costruzione dell'albero che realizza le type-espression: te_node.java
Soluzione: Soluzione
4 - Risorse utili
4.1 - Flex
4.2 - Cup
4.3 - Java
5 - Temi d'esame
- Tema del 18/07/1997: testo
- Tema del 11/10/1997: testo
- Tema del 26/01/2004: testo
- Tema del 06/09/2004: testo
- Tema del 07/02/2006: testo
- Tema del 07/11/2006: testo
- Tema del 23/01/2007: testo
- Tema del 06/09/2007: testo
- NEW Tema del 13/11/2007: testo
6 - Tesine
Wiki con esempi di tesine svolte: Wiki con tesine svolte
Esempi di specifiche:
|