====== Linguaggi e Compilatori ======
----
===== News =====
* Un corso simile era attivato alla Laurea Magistrale in Computer Science fino all'anno accademico 2019/2020. La pagina di tale corso è disponibile al seguente [[http://didattica.cs.unicam.it/doku.php?id=didattica:magistrale:com:ay_1920:main|link]].
* 29 Settembre 2020: Il corso verrà tenuto nel **secondo semestre**.
----
===== Informazioni Generali =====
**Docente**:
* [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=572&ru=RU|Luca Tesei]]
**ESSE3 Link**
* [[https://https://didattica.unicam.it/Guide/PaginaADErogata.do?ad_er_id=2020*N0*N0*S2*16609*10570&ANNO_ACCADEMICO=2020&mostra_percorsi=N|Linguaggi e Compilatori - AA 2020/2021]]
**Orario**:
* Il corso è al **secondo semestre**: 1 Marzo 2021 - 11 Giugno 2021. Orario: Martedì 11-13 Aula LA1 Polo Lodovici e Giovedì 11-13 Aula LA1 Polo Lodovici
**Stanza Webex**
* [[http://unicam.webex.com/meet/luca.tesei/|Luca Tesei's room]]
**Ricevimento**:
* Via Webex o in presenza previo appuntamento con il docente via email.
**Sigla Ufficiale**:
* La sigla ufficiale del corso è **LC2021**
**Lezioni Registrate e Avvisi**:
* Saranno disponibili sulla pagina del corso in **Google Classroom**: accedere a [[https://classroom.google.com/c/Mjg0NDQ0NDk1NzIz?cjc=5cxm2bp]] loggandosi con le credenziali @studenti.unicam.it
----
===== Obiettivi del Corso =====
Si veda la [[https://didattica.unicam.it/Guide/PaginaADErogata.do?ad_er_id=2020*N0*N0*S2*16609*10570&ANNO_ACCADEMICO=2020&mostra_percorsi=N|Descrizione ESSE3]]
----
===== Contenuti del Corso =====
Si veda la [[https://didattica.unicam.it/Guide/PaginaADErogata.do?ad_er_id=2020*N0*N0*S2*16609*10570&ANNO_ACCADEMICO=2020&mostra_percorsi=N|Descrizione ESSE3]]
----
===== Materiale =====
**Lezioni Registrate e Avvisi**
* Saranno disponibili sulla pagina del corso in Google Classroom: accedere a https://classroom.google.com/c/Mjg0NDQ0NDk1NzIz?cjc=5cxm2bp loggandosi con le credenziali @studenti.unicam.it
**Libri di Testo**
* Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman, Compilatori. Principi, tecniche e strumenti. Seconda Edizione, Pearson, 2009.
* Terence Parr [[https://pragprog.com/book/tpantlr2/the-definitive-antlr-4-reference|The Definitive ANTLR4 Reference]], The Pragmatic Programmers, 2012.
**Slides**
Le slide seguenti sono in inglese, saranno incrementalmente tradotte in italiano:
- {{ :didattica:triennale:lc:ay_2021:01_introduction.pdf | Introduction}}
- {{ :didattica:triennale:lc:ay_2021:lexicalanalysis.pdf | Lexical Analysis}}
- {{ :didattica:triennale:lc:ay_2021:syntaxanalysis.pdf | Syntax Analysis}}
- {{ :didattica:magistrale:com:ay_1920:semanticanalysis-i.pdf |Semantic Analysis I}}
- {{ :didattica:magistrale:com:ay_1920:semanticanalysis-ii.pdf |Semantic Analysis II}}
- {{ :didattica:triennale:lc:ay_2021:antlr.pdf |ANTLR 4}}, {{ :didattica:magistrale:com:ay_1920:antlr4slides.zip |Slides Code}}
**Esercizi con Soluzioni**
Anche i seguenti esercizi sono in inglese e verranno incrementalmente tradotti in italiano.
Analisi Lessicale:
- {{ :didattica:magistrale:flc:ay_1920:lexical_analysis_exercise_session_i.pdf |Esercitazione Analisi Lessicale I}}
- {{ :didattica:magistrale:flc:ay_1920:lexical_analysis_exercises_3-4-5.pdf |Analisi Lessicale Esercizi 3-4-5}}
Analisi Sintattica:
- {{ :didattica:magistrale:flc:ay_1920:syntax_analysis_exercise_session_i.pdf |Esercitazione Analisi Sintattica I}}
- {{ :didattica:magistrale:flc:ay_1920:syntax_analysis_exercise_session_ii.pdf |Esercitazione Analisi Sintattica II}}
- {{ :didattica:magistrale:flc:ay_1920:syntaxanalysis_exercise1.pdf |Analisi Sintattica Esercizio 1}}
Analisi Semantica:
- {{ :didattica:magistrale:flc:ay_1920:semanticanalysis_exercise1.pdf |Analisi Semantica Esercizio 1}}
- {{ :didattica:magistrale:flc:ay_1920:semanticanalysis_exercise3.pdf |Analisi Semantica Esercizio 3}}
- {{ :didattica:magistrale:flc:ay_1920:semanticanalysis_exercise5.pdf |Analisi Semantica Esercizio 5}}
- {{ :didattica:magistrale:flc:ay_1920:semanticanalysis_exercise9.pdf |Analisi Semantica Esercizio 9}}
**Esempi di prove scritte passate con soluzione (in inglese)**
- {{:didattica:magistrale:flc:ay_1718:flc1718appello2.pdf| Testo 1}}, {{:didattica:magistrale:flc:ay_1718:flc1718app2solution.pdf| Testo 1 con Soluzione}}
- {{ :didattica:magistrale:com:ay_1920:flc1819appello1.pdf |Testo 2}}, {{ :didattica:magistrale:com:ay_1920:flc1819appello1_solution_full.pdf |Testo 2 con Soluzione}}
- {{ :didattica:magistrale:com:ay_1920:flc1819appello2.pdf |Testo 3}}, {{ :didattica:magistrale:com:ay_1920:flc1819appello2_solution_full.pdf |Testo 3 son Soluzione}}
- {{ :didattica:magistrale:com:ay_1920:flc1819appello4.pdf |Testo 4}}, {{ :didattica:magistrale:com:ay_1920:flc1819appello4solutionwithnotes.pdf |Testo 4 con Soluzione}}
----
===== Progetto =====
**Progetto da inviare il giorno precedente delle prove parziali ESSE3 denominate "LC2021 APPELLO X - Consegna Progetto" in ogni appello X:**
- La descrizione del progetto da realizzare tramite il tool ANTLR4 è disponibile nella piattaforma **Google Classroom**.
----
===== Esami =====
**Date Esami A.A. 2020/2021**
Per l'iscrizione alle prove parziali, sia scritte che per consegna del progetto, e per la registrazione del voto finale si consulti il [[https://didattica.unicam.it|Portale ESSE3]] previo login.
**Modalità di Esame**
L'esame consiste di una prova scritta, contenente esercizi con risposta aperta, e di un progetto, da realizzare tramite il tool ANTLR4 (si veda la sezione "Progetto" qui sopra). La prova scritta e il progetto sono due prove parziali indipendenti (si vedano le date fissate in ESSE3) e possono essere superate anche in appelli differenti. Il voto finale, che è la media dei voti delle due prove parziali, può essere ottenuto e registrato solo se entrambe le prove parziali sono state superate con un voto di almeno 18/30.
L'**iscrizione alla prova scritta** deve essere fatta in ESSE3 entro la scadenza indicata. **Durante la prova scritta ogni studente potrà consultare un foglio A4 scritto a mano fronte-retro contenente appunti personali**.
**Istruzioni per inviare il progetto**
La descrizione del progetto contiene le istruzioni dettagliate per la consegna dello stesso. Si leggano quindi con attenzione queste istruzioni.
** Risultati dell'Esame **
* I risultati delle prove parziali verranno comunicati tramite email o tramite ESSE3 (dipende dal numero di studenti)
* Una valutazione positiva (>=18/30) di una singola prova parziale rimane valida un anno solare a partire dalla data in cui è stata ottenuta oppure appena lo studente riconsegna una prova parziale dello stesso tipo.
* Se i voti delle due prove parziali sono entrambi disponibili e accettati, il voto finale può essere registrato in ESSE3 utilizzando gli appelli denominati "LC2021 APP X Registrazione Voto Finale" e iscrivendosi ad esse entro la data di scadenza indicata.