1 Il Paradigma Imperativo
|
|
|
- Giacinto Simoni
- 9 anni fa
- Просмотров:
Транскрипт
1 1 Il Paradigma Imperativo 1.1 Imp : un semplice linguaggio imperativo Abbiamo visto in Fun un meccanismo eager per la valutazione dei parametri di una funzione ed un meccanismo lazy. Una situazione analoga esiste per le procedure in linguaggi imperativi. Prenderemo dunque in considerazione due modalità eager per la valutazione dei parametri di una procedura, il passaggio per valore e quello per reference, ed una modalità lazy, il passaggio per nome. Per comprendere questi meccanismi abbiamo bisogno della nozione di locazione (una astrazione sulla nozione di indirizzo di memoria), che introduciamo in questa sezione studiando un linguaggio imperativo, Imp, fatto di assegnamenti e semplici costrutti di controllo. Nella prossima sezione vedremo una estensione di Imp con procedure ed array, All (Algol-like language), che può essere considerato come il nucleo dell Algol Sintassi e semantica Come nelle precedenti sezioni, x, y Var e k Val indicano generiche variabili e costanti. Le metavariabili M ed N variano ora sull insieme Exp delle espressioni del linguaggio, un sottoinsieme di quelle trattate nella Sezione??. Inoltre, p, q Imp indicano generici programmi. Val, Exp ed Imp sono definiti induttivamente dalla seguente sintassi astratta: k ::= true false M ::= k x M + N M < N p ::= skip p; q if M then p else q while M do p var x = M in p x := M Intuitivamente, skip è il programma che non fa niente, if-then-else e while sono i ben noti costrutti di controllo, var rappresenta la dichiarazione (ed inizializzazione) di una nuova variabile e := rappresenta l assegnamento di un valore ad una variabile già definita. Domini semantici. L insieme Val dei valori è come in Exp. Assumiamo che sia dato un insieme numerabile Loc di locazioni e che le metavariabili l 1, l 2... varino su tale insieme. L insieme Env degli ambienti e Store delle memorie sono definiti come segue: Env = Var fin Loc Store = Loc fin Val sui quali varieranno le metavariabili E Env ed S Store. La composizione di memorie è definita in modo analogo agli ambienti. 1
2 Regole. La semantica operazionale di Imp definisce due relazioni di valutazione: una per le espressioni M, che producono un valore senza avere sideeffects, ed una per i programmi p, che non producono valori ma cambiano la memoria: M Env Exp Store Val p Env Imp Store Store In genere scriveremo queste relazioni omettendo gli indici M e p: il contesto chiarirà quale è intesa. Le regole sono: [const ] E k, S k [x ] E x, S v (se E(x) = l ed S(l) = v) [plus ] E M + N, S v (se v 1 + v 2 = v) [min 1] [min 2] E M < N, S true E M < N, S false [skip ] E skip, S S (se v 1 < v 2 ) (se v 1 v 2 ) [seq ] E p, S S E q, S S E p; q, S S [if 1] E M, S true E p, S S E if M then p else q, S S [if 2] E M, S false E q, S S E if M then p else q, S S [while 1] E M, S true E p, S S E while M do p, S S E while M do p, S S [while 2] E M, S false E while M do p, S S [var ] E M, S v E {(x, l)} p, S {(l, v)} S E var x = M in p, S S (dove l è nuova) [... Spiegare!] [assign ] E M, S v E x := M, S S {(l, v)} (se l = E(x)) 2
3 Esercizio. Usando la semantica operazionale, definire una relazione di equivalenza = sul linguaggio tale che l insieme quoziente Imp/ = sia un monoide rispetto a skip e composizione sequenziale (;). 1.2 All : un linguaggio con procedure Presentiamo ora il linguaggio All, che estende Imp con array e procedure, e fornisce un semplice impianto linguistico per studiare alcuni meccanismi di passaggio dei parametri che si ritrovano in molti linguaggi della famiglia Algol. Possiamo in effetti considerare All come il nucleo di un linguaggio Algol-like Sintassi Il linguaggio Exp delle espressioni di All estende quello di Imp con un costrutto sintattico per indicizzare array. Risulterà inoltre conveniente distinguere tra le espressioni quelle assegnabili, ovvero quelle che sono ammesse alla sinistra di un assegnamento. Indicheremo con LExp (per left expressions) il loro insieme ed useremo la metavariabile V per indicarne un generico elemento. Gli array vengono creati ed inizializzati dal costrutto arr x = [M 1,... M n ] in p. Per semplificare la trattazione non ammettiamo array senza nome, né perciò espressioni del tipo [88, 66, 44](2). k ::= true false V ::= x x [M] M ::= k V M + N M < N p ::= skip p; q if M then p else q while M do p var x = M in p arr x = [M 0,... M n ] in p V := M proc y(x) is p in q call y(m) Oltre all introduzione di array e procedure, va notato che, in All, l assegnamento assume una forma più generale che in Imp, consentendo di operare anche su elementi di array Semantica call-by-value Gli ambienti devono fare spazio a due nuovi tipi di oggetto. Le variabili dichiarate come array saranno associate nell ambiente a sequenze finite e non vuote di locazioni. Indichiamo con Loc + l insieme di tali sequenze. Nota che la dichiarazione di una singola variabile x mediante il costrutto var assocerà ora ad x una sequenza l di lunghezza 1 che, per continuità con Imp, scriveremo omettendo le parentesi. Le variabili dichiarate come procedure saranno associate a chiusure, in modo del tutto analogo a quanto accade in Fun. Dunque, mentre l insieme Val dei valori e quello Store delle memorie rimangono invariati rispetto ad Imp, per gli ambienti si ha: 3
4 Env = Var fin Loc + (Var All Env) Introduciamo una nuova relazione di valutazione, specifica per le espressioni assegnabili (ripetiamo le altre per chiarezza): V Env LExp Store Loc M Env Exp Store Val p Env All Store Store Le regole [const ], [plus ], [min 1], [min 2], [skip ], [seq ], [if 1], [if 2], [while 1] e [while 2] rimangono invariate rispetto ad Imp. A queste si aggiungono: [loc 1] E x, S V l (se E(x) = l) [loc 2] E M, S M m E x[m], S V l m (se E(x) = l 0,..., l n e 0 m n) [ref ] E V, S V l E V, S M v (se S(l) = v) [assign ] E M, S M v E V, S V l E V := M, S p S {(l, v)} [arr ] E M 0, S v 0... E M n, S v n E {(x, (l 0,... l n ))} p, S {(l i, v i )} S E arr x = [M 0,... M n ] in p, S S ( ) ( ) dove l i è nuova, per i = 0... n [proc ] E {(y, (x, p, E))} q, S S E proc y(x) is p in q, S S [call ] value E M, S M v E {(x, l)} p, S {(l, v)} S E call y(m), S S ( ) ( ) se E(y) = (x, p, E ) e l è nuova Va notata la scomparsa di [x ]. Per ottenere il valore referenziato da una variabile x sono necessari ora due passi: [loc 1] e [ref ]. 4
5 1.2.3 Semantica call-by-reference Si impone che l espressione che si passa come argomento ad una chiamata per riferimento deve essere di tipo assegnabile. Ecco dunque la regola della chiamata, che va a sostituire [call ] value. Tutto il resto rimane come prima. [call ] reference E V, S V l E {(x, l)} p, S S E call y(v ), S S (se E(y) = (x, p, E )) Esercizio. Valutare il seguente programma con la semantica call-by-value e con quella call-by-reference. Cosa cambia? Semantica call-by-name var x = 5 in proc y(z) is z := 1 in y(x) Come per la chiamata per riferimento, l espressione che si passa come argomento ad una chiamata per nome deve essere di tipo assegnabile. Tale espressione deve inoltre rimanere non valutata fino a quando l esecuzione del corpo della procedura non richieda la valutazione del parametro. E dunque naturale tenere tale espressione nell ambiente, come già si era fatto nella semantica lazy di Exp. Dobbiamo dunque estendere la nozione di ambiente: Env = Var fin Loc + (Var All Env) (LExp Env) Questa modifica alla nozione di ambiente comporta una ulteriore regola per accedere alla locazione di una variabile che funge da parametro di procedura. Apparte questa e la regola della chiamata, che sostituisce le precedenti, tutto il resto rimane inalterato. [loc 3] E V, S V l E x, S V l (se E(x) = (V, E )) [call ] name E {(x, (V, E))} p, S S E call y(v ), S S (se E(y) = (x, p, E )) Esercizio. Valutare il seguente programma con la semantica call-by-reference e con quella call-by-name. Cosa cambia? var x = 0 in arr y = [3, 4, 5] in proc z(w) is (x := x + 1; u := w) in call z(y[x]) References 5
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
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
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
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Elementi di semantica denotazionale ed operazionale
Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato
Elementi di semantica operazionale
Elementi di semantica operazionale 1 Contenuti sintassi astratta e domini sintattici un frammento di linguaggio imperativo semantica operazionale domini semantici: valori e stato relazioni di transizione
Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive
Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
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
Definizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
Grammatiche Parse trees Lezione del 17/10/2012
Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,
Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni [email protected] Programmazione prof. Domenico
Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Modello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: [email protected] sito: users.iol.it/genna18 Risoluzione di un problema Dato
Istruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
Espressione composta da: Operatori Operandi (costanti, variabili, )
Cenni linguaggio C: Espressioni Espressione: formula (regola di calcolo) che specifica sempre un valore Esempio: espressione algebrica: z=x* y, (x+3)/5 Espressione composta da: Operatori Operandi (costanti,
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
Istruzioni iterative. Istruzioni iterative
Istruzioni iterative Esempio: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d",
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Strutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
Istruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
Programmazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
TABELLA OPERATORI ARITMETICI
ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come
Le strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
Dati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
Iterazione determinata e indeterminata
Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata Esempio: fai un giro del parco di
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
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
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
Overview. Analisi e verifica mediante interpretazione astratta modulo di semantica denotationale. Libro di testo. Propedeuticità
Overview Analisi e verifica mediante interpretazione astratta modulo di semantica denotationale Pietro Di Gianantonio corso di laurea in informatica Modulo di 3 crediti (24 ore), Presenta la Semantica
Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin
Javascript - Corso Web Design - Media Dream Academy Stefano Gaborin [email protected] www.above.company Cos è Javascript? JavaScript è un linguaggio di programmazione interpretato. Utilizzato
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento
I Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
Corso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
AA Realizzare un interprete in OCaml
AA 2016-2017 17. Realizzare un interprete in OCaml 1 La stru/ura let x = 3 in x+x;; Parsing Programma (text-file) Rappresentazione Intermedia (IR) Let ( x, Num 3, B_op(Plus, Var x, Var x )) Num 6 Pre/y
Fondamenti di Programmazione
Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) [email protected] Indice 1 Introduzione
I.4 Rappresentazione dell informazione
I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione
Esercitazioni di Informatica 3
Esercitazioni di Informatica 3 Part I: Programming Languages Syntax and semantics Laurea in Ingegneria Informatica Politecnico di Milano Polo di Milano Leonardo Esercizio 1: EBNF Utilizzando il linguaggio
Le basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Introduzione alla programmazione Esercizi risolti
Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma
Introduzione a Visual Basic Lezione 2 Cicli e anomalie
a Visual Basic Lezione 2 Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Perché i cicli? Un esempio concreto Finora abbiamo visto
Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = <Q,,, q0, F>, dove: Finite State Machine (2)
Idee guida ASM = FSM con stati generalizzati Le ASM rappresentano la forma matematica di Macchine Astratte che estendono la nozione di Finite State Machine Ground Model (descrizioni formali) Raffinamenti
Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un
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.
Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)
VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice
