Semantica dei linguaggi di programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Semantica dei linguaggi di programmazione"

Transcript

1 Corso di Informatica Generale II u.d. Semantica dei linguaggi di programmazione Mauro Brunato 17 maggio 2006

2 Indice 1 Definizioni Proposizioni Regole di deduzione Sostituzioni lessicali Programmi La semantica Cosa significa che un programma è corretto? Stato di un calcolatore Trasformazione di stati Asserzioni sugli stati Un esempio: calcolo del MCD Scomposizione di un programma in strutture annidate Gli assiomi Correttezza delle istruzioni e dei costrutti fondamentali L istruzione vuota L istruzione di assegnazione Il costrutto sequenziale Il costrutto condizionale Il costrutto iterativo Composizione dei costrutti di base Esempi Divisione intera Calcolo del MCD

3 Sommario Questa dispensa prsenta una traccia delle lezioni relative alla correttezza e alla semantica dei linguaggi di programmazione. Non è necessariamente comprensibile da chi non ha seguito le lezioni. Il documento è soggetto a variazioni e aggiustamenti durante il corso del semestre di insegnamento; l ultima versione piò sempre essere recuperata dalla sezione risorse della pagina del corso di Informatica Generale II u.d. per Matematica sul sito brunato/info2/ Per distinguere le versioni è sufficiente confrontare la data riportata sotto il titolo con quella scritta nell elenco delle risorse (non è dunque necessario scaricare il file tutte le volte).

4 Capitolo 1 Definizioni 1.1 Proposizioni Salvo indicazione contraria, le lettere P, Q, R indicheranno proposizioni, ovvero asserzioni 1 sui valori delle variabili in un dato punto del programma. Alcune proposizioni, dall ovvio significato, sono le seguenti: x = 3 x = 3 y = 5 xy < 0 a b c 0 x = 2 1 < c 3 3x 2 2x + 1 > n 1 = 1 VERO FALSO Si presti attenzione alle proposizioni nell ultima riga. VERO è la proposizione sempre vera, così pure 1 = 1, che quindi va considerata equivalente. Ovviamente, FALSO è la proposizione sempre falsa. A seconda del contesto, le proposizioni potranno essere scritte in stile matematico standard, oppure (ad esempio se appaiono come condizioni di un costrutto) in notazione C. Le asserzioni sui valori delle variabili saranno riportate all interno del codice, protette dai simboli di commento. Per esempio, le righe /* a 0 */ b = 2 * a; /* b a */ contengono un istruzione C preceduta e seguita da un asserzione. Per risparmiare spazio, è possibile scrivere il tutto in una sola riga: /*a 0*/ b=2*a; /*b a*/ Si noti che normalmente le istruzioni C vengono scritte in caratteri equispaziati, mentre le proposizioni sono in stile matematico 2. 1 Una proposizione è un oggetto sintattico costruito a partire da espressioni, connettivi logici e quantificatori; il termine asserzione implica l uso della proposizione all interno del modello che associa i valori delle variabili C corrispondenti per nome alle variabili libere della proposizione. Nel seguito tralasceremo questa definizione, che è volutamente oscura... 2 Lasciamo ai corsi di logica superiore la discussione se la variabile a del programma e la variabile a della proposizione nell esempio sopra vadano considerate uno stesso oggetto o no (si veda anche la nota precedente). 2

5 1.2 Regole di deduzione La regola Pippo Pluto Paperino significa Se Pippo e Pluto sono vere, allora anche Paperino è vera (dove Pippo, Pluto e Paperino sono tre proposizioni). Nel seguito, considereremo valide tutti gli assiomi della logica e dell aritmetica, ad esempio: P P Q Q 1.3 Sostituzioni lessicali P Q P Q Data la proposizione P, la proposizione Px y è ottenuta da P sostituendo a ogni occorrenza della variabile x in P come variabile libera (cioè non quantificata) l espressione y. Ad esempio, ( ) y a < 7 y a x 2 = z equivale a y < 7 y y x 2 = z. a Si noti come la variabile a sia stata sostituita da y in tutte le sue occorrenze. Viceversa, ( ) y a < 7 ( a y a) x 2 = z equivale a y < 7 ( a y a) x 2 = z. a Infatti, a compare quantificata nella seconda clausola (in sostanza si tratta di un altra a). Per evitare equivoci, converrà sempre dare nomi diversi alle variabili, libere o quantificate, di una proposizione. 1.4 Programmi Nel seguito chiameremo programma una sequenza di istruzioni e strutture di controllo sprovvista di operazioni di ingresso/uscita e di dichiarazioni di variabili. Supporremo cioè che le variabili siano già state dichiarate e inizializzate con i valori opportuni e concentreremo la nostra attenzione solamente sulle istruzioni che eseguono i calcoli. 3

6 Capitolo 2 La semantica Un tipico esercizio da esame consiste nello scrivere un programma che svolga un determinato compito, in genere il calcolo di una funzione intera o reale. La speranza di ottenere un voto pieno allo scritto è legata alla correttezza del programma scritto. La valutazione della correttezza viene effettuata dai docenti in modo euristico (basato cioè sull esperienza). Supponiamo invece di scrivere il programma che controlla alcune funzioni vitali di un installazione potenzialmente pericolosa, oppure l esito di un esperimento estremamente dispendioso come una missione spaziale: il committente gradirà non soltanto una verifica euristica di correttezza del programma, ma un assicurazione il più formale possibile che il programma non può fallire Cosa significa che un programma è corretto? È possibile dimostrare la correttezza di un programma? Per farlo, abbiamo bisogno di due strumenti: un modo per dichiarare formalmente che un programma è corretto, ovvero una notazione formale che ci permetta di presentare l affermazione di correttezza di un programma come enunciato di un teorema; delle regole (anzi, degli assiomi) che permettano di dimostrare questo teorema Stato di un calcolatore L esecuzione di un programma consiste nella lettura e nella scrittura di valori all interno delle variabili. Definiamo stato del calcolatore l associazione di un particolare valore a ciascuna variabile del programma. In altre parole, lo stato di un calcolatore in un particolare momento dell esecuzione del suo programma è descritto dai valori contenuti in tutte le variabili del programma. In particolare, considereremo diversi due stati che differiscono almeno per il valore assegnato ad una variabile. 1 Si è mai sentito che una centrale nucleare avesse problemi nelle sue procedure di sicurezza, oppure che una missione spaziale fallisse per un problema software? (OK, meglio cambiare discorso...) 4

7 2.1.2 Trasformazione di stati Un istruzione, ad esempio di assegnazione, può essere vista come una funzione che mappa stati in stati. Per esempio, l istruzione x = 2; trasforma lo stato precedente, in cui la variabile x poteva avere un qualsiasi valore, in uno stato in cui tutte le altre variabili restano immutate, ma x vale 2 indipendentemente dal valore avuto in precedenza. Un programma, in quanto sequenza di istruzioni, esegue una sequenza di trasformazioni sullo stato iniziale. Quando diciamo che un programma risolve un certo problema, intendiamo dire: Se lo stato iniziale della macchina contiene una descrizione del problema, allora lo stato finale (quello successivo all ultima istruzione del programma) ne descrive la soluzione corrispondente Asserzioni sugli stati Supponiamo che un programma A esegua delle operazioni atte a calcolare una funzione dello stato iniziale. Allora con la scrittura /* P */ A /* Q */ intendiamo, in modo del tutto equivalente, una di queste affermazioni. Se lo stato iniziale del programma A soddisfa l asserzione P, allora lo stato finale soddisfa l asserzione Q. L asserzione P afferma che lo stato iniziale è una descrizione dei dati del problema che A risolve, e Q afferma che lo stato finale è una descrizione della soluzione. Le asserzioni P e Q sono dette rispettivamente precondizione e postcondizione del programma. La coppia formata dalle due asserzioni è detta la specifica del programma. Questa definizione corrisponde all idea intuitiva che abbiamo delle specifiche di un programma, che generalmente comprendono una descrizione delle ipotesi a priori nella quali il programma dovrà operare (la precondizione) e una descrizione dei risultati che il programma dovrà fornire (postcondizione) a patto che le condizioni iniziali siano verificate (quest ultimo corsivo è il punto focale: nessuno può garantire risultati corretti in presenza di dati errati). La scrittura /*P */ A /*Q*/ è detta tripla di Hoare, dal nome del matematico che ha proposto questo tipo di formalizzazione nei primi anni Un esempio: calcolo del MCD Consideriamo la seguente tripla di Hoare: 5

8 /* a = A b = B a > 0 b 0 */ while ( b!= 0 ) { c = a % b; a = b; b = c; } /* a = MCD(A, B) */ Possiamo considerarla l enunciato di un teorema, con il seguente significato approssimativo: Siano A e B i valori iniziali delle variabili a e b, rispettivamente. Si supponga che questi valori siano positivi. Allora, dopo l esecuzione del codice, la variabile a conterrà il MCD dei valori iniziali. Si noti che nulla impedisce di far comparire nelle proposizioni delle variabili che non esistono nel programma. Le ipotesi della formulazione verbale coincidono con la precondizione del programma, mentre la tesi è una riformulazione della conclusione. 2.2 Scomposizione di un programma in strutture annidate Ora che sappiamo come formulare un asserzione di correttezza di un determinato programma, dobbiamo dedicarci alla sua dimostrazione. Il primo passo è la constatazione che un programma C può essere definito induttivamente come una combinazione dei seguenti elementi: 1. L istruzione vuota (che non fa nulla e che non modifica lo stato del calcolatore); pur non avendo alcuna utilità pratica, sarà comoda per il seguito, e corrisponde alla funzione identità nello spazio delle trasformazioni degli stati; 2. Istruzioni semplici di assegnazione, nella forma x = E; 3. Composizione sequenziale di due istruzioni semplici: {I 1 I 2 } 4. Costrutto condizionale: if ( C ) I 1 else I 2 5. Costrutto iterativo: while ( C ) I dove E e C sono espressioni, mentre I, I 1 e I 2 sono istruzioni. È facile rendersi contro come questi costrutti permettano di scrivere qualunque programma. In particolare: La composizione sequenziale di più di due istruzioni può essere scomposta come composizione di composizioni: {I 1 I 2 I 3 } equivale a {{I 1 I 2 } I 3 } La condizione if mancante del ramo else equivale a mettere dopo else un istruzione vuota; Il ciclo for è semplicemente una riformulazione del ciclo while ; Il ciclo do... while è esprimibile come combinazione di un if e un while. 6

9 Capitolo 3 Gli assiomi Vogliamo dimostrare teoremi che riguardano un nuovo tipo di oggetti. Abbiamo dunque bisogno di una serie di assiomi. 3.1 Correttezza delle istruzioni e dei costrutti fondamentali Definiamo ora gli assiomi che riguardano i blocchi costitutivi individuati in L istruzione vuota Quando possiamo asserire che un istruzione vuota è corretta rispetto a una precondizione P e a una postcondizione Q? Visto che l istruzione vuota non modifica lo stato della macchina, basta che Q sia vera negli stati in cui è vera P, ovvero se e soltanto se P implica Q: P Q /*P */ /*Q*/ L istruzione di assegnazione Supponiamo di voler dimostrare la seguente tripla di Hoare: /* P */ x = E; /* Q */ Chiaramente, la tripla è di qualche interesse se Q parla anche di x. Quali asserzioni sul valore di x sono vere nello stato finale? Visto che nello stato finale x vale E, Q è vera soltanto se quello che asserisce a proposito di x era vero, nello stato precedente l assegnazione, a proposito di E. Altrimenti detto, l asserzione Q è vera dopo l assegnazione se l asserzione Q E x (che dice le stesse cose di Q, ma che parla di E al posto di x) era vera prima: P Q E x /*P */ x=e; /*Q*/ 7

