1 / 11

Linguaggi di Programmazione e compilatori

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

Download Presentation

Linguaggi di Programmazione e compilatori

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linguaggi di Programmazione e compilatori 6 CFU - II° Anno

  2. 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

  3. 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

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

  5. 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)

  6. 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

  7. 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. UllmanAddison-Wesley Pub

  8. 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

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

  10. 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 

  11. 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)

More Related