AVVISO con l'avvio dell'insegnamento per l'AA2016/17 il sito migrerà verso la piattaforma E-learning ADA del Dipartimento

Corso di Linguaggi di Programmazione [cod. 010194] • corso A [A-L] • CdS Informatica TPS [cod. 7749] • DIBUniBA

Orario A.A. 2015-2016 [Aula II]: lun 9:00-12:00, mer 10:30-13:30, ven 9:00-11:00

Ricevimento vedi orario aggiornato: Scheda UniBA

Ultime Notizie

12/04 Pubblicati i risultati della prova scritta dell' appello. Coloro che hanno superato la prova, iscritti d'ufficio su Esse3 (2 turni), sono convocati alla prova orale / verbalizzazione.
Per gli ammessi con riserva [15 ≤ voto ≤ 17] la prova orale integrativa è obbligatoria.
NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email).
01/01 Con l'avvio dell'insegnamento per l'AA2016/17 il sito migrerà sulla piattaforma E-learning ADA del Dipartimento
15/11 Pubblicati i risultati della prova scritta del appello. Coloro che hanno superato la prova, iscritti d'ufficio su Esse3, sono convocati alla prova orale / verbalizzazione del 18 p.v. (come concordato in aula, NON differibile).
Calendario ore 10: verbalizzazione diretta; ore 10:15: ammessi con riserva; ore 15: (eventuali) altri, salvo urgenze
Per gli ammessi con riserva [15 ≤ voto ≤ 17] la prova orale integrativa è obbligatoria.
NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email).
30/10 Il ricevimento previsto per martedì 1/11 (festivo) potrà essere recuperato l'indomani alle 15
19/09 Pubblicati i risultati della prova scritta del appello. Gli studenti ammessi sono iscritti d'ufficio e convocati alla prova orale/verbalizzazione del 22 p.v. . Per gli ammessi con riserva [15 ≤ voto ≤ 17] la prova orale integrativa è obbligatoria. NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email in sostituzione dello stesso).
NBGli studenti la cui prova scritta abbia evidenziato gravi insufficienze (voto < 10) sono pregati di seguire le esercitazioni di tutorato nonché di usare le ore di ricevimento per colmare le lacune prima di ripresentarsi a un appello
02/09 Pubblicati i risultati della prova scritta del appello. Gli studenti ammessi sono iscritti d'ufficio e convocati alla prova orale/verbalizzazione del 7 p.v. . Per gli ammessi con riserva [15 ≤ voto ≤ 17] la prova orale integrativa è obbligatoria. NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email in sostituzione dello stesso).
05/08 Il ricevimento è sospeso fino a fine mese: riprenderà il 30/8
18/07 Il turno di orali previsto per il 18 è stato rinviato al 20/7. Gli iscritti sono stati avvisati via Esse3.
Il ricevimento del 19 è confermato
12/07 Pubblicati i risultati della 3^ prova scritta. Gli ammessi sono stati iscritti d'ufficio alla prova orale/verbalizzazione (Aula Hume). È stato inserito un turno aggiuntivo (18/7) per coloro i quali avevano prove concomitanti. Per gli ammessi con riserva [15 ≤ voto ≤ 17] la prova orale è obbligatoria (come recupero). Gli altri possono accettare il voto, una volta verbalizzato dopo la prova orale. NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email in sostituzione dello stesso).
04/07 Si prega di evitare di inviare email in sostituzione della prenotazione via Esse3, specie a tempo scaduto.
27/06 Pubblicati i risultati della 2^ prova scritta. Per gli ammessi con riserva [15 ≤ voto ≤ 17] la prova orale è obbligatoria (come recupero). Gli altri possono accettare il voto, una volta verbalizzato dopo la prova orale. I non ammessi a causa di insufficienze gravi (voto < 10) o ritiro sono caldamente invitati a colmare le lacune evidenziate prima di partecipare ad una prossima prova. NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email in sostituzione dello stesso).
24/06 Il ricevimento di martedì 28 è anticipato alle 9:45
20/06 Si ricorda che non è ammessa la prenotazione via email e che il periodo ha una scadenza da rispettare. I prenotati che si erano ritirati dalla prova precedente sono pregati di riconsiderare l'iscrizione alla luce della preparazione [pochi hanno contattato il docente per chiarimenti].
10/06 Pubblicati i risultati della 1^ prova scritta. Per gli ammessi con riserva [voto<18] la prova orale è ovviamente obbligatoria (come recupero). Gli altri possono accettare il voto, una volta verbalizzato dopo la prova orale. L'iscrizione è aperta per poter indicare in nota l'eventuale richiesta di bonus per prova in itinere e discussione parser. NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email in sostituzione dello stesso).
25/05 Lunedì 30/5 (h. 12:30-14) e Mercoledì 1/6 (9:30-11): esercitazioni libere.
25/05 Lezioni ultimate. Venerdì 27: simulazione prova d'esame (h. 9.30)
17/05 Come da avviso in bacheca el., il ricevimento è rimandato a giovedì (stessa ora) causa partecipazione a collegio di dottorato.
16/05 Le ultime lezioni del Mercoledì partiranno dalle 10 (se l'aula è libera) altrimenti dalle 10:30
16/04 Bonus prova in itinere
fascia [29-30L]: 5p.; fascia [24-28]: 4p.; fascia [18-23]: 3p.; fascia [14-17]: 2p.; fascia [10-13]: 1p.; altri 0p.
13/05 La lezione di Lunedi 16/5 scambierà l'orario con quella di Analisi
09/05 Mercoledì 11/5 lezione dalle 9:30-11 in aula II. Dopo la pausa si riprenderà in aula B, p.t. con la parte relativa a leg
27/04 Mercoledì 4/5 lezioni sospese per inaugurazione anno accademico.
22/04 Nei prossimi mercoledì saranno previsti recuperi: inizio lezione ore 9:30.
15/04 Pubblicati i risultati dell'8^ prova scritta. Dopo le 12 saranno verbalizzati i risultati complessivi dell'appello. NB Per eventuali chiarimenti / visione degli elaborati, si rimanda all'orario di ricevimento (astenersi dall'uso di email in sostituzione dello stesso).
01/04 A causa di un incontro con ospiti esterni in Aula II, la lezione di venerdì 8/4 si terrà nel pomeriggio (15-17).
29/03 Chiarimento: il ricevimento oggi è sospeso. In caso di necessità potrà essere recuperato domani.
23/03 Le lezioni riprendono il 30/3 con il nuovo orario.
16/03 La prova in itinere si terrà durante la pausa-lezioni [11-15/4]. A breve su Esse3 sarà aperta la prenotazione riservata alle matricole AA2016.
25/02 Avviso per le Matricole: Inizio corso AA-2016, Lunedì 29, ore 9, Aula II. Il ritardo iniziale potrà essere recuperato nella lezione del Venerdì. Nota: l'orario è provvisorio con ore di 50' a causa di lavori in corso fino a metà marzo.
09/02 Si ricorda di munirsi degli strumenti (peg/leg) indicati per la realizzazione automatica di parser in C. In molte distribuzioni Linux il pacchetto è presente nei repository ufficiali.
2015 NB L'insegnamento dall'AA 2015 ha denominazione/codice/programma diversi rispetto agli AA AA precedenti. Cfr. sito del precedente insegnamento

Diario delle Lezioni

  ✐ FINE CORSO AA 2016 ✎  
01/06 Esercitazione: linguaggi liberi: grammatiche, ambiguità, applicazione del pumping lemma
30/05 Esercitazione: linguaggi regolari: automi, espr. regolari, applicazione del pumping lemma
27/05 Esercitazione: simulazione prova scritta.
25/05 Paradigma Funzionale Teorema. Ambienti. Tipi. Oggetti infiniti. Aspetti imperativi.
23/05 Paradigma Funzionale Introduzione. Computazione senza stato (riduzione). Valutazione (eager, per nome, lazy).
20/05 Paradigma Object-Oriented Esercizi
18/05 Paradigma Object-Oriented: Polimorfismo di sottotipo ed universale. Tipi generici in Java. Wildcard. Array. Covarianza e controvarianza.
16/05 Paradigma Object-Oriented: Incapsulamento. Sottotipi e gerarchia. Ereditarietà. Selezione dinamica dei metodi.
13/05 Paradigma Object-Oriented Limiti degli ADT. Oggetti: principi fondamentali, classi e meccanismi di delega. Memorizzazione.
11/05 Astrazione Dati: Tipo di dato astratto, capsula, information hiding. Moduli. Tipi generici
11/05 Analisi sintattica con leg Esercizi
09/05 Strutture Dati: Tipi composti e costruttori: insiemi, puntatori, tipi ricorsivi, funzioni. Relazioni di Equivalenza e compatibilità. Conversioni tra tipi. Polimorfismo: ad hoc, universale. Dangling reference e Garbage Collection.
06/05 Strutture Dati: Tipi e sistemi di tipo. Sicurezza: type checker. Tipi semplici e tipi composti (record, array).
02/05 Astrazione sul controllo: astrazione funzionale. Sottoprogrammi. Modalità dei passaggi di parametro. Funzioni di ordine superiore. Eccezioni.
29/04 Strutture di controllo: Comandi per il flusso di controllo. Composizione. Salti. Condizionali. Iterazioni. Ricorsione. Ricorsione in coda.
27/04 Strutture di controllo: espressioni e loro valutazione. Notazioni: infissa, polacca, polacca inversa. Variabili. Comandi: effetti collaterali.
27/04 Gestione della memoria: gestione della memoria e scope statico e dinamico.
22/04 Gestione della memoria: statica e dinamica. RDA per blocchi e sottoprogrammi. Liste libere a dim. fissa o variabile, singole e multiple.
15/04 Nomi e Ambiente: Regole di scope statico e dinamico. Esercizi.
18/04 Nomi e Ambiente: Binding, ambienti, operazioni, blocchi. Regole di scope. Esempi
11/04 Prova in itinere.
08/04 Esercitazione finale sugli strumenti formali per la specifica dei linguaggi di programmazione
06/04 Specifiche di grammatiche peg. Esercitazione su espressioni linguaggi liberi e regolari
04/04 Introduzione a peg. Esercitazione su espressioni regolari ed automi
01/04 Esercitazione su espressioni regolari ed automi
30/03 Analisi Sintattica e Linguaggi Liberi: Esercizi: Pumping Lemma per i ling. liberi e costruzione grammatiche. Algoritmi per First e Follow. Parsing di grammatiche LL(1) guidato da tabella.
23/03 Analisi Sintattica e Linguaggi Liberi: Esercizi sui Pumping Lemma. Oltre i linguaggi liberi: teorema della gerarchia. Parsing deterministico: top-down/bottom-up. Forme normali: LL(K), LR(k), Chomsky, Greibach. Trasformazione delle grammatiche libere. Insiemi First e Follow
21/03 Analisi Sintattica e Linguaggi Liberi: Richiami sui ling. liberi e le loro grammatiche. Automi a Pila. Corrispondenza. Pumping Lemma per i Linguaggi Liberi. Esercizi
18/03 Analisi Lessicale e Linguaggi Regolari: Esercizi su ER -> NFA -> DFA, minimizzazione
16/03 Analisi Lessicale e Linguaggi Regolari: Minimizzazione di automi. Pumping Lemma per i Linguaggi Regolari. Esercizi.
14/03 Analisi Lessicale e Linguaggi Regolari: Grammatiche Regolari. Corrispondenze tra automi, espressioni e grammatiche regolari (cfr. approfondimenti cap.3 del testo). Esercizi.
11/03 Analisi Lessicale e Linguaggi Regolari: Automi a stati finiti: non-deterministici e deterministici. Equivalenza NFA - DFA. Esercizi
09/03 Analisi Lessicale e Linguaggi Regolari: Token e lessemi. Operazioni su stringhe e linguaggi. Espressioni regolari. Esercizi
07/03 Fondamenti: semantica statica; Problema della fermata, calcolabilità e indecidibilità; Funzioni e programmi
04/03 Descrizione dei ling. di programmazione: Compilazione: fasi. Vincoli Contestuali. Semantica. Pragmatica. Semantica operazionale (+esempi) [cfr. approfondimenti 2.1]. Esercizi sulle grammatiche
02/03 Descrizione dei ling. di programmazione: introduzione, grammatiche, EBNF, frasi, derivazione, alberi di derivazione, ambiguità.
29/02 Macchine astratte: Implementazione (hw,sw,fw). Interpretazione e compilazione. Gerarchia delle macchine astratte.
29/02 Organizzazione del corso.
  ✐ INIZIO CORSO AA 2016 ✎  

Strumenti

  • Materiale usato durante il corso (slide).
  • Wiki: link utili (PEG), collaborazione nello studio e coordinamento dei lavori, tracce AA precedente
  • strumenti PEG: esempi e lucidi

Programma e Testi

Programma preliminare [2016], Programma [2015]
[cfr. anche gli argomenti trattati nella sez. Diario]

Testi adottati / consigliati

(i principali sono disponibili in biblioteca)
Linguaggi di programmazione
complementi di Linguaggi Formali e Compilatori

Esercitazioni Pratiche

Data la grammatica di un (frammento di un) linguaggio di programmazione realizzare (mediante strumenti automatici tipo PEG) un programma che implementi: uno scanner per un linguaggio di programmazione di cui viene documentato formalmente il vocabolario; un parser ricorsivo discendente per un frammento di linguaggio di programmazione.

Le esercitazioni svolte per la parte di laboratorio vanno documentate: eventuali assunzioni fatte, grammatiche EBNF, specifiche tipo PEG e test di esecuzione (specie i casi di errore). Ogni gruppo (preferibilmente di 2-3 studenti) dovrà produrre una soluzione originale del problema. A tal fine può essere utile registrare il proprio parser sul wiki.

Esami

Bacheca Appelli presso la segreteria Esse3
colonna a destra, sezione Esami • CdS: 7749 • Att.Didattica: 010194

