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

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 4 CFU

 Programma:

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à 4 CFU

Programma:

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 e le funzioni 
parziali ricorsive; la tesi di Church-Turing. La macchina di Turing 
universale. Problemi non risolvibili.

 

  • Laboratorio di linguaggi di programmazione 4 CFU

Programma
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, recursive partial functions. 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.

Learning outcomes

Students become familiar with the logic and functional programming paradigms and with the basic tools supporting the main languages proposed in the three modules.  They are able to develop small size projects in Lisp and Prolog. They are able to define the grammars generating Regular and Context-free Languages as well as the Automata recognizing them. The will become ware of the theoretical limits of programming.

Prerequisites

Basics of recursive  programming. logics and algebra

Kind of exam:

  • Written and oral

King of evaluton:

  • Final score

 

 

 

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 25/03/2011