Newest Viewed Downloaded

Linguaggi di Programmazione (AA 2002/2003) Corso di Laurea in Informatica Gabriella Pasi gabriella.pasi@itim.mi.cnr.it

Linguaggi di Programmazione (AA 2002/2003) Corso di Laurea in Informatica Gabriella Pasi gabriella.pasi@itim.mi.cnr.it

A loro volta possono essere SEQUENZIALI o CONCORRENTI. Linguaggi di programmazione: una possibile classificazione – IMPERATIVI – FUNZIONALI – LOGICI – A OGGETTI

Le caratteristiche essenziali di questi linguaggi sono strettamente legate alla architettura di Von Neumann (processore e memoria). I linguaggi ASSEMBLER, FORTRAN, Pascal, C (ad esempio) costituiscono livelli di astrazione di questa architettura. L’architettura consiste di due parti: – memoria (componente passiva) – processore (componente attiva) La principale attività del processore e’ assegnare valori a celle di memoria. Variabili come astrazione di celle di memoria e istruzione di assegnamento. Linguaggi imperativi

I linguaggi imperativi adottano uno stile prescrittivo. – un programma imperativo prescrive le operazioni che il processore deve compiere (es. assegnamento) – Esecuzione delle istruzioni nell’ordine in cui appaiono nel programma (eccezione: strutture di controllo) Realizzati sia attraverso interpretazione (BASIC,...) sia compilazione (Pascal, FORTRAN, COBOL,...) Nati per manipolazione numerica più che simbolica Linguaggi imperativi

Linguaggi imperativi

Motivazioni – Applicazioni a più alto livello di astrazione – Tentativo di sviluppare programmi più concisi, più semplici da scrivere, più vicini alla logica del problema, la cui correttezza sia più semplice da verificare verificare formalmente Definizione di nuovi paradigmi di programmazione – PROGRAMMAZIONE A OGGETTI – PROGRAMMAZIONE FUNZIONALE – PROGRAMMAZIONE LOGICA

Non manipolazione di numeri, ma di simboli Il ”programma” è costantemente in evoluzione: – modularità spinta – programma come struttura dati; – l’ambiente tende a confondersi col linguaggio La programmazione è esplorativa ed incrementale: prototipi veloci Il linguaggio deve essere ad ”altissimo livello”: utilizzabile anche da non-programmatori. Programmazione funzionale e logica caratteristiche comuni

Concetto primitivo: funzione e applicazione di funzione. – Una funzione è una regola di corrispondenza che associa a ogni elemento del suo dominio un elemento nel codominio. – Una definizione di funzione specifica il dominio, il codominio e la regola di associazione. Ad esempio: incr(x) = x + 1. – Dopo la definizione una funzione può essere applicata a un elemento del dominio per restituire l’elemento associato del codominio (valutazione): incr(3) ® 4. Paradigma funzionale

Paradigma funzionale

Paradigma funzionale

Linguaggio LISP (LISt Processing)

Linguaggio LISP (LISt Processing)

Stile dichiarativo: la conoscenza del problema è espressa indipendentemente dal suo utilizzo (COSA non COME); Alta modularità e flessibilità Definire un linguaggio logico significa definire come il programmatore può esprimere la conoscenza e quale tipo di controllo può utilizzare; – Problematiche di RAPPRESENTAZIONE della conoscenza Paradigma logico

Paradigma logico Base: logica formale obiettivo: formalizzare il ragionamento caratterizzati da meccanismi deduttivi Programmare significa: descrivere il problema con formule del linguaggio interrogare il sistema, che effettua deduzioni sulla base delle definizioni

Linguaggio Prolog Un programma Prolog è costituito da: Asserzioni incondizionate (fatti): A Asserzioni condizionate (o regole): A IF B,C,D,… A: è la conclusione (conseguente) B,C,D: sono le premesse (o antecedenti) Una interrogazione ha la forma: ? A, B, C, …

ESEMPIO: due individui sono colleghi se lavorano per la stessa ditta collega(X,Y):- lavora(X,Z), lavora(Y,Z), diverso(X,Y). FATTI lavora(emp1,ibm). lavora(emp2,ibm). lavora(emp3,txt). lavora(emp4,olivetti). lavora(emp5,txt). :- collega(X,Y). REGOLA Testa Body

Showing 1 - 16 of 16 items Details

Name: 
paradigmi
Author: 
pasi
Company: 
CNR
Description: 
Linguaggi di Programmazione (AA 2002/2003) Corso di Laurea in Informatica Gabriella Pasi gabriella.pasi@itim.mi.cnr.it
Tags: 
programmazione | linguaggi | linguaggio | lavora | programma | paradigma | imperativi | funzione
Created: 
9/16/2002 12:10:27 PM
Slides: 
16
Views: 
0
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap