Sei sulla pagina 1di 12

Corso di

Linguaggi di Programmazione + Lab.


A.A. 2013-2014
Docente: Marco de Gemmis

Presentazione dellinsegnamento
Informazioni generali
Corso: Linguaggi di Programmazione + Laboratorio
Docente: Marco de Gemmis - Ricercatore
Lezioni: 1 Ottobre 2013 - 10 Gennaio 2014
Marted e Venerd dalle ore 9.30 alle ore 14.30
Ricevimento: per appuntamento, in genere dopo le lezioni
Web
Informazioni sul corso, esami, tracce e materiale didattico
http://www.di.uniba.it/~swap/degemmis.html
seguendo il link courses
avvisi generici: http://informatica.di.uniba.it/info_comuni/bacheca.php
e/o sulla pagina del corso
Contatti
Telefono: 0805442276
Email: marco.degemmis@uniba.it

2
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Tempi
72 ore di lezioni frontali equivalenti a 9 crediti T1
45 ore di laboratorio equivalenti a 3 crediti T2
183 ore di studio individuale
Totale crediti 12 (9 T1 + 3 T2)
Prerequisiti
Matematicadiscreta
Programmazione imperativa
Conoscenza dei linguaggi C / C++

3
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Obiettivi formativi
Fornire gli strumenti fondamentali, formali e pratici, per la
definizione di linguaggi di programmazione e la progettazione dei
loro traduttori.
Strutturazione del corso
Prima parte:
Si illustrano gli aspetti pi significativi dei linguaggi di
programmazione, la loro evoluzione ed i concetti che stanno alla base
della traduzione dei linguaggi di alto livello
Si forniscono i concetti pi significativi della teoria dei linguaggi
formali, enfatizzando gli aspetti generativi e riconoscitivi dei linguaggi
formali
Seconda parte:
Si studieranno i paradigmi di programmazione, approfondendo quello
orientato agli aggetti
Si presentano/sviluppano in laboratorio alcuni esempi di progettazione
e realizzazione di programmi per la manipolazione di grammatiche

4
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Obiettivi professionalizzanti
Comprensione profonda dei linguaggi di
programmazione e dei principali paradigmi di
programmazione
Conoscenza delle tecniche di analisi e traduzione dei
linguaggi di programmazione
Conoscenza delle espressioni regolari e delle
grammatiche

5
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Contenuto
Parte I: Linguaggi di Programmazione e Compilatori
Linguaggi di programmazione. Gerarchia di linguaggi di
programmazione e di macchine astratte: linguaggi macchina,
linguaggi assembler, linguaggi di alto livello. Linguaggi di alto livello:
interpretazione e compilazione, sintassi, semantica, analisi di
programmi. L'evoluzione dei linguaggi di programmazione
Linguaggi formali. Inquadramento della teoria dei linguaggi formali
nell'informatica teorica. Classificazione di Chomsky. Operazioni sui
linguaggi e propriet di chiusura delle classi di linguaggi rispetto
alle operazioni. Generazione di linguaggi: un'introduzione alle
grammatiche. Carte sintattiche e BNF, grammatiche generative,
derivazione, linguaggio generato da una grammatica, equivalenza
tra grammatiche, relazione tra grammatiche e linguaggi, non
determinismo, correttezza di una grammatica: indecidibilit del
problema
6
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Contenuto
Parte I: Linguaggi di Programmazione e Compilatori
I compilatori. Il modello di un compilatore: analizzatore
lessicale, analizzatore sintattico, analizzatore semantico,
generazione e ottimizzazione del codice
Analisi lessicale. Linguaggi regolari, espressioni regolari,
automi e linguaggi a stati finiti. Teoremi di equivalenza
Analisi sintattica. Linguaggi liberi da contesto

7
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Contenuto
Parte I: Linguaggi di Programmazione e Compilatori
Cenni sulla Tabella dei simboli (TS). Costruzione ed
interazione, contenuti, operazioni, organizzazione di TS per
linguaggi non a blocchi, rappresentazione di TS. Tabelle
hash. Linguaggi a blocchi: organizzazione di TS. TS a stack
Gestione della memoria (statica, a stack, a heap)
Cenni su analisi semantica, formato intermedio del
programma sorgente, espressioni e priorit degli operatori,
generazione del codice oggetto, gestione degli errori

8
Corso di Linguaggi di Programmazione + Laboratorio
Programma del corso
Contenuto
Parte II: Laboratorio
Programmazione orientata agli oggetti in C++
Esercitazioni guidate
Realizzazione di programmi per manipolare le grammatiche

9
Corso di Linguaggi di Programmazione + Laboratorio
Prove desame
Prova scritta
esecuzione di esercizi sulla teoria dei linguaggi
formali
enunciazione di definizioni
dimostrazione di teoremi della teoria dei linguaggi
formali
esecuzione di esercizi sulla programmazione
orientata agli oggetti.
Prova orale
Discussione prova scritta

10
Corso di Linguaggi di Programmazione + Laboratorio
Organizzazione e valutazione prove desame
Prova scritta
Si supera con una valutazione minima pari a 18
Prova orale
Va sostenuta nello stesso appello della prova scritta
Ammissione vincolata al superamento della prova scritta
Eventuale modifica della valutazione della prova scritta

Valutazione finale
valutazione della prova scritta eventualmente modificata dal
colloquio
Prove in itinere
Due prove sulla teoria dei linguaggi formali e programmazione
orientata agli oggetti
esonero dalla prova scritta fino alla sessione di recupero
(settembre 2014)
11
Corso di Linguaggi di Programmazione + Laboratorio
Testi di riferimento
Semeraro, G., Appunti di teoria dei linguaggi formali,
Adriatica, Bari, 1996.
Maurizio Gabbrielli, Simone Martini, Linguaggi di
Programmazione, Principi e paradigmi. McGraw-Hill
Joyanes Aguilar Luis. Fondamenti di programmazione C++.
Algoritmi, strutture dati e oggetti. McGraw-Hill.
Libera scelta riguardo a manuali di C / C++
Dispense del corso
Altri
Hopcroft, Motwani, Ullman, Automi, linguaggi e calcolabilit. Addison-Wesley
Aho, A. V., Sethi, R., and Ullman, J. D., Compilers, Principles, Techniques and
Tools, Addison-Wesley, 1988.
Zarrella, J., Concetti dei Linguaggi di Programmazione, Scienze Tecnologiche
Informatiche, Franco Angeli, 1989.
Sethi, R., Linguaggi di Programmazione, Zanichelli, 1994.

12
Corso di Linguaggi di Programmazione + Laboratorio

Potrebbero piacerti anche

  • Matlab 1
    Matlab 1
    Documento34 pagine
    Matlab 1
    a827477
    Nessuna valutazione finora
  • Ese AN
    Ese AN
    Documento22 pagine
    Ese AN
    a827477
    Nessuna valutazione finora
  • Cost Rutti
    Cost Rutti
    Documento10 pagine
    Cost Rutti
    a827477
    Nessuna valutazione finora
  • Thinkpython Italian
    Thinkpython Italian
    Documento252 pagine
    Thinkpython Italian
    a827477
    Nessuna valutazione finora
  • CalcNumTa1213 Syllabus
    CalcNumTa1213 Syllabus
    Documento2 pagine
    CalcNumTa1213 Syllabus
    a827477
    Nessuna valutazione finora
  • Esercizi Parte2
    Esercizi Parte2
    Documento3 pagine
    Esercizi Parte2
    a827477
    Nessuna valutazione finora
  • Esercizicap1 4
    Esercizicap1 4
    Documento2 pagine
    Esercizicap1 4
    a827477
    Nessuna valutazione finora
  • Capitolo 2
    Capitolo 2
    Documento51 pagine
    Capitolo 2
    a827477
    Nessuna valutazione finora
  • Errata Corrige Kurose
    Errata Corrige Kurose
    Documento1 pagina
    Errata Corrige Kurose
    a827477
    Nessuna valutazione finora
  • Guida Ddos 2015
    Guida Ddos 2015
    Documento42 pagine
    Guida Ddos 2015
    a827477
    Nessuna valutazione finora
  • Capitolo 1
    Capitolo 1
    Documento52 pagine
    Capitolo 1
    a827477
    Nessuna valutazione finora
  • Rules
    Rules
    Documento1 pagina
    Rules
    a827477
    Nessuna valutazione finora