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

Indirizzo email Nome Lista / Azione  

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:

Sponsorizzato da www.skenz.it e da www.linkorganizer.net