Esercitazioni del Corso (B) di

Linguaggi di Programmazione

Laurea triennale in Informatica 2006-07 / 2007-08

Nicola Fanizzi

Avviso

Causa assenza per missione del dr. Fanizzi, per il primo appello di Settembre '08 consegnare la doc. dei casi di studio al prof. Abbattista.

Obiettivo

Realizzazione (in gruppo) di un parser e di uno scanner per un linguaggio di programmazione originale progettato dal gruppo (mediante strumenti automatici)

Diario

[18/4] Introduzione al processo di compilazione. Analisi Lessicale. Introduzione a Lex

[29/4] Introduzione a Lex: espressioni regolari per rappresentare i pattern. Esempi di compilazione dei file di specifica

[06/5] Azioni. Variabili e funzioni predefinite. Esempi finali

[13/5] Cenni su analisi ricorsiva discendente e grammatiche LL(1). Introduzione a LLgen.

[20/5] Riepilogo. Error recovery. Ambiguità e conflitti.

[26/5] Esempio calcolatrice scientifica (con semantica).

[27/5] Preparazione casi di studio.

[ F i n e     C o r s o ]

Diapositive utilizzate per le lezioni

NB studiare dai testi/documentazioni ufficiali, non dalle diapositive
  • Il processo di compilazione [LP1, pdf]
  • Analisi Lessicale con Lex [pdf]
  • Analisi Sintattica [pdf]
  • Analisi sintattica con LLGEN [pdf] (aggiornato)

Testi consigliati

inoltre:
  • un buon manuale sul linguaggio C (capp. su preprocessore e compilazione file multipli), es:
    • Deitel & Deitel: C - Corso completo di programmazione, 3^ ed. Apogeo
    • Kelley & Pohl: C - Didattica e Programmazione, 4^ ed. Pearson
  • FAQ sul linguaggio C da it.comp.lang.c (postate mensilmente sul newsgroup, ma si trovano anche in file scaricabili, es html)

Strumenti

Ricevimento

Per chiarimenti ulteriori utilizzare l'orario di ricevimento (mar. 11-13) o prendere appuntamento. Si prega di leggere la doc. dei programmi prima di richiedere chiarimenti e di non sottoporre problematiche troppo specifiche (installazione sulla singola macchina)

Per l'esame

In ogni appello, entro la data dello scritto, consegnare la documentazione relativa al proprio lavoro di gruppo (cfr. sezione Obiettivi).
La documentazione (supporto cartaceo ed elettronico) dovrà contenere necessariamente:

Analisi: specifiche formali del lessico (grammatica o specifica automa o espressioni reg.) e della sintassi (grammatica BNF o carte sintattiche)
Progetto: loro specifica per FLEX e LLgen
Codifica: sorgenti dei moduli ottenuti, specie se modificati. Si possono stampare in carattere piccolo e su più colonne
Test: output del programma su esempi di codice sorgente corretti ed errati (consiglio >5)

È sufficiente una copia della documentazione per ogni gruppo, da consegnare in una busta plastificata o raccoglitore, indicando nominativi e matricole dei componenti.

NB: il materiale non verrà conservato, anche in caso di mancato superamento dell'esame scritto. Contattare tempestivamente il docente per l'eventuale recupero del materiale.
Il voto assegnato, invece, può rimanere valido, senza obbligo di ripresentare la doc. (a discrezione del presidente della commissione d'esame), in caso di mancato superamento della prova scritta.