10 Esempi La seguente tripla è corretta: /* a > 0 */ b = 2 * a; /* b > a */ Notiamo che (b > a) 2a b equivale a 2a > a, quindi per dimostrare la correttezza è sufficiente dimostrare che a > 0 2a > a, il che è senz altro vero sommando a da entrambi i lati della premessa. Viceversa, la tripla non è corretta. Infatti, l implicazione è falsificata per valori negativi di b Il costrutto sequenziale /* a > 0 */ a = 2 * b; /* a > b */ a > 0 2b > b Data la tripla di Hoare /*P */ {I 1 I 2 } /*Q*/, individuiamo un asserzione R che descriva lo stato successivo all esecuzione della sola I 1. Tale asserzione dovrà fungere da postcondizione per I 1 (con precondizione P ) e da precondizione per I 2 (con postcondizione Q). Ne deriva la seguente regola: Esempi La seguente tripla è corretta: /*P */ I1 /*R*/ /*R*/ I 2 /*Q*/ /*P */ {I 1 I 2 } /*Q*/ /* b > 0 c < 0 */ { a = b; b = c; } /* a > 0 b < 0 */ Infatti, è sufficiente dimostrare separatamente: /*b > 0 c < 0*/ a=b; /*a > 0 c < 0*/, /*a > 0 c < 0*/ b=c; /*a > 0 b < 0*/ Il costrutto condizionale Data la tripla di Hoare /*P */ if (C) I 1 else I 2 /*Q*/, ricordiamo che l istruzione I 1 viene eseguita solo se la condizione C è verificata, mentre l istruzione I 2 viene eseguita soltanto se è vera la condizione C. Dunque, se P è precondizione al costrutto (cioè è vera per ipotesi) segue che lo stato che precede l esecuzione di I 1 verifica la condizione P C; lo stato che precede l esecuzione di I 2 verifica la precondizione P C. In entrambi i casi, lo stato finale deve verificare la postcondizione Q. La regola è dunque: 8

11 /*P C*/ I 1 /*Q*/ /*P C*/ I 2 /*Q*/ /*P */ if (C) I 1 else I 2 /*Q*/ Il costrutto iterativo Si tratta del caso più complesso: mentre il costrutto condizionale prevede una sola possibile diramazione, il costrutto iterativo deve considerare una sequenza di passaggi attorno a una stessa istruzione. Data la tripla di Hoare /*P */ while (C) I /*Q*/, possiamo subito dire quanto segue: se per caso la condizione C è immediatamente falsa, allora il ciclo while viene saltato e dev essere immediatamente vera la postcondizione Q: P C Q. Se invece C è vera, la precondizione all istruzione I è P C (P è vera a priori, C è vera perché siamo entrati nel ciclo). Chiamiamo R una possibile postcondizione di I, avremo la seguente tripla di Hoare: /*P C*/ I /*R*/. Se R è vera nello stato finale di I, e la condizione C è ancora verificata, allora I verrà rieseguita, e lo stato precedente la riesecuzione soddisfa la precondizione R C. Supponiamo di scegliere la proposizione R in modo che sia vera al termine di ogni iterazione: /*R C*/ I /*R*/. Il ciclo termina quando, dopo un esecuzione di I, la condizione C non è più verificata. Dunque, se R è vera e C non lo è, dev essere verificata la postcondizione Q: R C Q. Abbiamo tenuto conto di tutte le possibili diramazioni del ciclo. Riassumendo, ecco la regola complessiva. P C Q /*P C*/ I /*R*/ /*R C*/ I /*R*/ R C Q /*P */ while (C) I /*Q*/ 3.2 Composizione dei costrutti di base /* a = A b = B a > 0 b 0 */ while ( b!= 0 ) { c = a % b; /* (c = 0 b = MCD(A, B)) (c 0 MCD(b, c) = MCD(A, B)) */ a = b; /* (c = 0 a = MCD(A, B)) (c 0 MCD(a, c) = MCD(A, B)) */ b = c; /* (b = 0 a = MCD(A, B)) (b 0 MCD(a, b) = MCD(A, B)) */ } /* a = MCD(A, B) */ 9

12 Capitolo 4 Esempi 4.1 Divisione intera Siano a, b > 0 due numeri naturali. Il quoziente q e il resto r della divisione intera di a per b sono univocamente definiti dalle seguenti proprietà: a = qb + r, 0 r < b. Un metodo del tutto lecito, ancorché noioso e inutilmente lungo, per calcolare il quoziente e il resto consiste nel sottrarre ripetutamente b da a, finché quello che resta di a non è minore di b. Ecco il codice, già contornato dalle condizioni: 4.2 Calcolo del MCD /* a > 0 b > 0 */ q = 0; r = a; while ( r >= b ) { r = r - b; q = q + 1; } /* a = qb + r 0 r < b */ 10

Verifica di programmi

Verifica di programmi Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza

Dettagli

02 - Logica delle dimostrazioni

02 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 0 - Logica delle dimostrazioni Anno Accademico 015/016

Dettagli

04 - Logica delle dimostrazioni

04 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,

Dettagli

Ragionamento formalei. Ragionamento formale

Ragionamento formalei. Ragionamento formale Ragionamento formale La necessità e l importanza di comprendere le basi del ragionamento formale, utilizzato in matematica per dimostrare teoremi all interno di teorie, è in generale un argomento piuttosto

Dettagli

INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2013/14

INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2013/14 INTRODUZIONE ALLA LOGICA DI HOARE Corso di Logica per la Programmazione A.A. 2013/14 INTRODUZIONE Dall inizio del corso ad ora abbiamo introdotto, un po alla volta, un linguaggio logico sempre più ricco:

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 13 Comando Iterativo Sequenze (array) ed Aggiornamento Selettivo pag. 1 Regole di Inferenza per Triple di Hoare: Comando Iterativo Semantica informale del Comando Iterativo

Dettagli

Lo sviluppo di un semplice programma e la dimostrazione della sua correttezza

Lo sviluppo di un semplice programma e la dimostrazione della sua correttezza Il principio di induzione Consideriamo inizialmente solo il principio di induzione per i numeri non-negativi, detti anche numeri naturali. Sia P una proprietà (espressa da una frase o una formula che contiene

Dettagli

9 Calcolo dei sequenti LC p

9 Calcolo dei sequenti LC p 9 Calcolo dei sequenti LC p In questa sezione mostriamo un metodo più elegante, semplice e soprattutto AUTOMATICO per mostrare se una proposizione è valida o meno e soddisfacibile o meno. Tale metodo è

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Ragionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica

Ragionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica Ragionamenti e metodi di dimostrazione Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica Proposizioni Si definisce proposizione una frase alla quale è possibile attribuire uno e un solo valore

Dettagli

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,

Dettagli

Introduzione alla Matematica per le Scienze Sociali - parte II

Introduzione alla Matematica per le Scienze Sociali - parte II Introduzione alla Matematica per le Scienze Sociali - parte II Lucrezia Fanti Istituto Nazionale per l Analisi delle Politiche Pubbliche (INAPP) lucrezia.fanti@uniroma1.it Lucrezia Fanti Intro Matematica

Dettagli

Indice. NUMERI REALI Mauro Saita Versione provvisoria. Ottobre 2017.

Indice. NUMERI REALI Mauro Saita   Versione provvisoria. Ottobre 2017. NUMERI REALI Mauro Saita e-mail: maurosaita@tiscalinet.it Versione provvisoria. Ottobre 2017. Indice 1 Numeri reali 2 1.1 Il lato e la diagonale del quadrato sono incommensurabili: la scoperta dei numeri

Dettagli

Logica proposizionale

Logica proposizionale Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Logica proposizionale Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli

Dettagli

PROGRAMMAZIONE: La selezione

PROGRAMMAZIONE: La selezione PROGRAMMAZIONE: La selezione Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l altra, riga per

Dettagli

LA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella

LA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella LA LOGICA DI HOARE Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella INTRODUZIONE Dall inizio del corso ad ora abbiamo introdotto, un po alla volta, un linguaggio logico

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 8 Modelli, Formule Valide, Conseguenza Logica Proof Systems Regole di inferenza per Calcolo Proposizionale

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 13 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale pag. 1 Tripla di Hoare Soddisfatta: richiamo Data una Tripla

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

marina/did/mdis03/ marina/did/mdis03/ marina/did/mdis03/

marina/did/mdis03/   marina/did/mdis03/   marina/did/mdis03/ Matematica Discreta (elementi) E-O CdL Informatica Elementi di logica formale 8 ottobre 2003 Marina Cazzola (marina@matapp.unimib.it) Dipartimento di Matematica e Applicazioni Università di Milano Bicocca

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Sistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1]

Sistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1] Intelligenza Artificiale I Sistemi Deduttivi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Sistemi Deduttivi[1] Calcolo simbolico? Una fbf è conseguenza logica di un insieme di fbf sse qualsiasi

Dettagli

NOZIONI DI LOGICA PROPOSIZIONI.

NOZIONI DI LOGICA PROPOSIZIONI. NOZIONI DI LOGICA PROPOSIZIONI. Una proposizione è un affermazione che è vera o falsa, ma non può essere contemporaneamente vera e falsa. ESEMPI Sono proposizioni : 7 è maggiore di 2 Londra è la capitale

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale pag. 1 Tripla di Hoare Soddisfatta: richiamo Data la tripla di

Dettagli

Linguaggi di programmazione: sintassi e semantica Sintassi fornita con strumenti formali: Semantica spesso data in modo informale

Linguaggi di programmazione: sintassi e semantica Sintassi fornita con strumenti formali: Semantica spesso data in modo informale LOGICA DI HOARE INTRODUZIONE Linguaggi di programmazione: sintassi e semantica Sintassi fornita con strumenti formali: es. grammatica in BNF Semantica spesso data in modo informale di stile operazionale

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Semantiche dei linguaggi di programmazione

Semantiche dei linguaggi di programmazione Semantiche dei linguaggi di programmazione By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents La semantica del linguaggio... 1 Tipi di semantica... 1 Esempio di semantica operazionale...

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 7 Formule Valide, Conseguenza Logica Proof System per la Logica del Primo Ordine Leggi per i Quantificatori

Dettagli

Verità, tautologia e implicazione logica

Verità, tautologia e implicazione logica Condizioni di verità delle frasi di LP erità, tautologia e implicazione logica Sandro Zucchi Passiamo ora alla terza parte del compito di descrivere il linguaggio LP: Come vengono calcolate le condizioni

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Se con e indichiamo l elemento neutro di in G, e deve appartenere ad H.

Se con e indichiamo l elemento neutro di in G, e deve appartenere ad H. Abbiamo visto a lezione che una sottoalgebra B di un algebra A è identificabile con l immagine di un omomorfismo iniettivo a valori in A. Una sottoalgebra B di A è in particolare un sottoinsieme non vuoto

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

CAPITOLO 1. I numeri naturali 0, 1, 2, 3,...

CAPITOLO 1. I numeri naturali 0, 1, 2, 3,... CAPITOLO 1 I numeri naturali I numeri naturali sono quelli che usiamo per contare: 0, 1,, 3,... e dei quali conosciamo alcune proprietà. Ad esempio sappiamo sommare e moltiplicare due numeri naturali;

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo simbolico

Intelligenza Artificiale. Logica proposizionale: calcolo simbolico Intelligenza Artificiale Logica proposizionale: calcolo simbolico Marco Piastra Logica formale (Parte 2) - 1 Parte 2 Calcolo logico Assiomi Derivazioni Derivazioni e conseguenza logica Completezza Logica

Dettagli

Un po di logica. Christian Ferrari. Laboratorio di matematica

Un po di logica. Christian Ferrari. Laboratorio di matematica Un po di logica Christian Ferrari Laboratorio di matematica 1 Introduzione La logica è la disciplina che studia le condizioni di correttezza del ragionamento. Il suo scopo è quindi quello di elaborare

Dettagli

Logica: materiale didattico

Logica: materiale didattico Logica: materiale didattico M. Cialdea Mayer. Logica (dispense): http://cialdea.dia.uniroma3.it/teaching/logica/materiale/dispense-logica.pdf Logica dei Predicati (Logica per l Informatica) 01: Logica

Dettagli

Logica proposizionale

Logica proposizionale Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 6 Logica del Primo Ordine Motivazioni Sintassi Interpretazioni Formalizzazione pag. 1 Limiti del Calcolo Proposizionale Nella formalizzazione di enunciati dichiarativi,

Dettagli

Le strutture di controllo

Le strutture di controllo INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo

Dettagli

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: PROOF SYSTEM Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: RIASSUNTO Sintassi: grammatica libera da contesto (BNF), parametrica rispetto

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe

Dettagli

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema

Dettagli

METODI MATEMATICI PER L INFORMATICA

METODI MATEMATICI PER L INFORMATICA METODI MATEMATICI PER L INFORMATICA ANNO ACCADEMICO 2011/2012 Sommario. Sintassi e semantica della Logica dei predicati. Proprietà fondamentali dei quantificatori. Strutture, soddisfacibilità e verità

Dettagli

BREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta

BREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta BREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta corretto e vero. Un ragionamento è corretto se segue uno

Dettagli

Logica proposizionale

Logica proposizionale Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per

Dettagli

Indice. Aritmetica modulare. Mauro Saita. Versione provvisoria. Febbraio

Indice. Aritmetica modulare. Mauro Saita.   Versione provvisoria. Febbraio modulare e-mail: maurosaita@tiscalinetit Versione provvisoria Febbraio 2018 1 Indice 1 modulare Classe di resti 2 11 Le proprietà delle congruenze 4 12 Le operazioni in Z n : l addizione e la moltiplicazione

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Algebra di Boole Elementi di

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()

Dettagli

nota 1. Aritmetica sui numeri interi.

nota 1. Aritmetica sui numeri interi. nota 1. Aritmetica sui numeri interi. Numeri interi. Numeri primi. L algoritmo di Euclide per il calcolo del mcd. Equazioni diofantee di primo grado. Congruenze. Il Teorema Cinese del Resto. 1 0. Numeri

Dettagli

Istruzioni di controllo: SEQUENZA

Istruzioni di controllo: SEQUENZA Istruzioni di controllo: SEQUENZA Negli esempi visti in precedenza gli algoritmi sono stati descritti come sequenze di passi elementari del tipo Passo 1. azione 1 Passo 2. azione 2... Abbiamo utilizzato

Dettagli

Esercizio 2. Spiegare perché è falsa la seguente affermazione: Se n è un numero negativo, allora anche n + 3 è negativo.

Esercizio 2. Spiegare perché è falsa la seguente affermazione: Se n è un numero negativo, allora anche n + 3 è negativo. Sapienza Università di Roma - Facoltà I3S Corso di Laurea in Statistica Economia Finanza e Assicurazioni Corso di Laurea in Statistica Economia e Società Corso di Laurea in Statistica gestionale Matematica

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli

1 Cenni di logica matematica

1 Cenni di logica matematica 1 Cenni di logica matematica 1 1 Cenni di logica matematica Una delle discipline chiave della matematica (e non solo, visto che è fondamentale anche per comprendere la lingua parlata) è la logica matematica,

Dettagli

Analisi strutturata 1

Analisi strutturata 1 Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

MATEMATICA DI BASE 1

MATEMATICA DI BASE 1 MATEMATICA DI BASE 1 Francesco Oliveri Dipartimento di Matematica, Università di Messina 30 Agosto 2010 MATEMATICA DI BASE MODULO 1 Insiemi Logica Numeri Insiemi Intuitivamente, con il termine insieme

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 6 Logica del Primo Ordine Motivazioni Sintassi Interpretazioni Formalizzazione A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a. 2015/16 pag.

Dettagli

Caratteristiche di un calcolatore elettronico

Caratteristiche di un calcolatore elettronico Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,

Dettagli

Maiuscole e minuscole

Maiuscole e minuscole Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e

Dettagli

TRIPLE DI HOARE: ESEMPI ED ESERCIZI. Corso di Logica per la Programmazione A.A. 2012/13

TRIPLE DI HOARE: ESEMPI ED ESERCIZI. Corso di Logica per la Programmazione A.A. 2012/13 TRIPLE DI HOARE: ESEMPI ED ESERCIZI Corso di Logica per la Programmazione A.A. 2012/13 RICORDIAMO LA REGOLA PER IL COMANDO ITERATIVO P Inv def(e) Inv E Q Inv t 0 {Inv E} C {Inv def(e)} {P} while E do C

Dettagli

Linguaggio C Strutture di controllo

Linguaggio C Strutture di controllo FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide

Dettagli

4 La Logica come base di ogni scienza. 5 Alla ricerca della forma logica. logica

4 La Logica come base di ogni scienza. 5 Alla ricerca della forma logica. logica 4 La Logica come base di ogni scienza La Logica è alla base di ogni scienza (o teoria) in quanto è fondamento di ogni scienza non tanto per i contenuti specifici ma per la loro articolazione deduttiva.

Dettagli

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Corso di Linguaggi e Traduttori Anno Accademico 2017 2018 Prof. Giovanni Pighizzini Progetto d esame Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Variabili

