Page begin -
Logo DISCO
|
Go to the Highly accessible area
|
Go to the Content page
|
Go to the End of content
|
Go to the Main menu
|
Go to the Navigation Bar (location)
|
Go to the Navigation menu (tree)
|
Go to the Commands list
|
Go to the Further readings
|
Go to the Bottom Menu
|
Logo Ateneo
   
Education
Linguaggi di programmazione

Codice insegnamento: E3101Q007

Docente responsabile
Carla Simone

PROGRAMMA

Obiettivi e contenuti:
L’insegnamento ha l’ obiettivo di completare il panorama dei paradigmi di programmazione con il paradigma logico e funzionale;  di mettere in relazione elementi della teoria dei linguaggi formali con le basi dell'analisi lessicale e sintattica dei linguaggi di programmazione; ed infine di introdurre elementi di base della teoria della computabilità.

Programma:
L'insegnamento è articolato in tre moduli.

  • Paradigmi di Programmazione
  • Il paradigma di programmazione funzionale.
  • Introduzione al linguaggio di programmazione LISP.
  • Il paradigma di programmazione logico.
  • Introduzione al linguaggio di programmazione Prolog.
  • Linguaggi e Computabilità
  • Automi a stati finiti, linguaggi regolari e espressioni regolari.
  • Linguaggi e grammatiche libere da contesto e automi a pila.
  • Verso i modelli concorrenti: il prodotto di automi.
  • Elementi di computabilità: la macchina di Turing; la tesi di Church-Turing. La macchina di Turing universale. Problemi non risolvibili.
  • Laboratorio di linguaggi di programmazione
  • Introduzione agli ambienti LISP.
  • Programmazione LISP: esercizi e progetti.
  • Introduzione agli ambienti Prolog.
  • Programmazione Prolog: esercizi e progetti.

Risultati di apprendimento previsti:
Gli studenti avranno familiarizzato con i vari stili di programmazione e con gli strumenti usati per i principali linguaggi presentati nell'insieme dei moduli del corso.  Gli studenti saranno in grado di svolgere  progetti di piccole dimensioni in (Common) Lisp e Prolog.  Gli studenti saranno in grado di definire grammatiche generatrici di Linguaggi Regolari e Context-free e di definire i relativi Automi Riconoscitori. Conosceranno i limiti teorici dello sviluppo di programmi.

Prerequisiti:
Concetti di base di programmazione ricorsiva, di logica e di algebra.

 Tipo esame:
Scritto e orale

Tipo valutazione:
Voto finale

 


Aims and contents:
The course aims to provide students with the basic elements of declarative  programming (logic and functional); to correlate the basic elements of Formal Languages Theory with the Lexical Analysis of programming languages; and finally to introduce the basic elements of Computability Theory.

 Program details:
The course is composed of three modules

  • Programming paradigms:
  • The functional programming paradigm.
  • Introduction to the LISP programming language.
  • The logical programming paradigm.
  • Introduction to the Prolog programming language.
  • Languages and Computability:
  • Finite automata, regular languages and regular expressions.
  • Context-free languages, context-free grammars and pushdown automata.
  • Towards concurrency modeling: product of automata.
  • Elements of the theory of computation: Turing machines,the Church-Turing thesis. The universal Turing machine. Unsolvable problems. 
  • Programming Languages Laboratory:
  • The environments for the logic and functional programming.
  • Programming in Lisp: exercises and small size projects.
  • Programming in Prolog: exercises and small size projects.
Further readings
(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - last update of this page 11/11/2013