Modalità d'esame

  • In ogni appello, è prevista una prova scritta ed una orale, durante la quale viene anche discusso l'elaborato relativo al parser realizzato
  • Sono ammessi alla prova orale dell'appello coloro che abbiano riportato un voto sufficiente (≥ 18) nella prova scritta. A discrezione del docente può essere concessa l'ammissione alla prova orale con riserva anche con votazioni di poco inferiori (in tal caso la riserva andrà sciolta nella prova orale, preliminarmente)
  • Per la prova orale, sarà possibile anche la discussione dell'elaborato (parser) realizzato nelle esercitazioni sulla base della documentazione prodotta
  • Sono previste prove in itinere riservate ai frequentanti dell'anno corrente con premialità per l'esame
Documenti
tesserino universitario
(se sprovvisti, in subordine, altro doc. di riconoscimento)

Prenotazioni

  • Prova scritta Attraverso l'area studenti della segreteria Esse3 (indicata come prova parziale)
    • NB: si rammenta che tale servizio chiude qualche gg. prima della data della prova.
    • In caso di problemi con la prenotazione, contattare il docente di persona o per telefono prima della chiusura stabilita. Non vale come prenotazione l'invio di email
  • Prova orale: [NB] prenotazione via Esse3 a cura del docente
    • l'eventuale documentazione del parser svolto nelle esercitazioni - su supporto cartaceo - va consegnata all'inizio della prova orale

FAQ

Serve mandare un'email per utilizzare l'orario di ricevimento standard?
Non è strettamente necessario (controllate gli avvisi) ma può essere utile
Quanti appelli sono previsti nella prima sessione (estiva)?
Per gli insegnamenti del II sem., sono previsti 3 appelli tra Giugno e Luglio
Qual è il tipo di esercizi previsti nelle tracce d'esame?
Si tratta di esercizi simili a quelli che si trovano alla fine dei capitoli in programma dal libro di testo

Contatti

NB  Si prega di fare un uso corretto della comunicazione via email; in particolare:
  1. indicare sempre nominativo e matricola
  2. specificare oggetti precisi e non generici, premettendo preferibilmente [LdP] per agevolare lo smistamento
  3. non dare per scontato che i messaggi, per il solo fatto di essere stati inviati, siano anche ricevuti e letti in tempo utile
  4. non usare questo canale per questioni formali/urgenti:
    • esso non è alternativo al ricevimento: specie pre le problematiche legate agli esami
    • non porre problemi personali chiedendo deroghe rispetto alle modalità descritte in questa pagina