Dettagli

Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA D

Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA D ˆ ˆ ƒˆ ˆ ƒ ˆ ˆ Œ ˆ.. 2016-2017 Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA D Esercizio 1 Nell insieme delle coppie ordinate di numeri naturali,

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 2 Dimostrazione di tautologie Proof System pag. 1 Un Problema di Deduzione Logica [da un test di ingresso] Tre amici, Antonio, Bruno e Corrado, sono incerti se andare

Dettagli

Istruzioni di Controllo in C. Emilio Di Giacomo

Istruzioni di Controllo in C. Emilio Di Giacomo Istruzioni di Controllo in C Emilio Di Giacomo Limite delle istruzioni viste L insieme delle istruzioni che abbiamo visto fino ad ora consiste per lo più di: dichiarazioni e assegnazioni di variabili espressioni

Dettagli

LOGICA PER LA PROGRAMMAZIONE (A,B) - a.a SOLUZIONI PROPOSTE SECONDO APPELLO - 7/02/2012

LOGICA PER LA PROGRAMMAZIONE (A,B) - a.a SOLUZIONI PROPOSTE SECONDO APPELLO - 7/02/2012 LOGICA PER LA PROGRAMMAZIONE (A,B) - a.a. 2011-2012 SOLUZIONI PROPOSE SECONDO APPELLO - 7/02/2012 ESERCIZIO 1 Si provi che la seguente proposizione è una tautologia: (P S Q R) (S R) (Q P ) 1 (P S Q R)

Dettagli

Ragionamento Automatico Richiami di tableaux proposizionali

Ragionamento Automatico Richiami di tableaux proposizionali Richiami di logica e deduzione proposizionale Ragionamento Automatico Richiami di tableaux proposizionali (L. Carlucci Aiello & F. Pirri: SLL, Cap. 5) La logica proposizionale I tableau proposizionali

Dettagli

Testing, correttezza e invarianti

Testing, correttezza e invarianti Testing, correttezza e invarianti Capitolo 3.2 dispensa Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Harvard Mark II

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 1 Calcolo Proposizionale: sintassi e semantica Tautologie Esempi di Formalizzazione di Enunciati pag.

Dettagli

1 IL LINGUAGGIO MATEMATICO

1 IL LINGUAGGIO MATEMATICO 1 IL LINGUAGGIO MATEMATICO Il linguaggio matematico moderno è basato su due concetti fondamentali: la teoria degli insiemi e la logica delle proposizioni. La teoria degli insiemi ci assicura che gli oggetti

Dettagli

LOGICA MATEMATICA PER INFORMATICA

LOGICA MATEMATICA PER INFORMATICA LOGICA MATEMATICA PER INFORMATICA A.A. 10/11, DISPENSA N. 2 Sommario. Assiomi dell identità, modelli normali. Forma normale negativa, forma normale prenessa, forma normale di Skolem. 1. L identità Esistono

Dettagli

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII ELEMENTI DI LOGICA MATEMATICA LEZIONE VII MAURO DI NASSO In questa lezione introdurremo i numeri naturali, che sono forse gli oggetti matematici più importanti della matematica. Poiché stiamo lavorando

Dettagli

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo

Dettagli

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R): . equivalenze e implicazioni logiche Esercizio.. Trovare le implicazioni che legano i seguenti enunciati (x, y R): () x < y, () x = y, () x y, () x y, () (x y) > 0. Osserviamo subito che (x y) > 0 equivale

Dettagli

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

La matematica non è un opinione, lo è oppure...?

La matematica non è un opinione, lo è oppure...? La matematica non è un opinione, lo è oppure...? Giulio Giusteri Dipartimento di Matematica e Fisica Università Cattolica del Sacro Cuore Brescia 26 Febbraio 2010 Vecchie conoscenze Dedurre... dedurre...

Dettagli

ISTRUZIONI ISTRUZIONI SEMPLICI

ISTRUZIONI ISTRUZIONI SEMPLICI ISTRUZIONI istruzioni azioni modifica permanente dello stato interno strutture di controllo ::= ::= ::=

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI 1. GLI ASSIOMI DI PEANO Come puro esercizio di stile voglio offrire una derivazione delle proprietà elementari dei numeri naturali e delle operazioni

Dettagli

Correttezza (prima parte)

Correttezza (prima parte) Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di

Dettagli