Inizio della pagina -
Logo DISCO
|
Visita la Versione ad elevata leggibilità
|
Vai al Contenuto della pagina
|
Vai alla Fine dei contenuti
|
Vai al Menu Principale
|
Vai alla Barra di navigazione (sei in)
|
Vai al Menu di navigazione (albero)
|
Vai alla Lista dei comandi
|
Vai alla Lista degli approfondimenti
|
Vai al Menu inferiore
|
Logo Ateneo
   
Didattica
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

 

 

 

Approfondimenti

Google Translate
Translate to English Translate to French Translate to German Translate to Spanish Translate to Chinese Translate to Portuguese Translate to Arabic
Translate to Albanian Translate to Bulgarian Translate to Croatian Translate to Czech Translate to Danish Translate to Dutch Translate to Finnish Translate to Greek Translate to Hindi
Translate to Hungarian Translate to Irish Translate to Japanese Translate to Korean Translate to Norwegian Translate to Polish Translate to Romanian Translate to Russian Translate to Serbian
Translate to Slovenian Translate to Swedish Translate to Thai Translate to Turkish

(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - ultimo aggiornamento di questa pagina 25/03/2011