Linguaggi di Programmazione e Compilatori A.A. 2003/2004 (6 CFU)

Docente: Luca Tesei

Ufficio: Dipartimento di Matematica e Informatica - Polo Informatico, via Madonna delle Carceri 9, 62032 Camerino (MC) ITALY
Telefono: (+39) 0737 402572
Indirizzo e-mail: luca.tesei@unicam.it
Home Page principale: http://www.di.unipi.it/~tesei/

Importante:

Sul riordino dello stato giuridico dei professori universitari
(DDL Moratti)
clicca qui


Obiettivi Formativi

Gli obiettivi del corso sono i seguenti:
  1. illustrare alcuni concetti di base comuni ai linguaggi di programmazione
  2. illustrare alcuni strumenti per definire la sintassi e la semantica dei linguaggi di programmazione
  3. illustrare la struttura di un compilatore e le principali tecniche di traduzione

Programma

Nota: le ore indicate si riferiscono alla didattica cosiddetta frontale classica. Si ricorda che per ogni CFU sono previste 5 ore di didattica frontale classica (e quindi 30 totali per questo corso) e altre 5 di approfondimenti/esercitazioni/applicazioni in aula (altre 30 ore). L'attività svolta nelle ore di esercitazione è parte integrante del corso. Verranno affrontati esercizi del tipo di quelli della prova scritta e proposti esercizi di approfondimento (soprattutto per quanto riguarda l'implementazione degli algoritmi studiati).

Orario

Giorno
Ora
Aula
Lunedì
11-13
AB2
Lunedì
17-19
AB2
Martedì
9-11
AA1
Martedì
17-19*
AA1

Inizio lezioni lunedì 19 Aprile 2004
* Attenzione: modificato rispetto all'orario iniziale.

Nota: Ci sarà una sospensione didattica di una o due settimane a maggio per un evento sportivo che si svolgerà a Camerino. La fine del corso sarà posticipata di conseguenza.

Orario di ricevimento

Proposta: Martedì 14-17 (nell'ora di buco c'è una lezione del II° anno): nel mio studio c/o Polo Informatico, via Madonna delle Carceri 9, 62032 Camerino (MC). Telefono: 0737/402572

Newsletter del corso

Per facilitare la diffusione delle informazioni relative al corso ho deciso di creare una newsletter. Alcuni studenti di Camerino si sono iscritti lasciandomi un loro indirizzo email in un foglio a lezione. Gli studenti di Ascoli e tutti gli altri che vogliono iscriversi possono mandare una mail a luca.tesei@unicam.it con l'Oggetto "Iscrizione LPC20032004" (Per la cancellazione dalla lista mandare una mail con l'Oggetto: "Cancellazione LPC20032004").

La lista sarà usata per comunicare date di ricevimento, date di appelli, pubblicazione di nuove dispense, pubblicazione dei risultati degli esami, eventuali variazioni degli orari e quant'altro sia ritenuto utile.

Testi e materiale didattico

Il materiale didattico principale del corso è costituito da lucidi e/o dispense che verranno distribuite dal docente in questa pagina web in vari formati (aggiunte un po' per volta durante il corso). Gli studenti che non frequentano il corso potranno basarsi interamente su tali dispense per preparare l'esame. A supporto delle dispense sono proposti (vedi sotto) dei link a degli esercizi con soluzione e non. Tali esercizi sono quelli che verranno svolti nelle esercitazioni e sono un'ottima base per riuscire a superare brillantemente la prova scritta.

Prima settimana

Seconda settimana

Terza settimana

Quarta settimana e successive

Post fine corso



Le dispense del corso sono parzialmente tratte dal seguente testo, disponibile solo in inglese, che rappresenta il testo di riferimento del corso. Vi si possono trovare molti spunti ed argomenti correlati con quelli trattati a lezione:

dragon
Compilers: Principles, Techniques, and Tools
Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman
Addison-Wesley Pub Co
ISBN: 0201100886

Esercizi con soluzione e non:

Analisi Lessicale
Analisi Sintattica
Analisi Semantica
Generazione del Codice

Gli esercizi di cui sopra (analisi lessicale e analisi sintattica) sono stati riarrangiati (grazie per la collaborazione allo studente Ciampichetti Michele) e corretti. Di seguito trovate i link ai pdf. La notazione delle soluzioni è più o meno quella che abbiamo usato a lezione (in caso di discordanze dovrebbe essere chiaro il significato). La cosa più eclatante è la scrittura degli item LR(1). Noi li scriviamo, ad esempio, A -> A.bC, $/d Gli stessi item, nelle soluzioni, sono invece scritti A -> A.bC /$/d

Esercizi riarrangiati:

Analisi lessicale: zip

Analisi sintattica: zip

Link ad altri corsi simili:
Pisa
Bologna

Modalità di esame


E' prevista una prova scritta con possibilità di prova orale integrativa. Come da regolamento verranno svolti 8 appelli durante i periodi di sospensione: 2 a giugno/luglio 2004, 2 a settembre 2004, 2 a dicembre/gennaio 2004, 2 a marzo/aprile 2004. Ogni studente può tentare lo scritto in ogni appello.

Appelli

  1. Appello: Venerdì 9 Luglio 2004 dalle ore 10:00 in aula AA1 a Camerino (per Ascoli chiedere in portineria)
  2. Appello: Giovedì 22 Luglio 2004 dalle ore 10:00 in aula AA1 a Camerino (per Ascoli chiedere in portineria)
  3. Appello:  Ad Ascoli: Giovedì 9 Settembre 2004 dalle ore 10. A Camerino: Venerdì 10 Settembre 2004 dalle ore 10:00 in aula AA1
  4. Appello: Ad Ascoli: Giovedì 23 Settembre 2004 dalle ore 10. A Camerino: Venerdì 24 Settembre 2004 dalle ore 10:00 in aula AA1
  5. Appello:
  6. Appello: Lunedì 10 gennaio 2005 dalle ore 9:30 alle ore 12:30 in aula AA1 del Polo Informatico
  7. Appello: Venerdì 8 aprile 2005 dalle ore 9:30 alle ore 12:30 in videoconferenza

Nota speciale per gli studenti non frequentanti

Come ribadito sopra, si sottolinea che il materiale su cui studiare sono le dispense fornite dal docente e che la preparazione della prova scritta può essere fatta sugli esercizi proposti nei link succitati.


Luca Tesei
Last modified: Tue Apr 26 12:25:28 CEST 2005