Linguaggi di Programmazione e compilatori

Slides:



Advertisements
Presentazioni simili
Laura CAROSI Lezioni Francesca SALVI Esercitazioni
Advertisements

Programmazione Docente: Eugenia Occhiuto
Università degli Studi G. DAnnunzio (Chieti – Pescara) Dipartimento di Scienze Storia dellinformatica Laurea in Economia Informatica Stefano Bistarelli.
Fondamenti di Informatica I a.a Fondamenti di Informatica I Presentazione del corso Docenti Monica Bianchini Monica Bianchini Dipartimento di.
Reti Logiche e Architettura dei Calcolatori
18/10/2004Programmazione e Laboratorio di Programmazione – Luca Tesei1 Programmazione e Laboratorio 2004/05 Informazioni Introduttive.
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Presentazione del corso Alberto Polzonetti
1 Implementazione di Linguaggi 2 PARTE 5 Implementazione di Linguaggi 2 PARTE 5 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
Type Checking (1° parte)
Informazioni sul Corso
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Docente: Eugenia Occhiuto web:
1 Metodologie di Programmazione. 2 Contenuto generale §tecniche per la programmazione orientata ad oggetti (in piccolo) §esemplificate utilizzando il.
1 SPEGNETE GRAZIE. 2 MATEMATICA (A-L) a.a Numero di crediti :8 Docente:Prof. Gianni Ricci Periodo di svolgimento del corso: primo semestre.
Elementi di Informatica
Reti Logiche Luciano Gualà home page
Reti Logiche e Architettura dei Calcolatori Luciano Gualà home page
Elementi di Algoritmi e Strutture Dati
Cultura Tecnologica del Progetto Sezioni P3, P4, P5
Informatica A (informatica grafica) Allievi di Ingegneria Civile, L-Z
Analisi Statistica del Reddito e delle Condizioni di Vita
Laurea Specialistica in Informatica
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Raffaella Rizzi DISCO Dipartimento di Informatica Sistemistica e Comunicazione Edificio U14 - primo piano - stanza.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
06/10/2009Basi di dati , presentazione1 Basi di dati (ordinamento DM 509/1999) Basi di dati I (ordinamento DM 270/2004) DocentePaolo.
04/10/2010Basi di dati , presentazione1 Basi di dati I (ordinamento DM 270/2004) già Basi di dati (ordinamento DM 509/1999) DocentePaolo.
Obiettivi del corso Programmazione Corso di laurea in Informatica.
A.A. 2005/06 – II semestre 9 CFU – 60 ore Prof. Alessandro Cassol
Linguistica generale, parte II a.a Orari Lunedì ore 14-16, aula A Martedì ore 11-13, aula A Mercoledì ore 9-11, aula E Martedì 21: Aula Magna.
Corso di Laurea in INGEGNERIA MECCANICA
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
Corso di Laurea in Ingegneria Gestionale
Corso di Laurea in Ingegneria Informatica
Seconda Università degli studi di Napoli Facoltà di Architettura Corsi di Laurea in Design e Comunicazione – 3°anno CORSO DI MARKETING Codice A0275 Prof.
Stefano Cagnoni Dip. Ingegneria dellInformazione Parco Area delle Scienze 181a PARMA Tel FAX
Intelligenza Artificiale
Corso di Fondamenti di Informatica A Andrea Omicini Anno accademico 1999/2000 Università degli Studi di Bologna Facoltà di Ingegneria Corsi di Laurea in.
Elementi di Informatica Simone Scalabrin a.a. 2008/2009.
Corsi di laurea in Storia Napoli, 27 febbraio 2008 Università degli Studi di Napoli Federico II Porte Aperte.
Primo Rapporto annuale sui siti istituzionali delle Regioni Lanalisi dellaccessibilità dei siti con Kendo Paolo Subioli.
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
Facoltà di Ingegneria Fondamenti di Informatica a.a
IGEA un corso di informatica grafica edile-architettura.
Architettura degli Elaboratori
Informatica Grafica sez. A-G
Algoritmi e Strutture dati a.a. 2013/2014 Informazioni sul corso
Algoritmi e Strutture dati a.a. 2012/2013 Informazioni sul corso Dr Maria Federico.
Fondamenti di Programmazione
Tecnologie di InternetFondamenti di Linguaggi di Markup Dott. Nicola Dragoni Introduzione a e ai (Fondamenti di Markup Languages)
Università degli Studi dell’Aquila
lun mar mer gio ven SAB DOM FEBBRAIO.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
1 Laboratorio di Introduzione alla Programmazione-Informazioni §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Realtà Virtuale e Computer Animation
Algoritmi e Strutture Dati Introduzione agli algoritmi
1 Informazioni sull’esame §Esame orale su tutti gli argomenti trattati a lezione §Seminario: studio di un argomento avanzato, tipicamente di un formalismo.
Programmazione Web Presentazione del corso /2015.
Corso di laurea triennale in filosofia [L-5]
1 LINGUA INGLESE 1 LLEM Introduction to the triennio Lesson 2A A.A
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale Dott. Giorgio Cicerchia a.a ° Ciclo.
Fondamenti dei linguaggi di programmazione: automi.
Valutazione del corso Schede Modalita`. Compitini intermedi Tre compiti intermedi a risposta multipla 10 domande con 5 risposte di cui 1 sola giusta 4.
ELEMENTI DI INFORMATICA
Università degli Studi G. D’Annunzio (Chieti – Pescara) Dipartimento di Scienze Sistemi di Elaborazione Stefano Bistarelli Università degli Studi G. D’Annunzio.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
Università degli Studi G. D’Annunzio (Chieti – Pescara) Dipartimento di Scienze Tecnologie Web XHTML, CSS, JavaScript Stefano Bistarelli Università degli.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
Transcript della presentazione:

Linguaggi di Programmazione e compilatori 6 CFU - II° Anno

Informazioni generali Home Page: http://www.di.unipi.it/~tesei/unicam/LPC20032004.html Sigla: LPC Orario: Lun 11-13 [AB2] 17-19 [AB2] Mar 9-11 [AA1] 17-19** [AA1] ** Modificato

Informazioni Generali Ricevimento Mar 14-15 + 16-17 (buco nel mezzo perché c’è lezione) Email luca.tesei@unicam.it Ufficio Polo Informatico, 1° piano Telefono 0737 402572

Programma Introduzione: linguaggi di programmazione, paradigmi, storia. Macchine astratte: definizione, implementazione, compilazione, interpretazione Struttura generale di un compilatore: fasi di compilazione, primi concetti

Programma Analisi lessicale: riconoscimento di tokens, espressioni regolari, automi, algoritmi Analisi sintattica: grammatiche libere, automi a pila, analisi discendente, analisi ascendente, costruzione di tabelle LR(1), LL(1), LALR(1), SLR(1)

Programma Analisi semantica: attributi sintetizzati ed ereditati, schemi di traduzione Analisi statiche tramite attributi e regole della grammatica: type checking, ... Generazione del codice a triple (tipo assembly) Cenni all’ottimizzazione

Materiale Dispense, lucidi ppt distribuiti durante il corso Esercizi con soluzione e non (links sulla pagina web) Libro di riferimento: “Compilers, principles, techniques and tools” di Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman Addison-Wesley Pub

Esame Prova scritta e possibilità di prova orale integrativa Appelli 8: 2 giugno/luglio, 2 settembre/ottobre, 2 dicembre/gennaio, 2 marzo/aprile Per i non frequentanti: preparare l’esame su dispense + lucidi + esercizi con soluzione + ricevimenti dedicati

Discipline principali e collegate Sintassi dei linguaggi Linguaggi di programmazione Prove formali di proprietà dei programmi Semantica dei linguaggi LPC Architettura degli elaboratori

Possibili perplessità Nella vita non scriverò mai un compilatore Non si sa mai, e comunque almeno un parser, se fai il programmatore, lo dovrai prima o poi implementare A cosa mi serve studiare tutti questi algoritmi? Sono quelli che hanno stimolato gli informatici fin dagli inizi, sono ottimi esempi di formalizzazione e risoluzione di problemi, nella cultura di base di un informatico ci devono stare 

Altre perplessità? Noi non lo faremo, ma se volete vi posso dare indicazioni su come implementare le varie fasi (soprattutto i parser e gli analizzatori lessicali con i relativi generatori automatici) Linguaggi adatti di implementazione: C, C++, Java (of course)