Il corso di programmazione si propone di illustrare lecaratteristiche principali dei linguaggi di programmazione e le lorostritture di implementazione. La strategia adottata nel corso prevedel'utilizzo di tecniche basate sulla semantica operazionale strutturatacome meccanismo per descrivere sia i paradigmi di programmazione chele strutture di implementazione. Infine, il corso si proponepresentare e discutere le tecniche per la programmazzione a oggetti(programmazione per contratti,programmazzione concorrente)esemplificate e sperimentate utilizzando il linguaggioJava. Il corso si articola attorno a due argomenti principali.Programmazione orientata ad oggetti. Il nucleo del linguaggio Java: classi, oggetti, ereditarieta', astrazioni sui dati (specifica e implementazione, tecniche di verifica induttiva),astrazione mediante gerarchie, polimorfismo a' la Java. Tecniche diprogrammazione concorrente
Paradigni dei linguaggi di programmazione. Strutture a run time: ambiente, memoria, heap; blocchi, sottoprogrammi, records di attivazione, pila dei records di attivazione; oggetti; interpretazione, compilazione.
La frequenza non e' obbligatoria ma e' fortemente consigliata. Il corso e' pensato ed organizzato per una frequenza attiva e continua.Materiale DidatticoNote didattiche per la prima parte del corso: ProgrammingLanguages and Techniques, Zdancewic, Pierce, Weirich (2013) download
In questa pagina troverete il diario delle lezioni e delle esercitazioni. Per ogni argomento svolto potrete trovare una breve descrizione e il materiale didattico relativo. Introduzione al corso. I linguaggi di programmazione: paradigmi e metodologie di programmazione Materiale presentato a lezione: [download].
Astrazioni e metodologie di programmazione Materiale presentao a lezione: [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 1 B. Liskov (with J. Guttag), Program Development in Java: Abstraction,Specification and Object-Oriented design
OCaml e value oriented programming: Primitive lingustiche e metodi di programmazione Materiale presentato a lezione: [download]
Cosa leggere per studiare e approfondire l'argomento: Capitoli 2-8 delle note Didattiche (Zdancewic, Pierce, Weirich)
Esempi di programmazione in OCaml (zip file) [download].
OCaml e strutture mutabili Materiale presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitoli 13-14-15 delle note Didattiche (Zdancewic, Pierce, Weirich)
Esempi di programmazione di moduli in OCaml (zip file) [download].
Esempi di programmazione di moduli in OCaml (zip file) [download].
Da OCaml a Java Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitoli 19-20-21 delle note Didattiche (Zdancewic, Pierce, Weirich)
Una visione Operazionale di Java Materiale didattico presentato a lezione: [download].
Cosa leggere per studiare e approfondire l'argomento: Capitoli 23-24 delle note Didattiche (Zdancewic, Pierce, Weirich)
Java: Dynamic Dispatch Materiale didattico presentato a lezione: [download].
Cosa leggere per studiare e approfondire l'argomento: Capitoli 25 delle note Didattiche (Zdancewic, Pierce, Weirich)
Programmare un valutatore di espressioni in OCaml (ml file) [download].
Java: Eccezioni Materiale didattico presentato a lezione: [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 28 delle note Didattiche (Zdancewic, Pierce, Weirich)
Esercitazione Struttura dell'esercitazione: [download(zipfile)].
Eccezioni una visione operazionale [download].
Astrazioni sui dati. Specifica dei tipi di dato astratti in Java. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 5 (Liskov)
Astrazioni sui dati. Specifica dei tipi di dato astratti in Java. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 5 (Liskov)
Astrazioni sui dati. Implementare tipi di dato astratti in Java. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 5 (Liskov)
Generici in Java. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Articolo orginale di Bracha download
Astrazioni sui dati. Analizzare e validare le proprieta' di astrazioni sui dati. Come impostare il "bug-checking" Materiale didattico presentato a lezione [download].
Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 5 (Liskov)
Astrazioni sui dati. Le gerarchie dei titolo e il principio di sostituzione Materiale didattico presentato a lezione [download].
Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 7 (Liskov)
Esercitazione Struttura dell'esercitazione: [download(zipfile)].
Esercitazione Struttura dell'esercitazione: [download(textfile)].
Java Collection Framework (JCF) e astrazioni sul controllo: iteratori Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 6 (Liskov)
Cosa leggere per studiare e approfondire l'argomento: JCF
Esempio di programmazione con JCF download (text file)
Esempio di ieratore su un albero binario dowload (java file)
Linguaggi di programmazione: macchine astrate, compilatori e interpreti Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 1 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Linguaggi di programmazione: elementi di semantica operazionale. Interpreti compilatori e codice intermedio. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Semantica Operazionale eseguibile: Mike Grant Zachary Palmer Scott Smith, Principles of Programming Languages, Cap2. download
Cosa leggere per studiare e approfondire l'argomento: Semantica Operazionale BigStep e SmallStep,Note di Mathhew Hennessy. download
Cosa leggere per studiare e approfondire l'argomento: Il codiceIntermedio, F.Chow Intermediate Representation Chow, ComACMNov. 2013. download
Linguaggi di programmazione: controlli dei tipi e macchine a stack. Materiale didattico presentato a lezione [download].
Sperimentazione in Ocaml: Codice Ocaml degli interpreti presentati a lezione. download (zip file)
Strutturare i dati nei linguaggi di programmazione. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 8 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
I nomi e la nozione di ambiente. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 4 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Controllo della sequenza: espressioni e comandi. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 6 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Funzioni e procedure: le strutture di implementazione. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitoli 5 e 7 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Implementazione dell'interprete di un semplice linguaggio funzionale Materiale didattico presentato a lezione [download].
Il passaggio dei parametri. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 7 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Esercitazione. Materiale per l'esercitazione [download (zip)].
Traccia della soluzione download(file .ml)
Implementazione dei linguaggi orientati a ogetti. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 10 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Tecniche per la gestione della memoria: Garbage Collection. Materiale didattico presentato a lezione [download].
Cosa leggere per studiare e approfondire l'argomento: Capitolo 5 (Gabbrielli Martini: Linguaggi di Programmazione: Principi e Paradigmi)
Esercizi: [download (text file)].
Progetto PROGETTO SESSIONE INVERNALE: descrizione del progetto download
FAQQuesta parte della pagina raccoglie sotto forma di domande alcune risposte a quelle che sembrano essere le domande e i dubbi piu' comuni tra gli studenti di Programmazione II . Durante la prova scritta è consentito l'uso di libri o appunti?
linguaggi di programmazione principi e paradigmi pdf download
2ff7e9595c
Comments