Programmazione II. Lezione 3. Daniele Sgandurra 26/10/2010.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione II. Lezione 3. Daniele Sgandurra 26/10/2010."

Transcript

1 Programmazione II Lezione 3 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 26/10/2010 1/35 Programmazione II Lezione 3 26/10/2010

2 Sommario 1 2 Semantica 2/35 Programmazione II Lezione 3 26/10/2010

3 Parte I 3/35 Programmazione II Lezione 3 26/10/2010

4 Linguaggio di Programmazione Linguaggio di programmazione: linguaggio artificiale per esprimere algoritmi. Linguistica: disciplina che studia i linguaggi: sintassi: quali sono le frasi corrette: lessico: sequenze di simboli (parole/token) corrette (la sintassi indica le sequenze di parole corrette); morfologia: studio della struttura grammaticale delle parole; semantica: cosa significa una frase corretta; pragmatica: come usare una frase corretta. In informatica c è un altro livello: implementazione: come eseguire una frase corretta rispettando la sua semantica. 4/35 Programmazione II Lezione 3 26/10/2010

5 Terminologia Frase Stringa di caratteri presi da un certo alfabeto (finito). Linguaggio Insieme di frasi. Lessema (Lemma) Unità del livello sintattico più basso (lessico) di un linguaggio. Es., +, sum, begin. Token Categoria di lessemi. Es., identificatore. 5/35 Programmazione II Lezione 3 26/10/2010

6 Libere da Contesto Sviluppate da Noam Chomsky a metà degli anni 50. Generatori di linguaggi: descrizione della sintassi del linguaggio naturale. Definiscono una classe di linguaggi chiamati liberi da contesto. Dato un alfabeto A (finito e non vuoto) si costruisce l insieme (infinito) A di tutte le stringhe su A: stringa vuota: ɛ. 6/35 Programmazione II Lezione 3 26/10/2010

7 Esempio Definizione induttiva per le stringhe palindrome: P ɛ; P a; P b; P apa; P bpb; In maniera informale, il simbolo P sta per generica stringa palindroma e sta per può essere. 7/35 Programmazione II Lezione 3 26/10/2010

8 Grammatica Grammatica Una grammatica libera da contesto è una quadrupla (NT, T, R, S) dove: NT : insieme finito di simboli (simboli non terminali, variabili, categorie sintattiche); T : insieme finito di simboli (simboli terminali); R: insieme finito di produzioni V w, dove: V NT (testa della produzione); w T NT (corpo); S NT (simbolo iniziale); 8/35 Programmazione II Lezione 3 26/10/2010

9 Esempio Semplice grammatica per espressioni aritmetiche: G = ({E, I }, {a, b, +,,, (, )}, R, E), dove R è l insieme delle produzioni: E I; E E + E; E E * E; E E - E; E -E; E (E); I a; I b; I Ia; I Ib; 9/35 Programmazione II Lezione 3 26/10/2010

10 Backus-Naur Form (BNF) Inventata da John Backus e Peter Naur per descrivere Algol. Equivalente alle grammatiche libere. Metalinguaggio: linguaggio usato per descrivere un altro linguaggio. Si usano astrazioni per rappresentare classi di strutture sintattiche: variabili per la sintassi (simboli non-terminali). diventa ::=, i simboli non terminali sono scritti tra parentesi angolate (es, < Ide > ), produzioni con la stessa testa sono raggruppate in un unico blocco e suddivise tramite. Es.: E ::= I E + E E * E E - E - E ( E ); 10/35 Programmazione II Lezione 3 26/10/2010

11 Derivazione Derivazione Data una grammatica G = (NT, T, R, S) e assegnate due stringhe v, w NT T, diciamo che da v si deriva immediatamente w (v w), se w si ottiene da v sostituendo ad un simbolo non terminale V presente in v il corpo di una produzione di R la cui testa sia V. Diciamo che da v si deriva w (v w), se esiste una sequenza finita di derivazioni immediate v w 0 w 1 w. 11/35 Programmazione II Lezione 3 26/10/2010

12 Esempio Deriviamo la stringa ab (a + b): E E * E I * E Ib * E ab * E ab * (E) ab * (E+E) ab * (I+E) ab * (a+e) ab * (a+i) ab * (a+b) Quindi E E ab (a + b) 12/35 Programmazione II Lezione 3 26/10/2010

13 Linguaggio Generato Linguaggio Generato Il linguaggio generato da una grammatica G = (NT, T, R, S) è l insieme L(G) = {w T S w}. Insieme di tutte le stringhe derivabili dal simbolo iniziale di G, quindi proprio un linguaggio su T. 13/35 Programmazione II Lezione 3 26/10/2010

14 Albero di Derivazione Albero di Derivazione Data una grammatica G = (NT, T, R, S), un albero di derivazione (o di parsing) è un albero ordinato in cui: 1 ogni nodo è etichettato con un simbolo in NT T {ɛ}; 2 la radice è etichettata con S; 3 ogni nodo interno è etichettato con un simbolo in NT ; 4 se un nodo ha etichetta A NT e i suoi figli sono m 1,..., m k etichettati rispettivamente con X 1,..., X k (con X i NT T ), allora A X 1,..., X k è una produzione di R; 5 se un nodo ha etichetta ɛ, allora quel nodo è figlio unico e, se A è il padre, A ɛ è una produzione di R. Data una derivazione, possiamo ottenere da essa un albero di derivazione: iniziando dalla radice (etichettata con il simbolo iniziale) si aggiunge iterativamente un livello di figlio in corrispondenza della produzione usata durante la derivazione. 14/35 Programmazione II Lezione 3 26/10/2010

15 Albero di Derivazione: Esempio program ::= stmts ; stmts ::= stmt stmt ; stmts ; stmt ::= var = expr ; var ::= a b c d; expr ::= term + term term - term ; term ::= var const; 15/35 Programmazione II Lezione 3 26/10/2010

16 Albero di Derivazione: Esempio Derivazione Sinistra (Leftmost derivation) Derivazione nella quale, in ogni forma di frase intermedia, si espande il non-terminale più a sinistra. Es: program stmts stmt var = expr a = expr a = term + term a = b + term a = b + const Analogamente, si definisce la derivazione destra (rightmost derivation). 16/35 Programmazione II Lezione 3 26/10/2010

17 Ambiguità Ambiguità Una grammatica G è ambigua se esiste almeno una stringa di L(G) che ammette più alberi di derivazione. NB: una stringa può avere più derivazioni distinte senza che la grammatica sia ambigua: non può avere più di due derivazioni canoniche dello stesso tipo (sinistre o destre), cioè più alberi di derivazione. 17/35 Programmazione II Lezione 3 26/10/2010

18 Esempio: Grammatica Ambigua expr ::= expr op expr const; op ::= - /; 18/35 Programmazione II Lezione 3 26/10/2010

19 Esempio: Grammatica Non Ambigua Se usiamo l albero di derivazione per indicare i livelli di precedenza degli operatori, non abbiamo ambiguità: expr ::= expr - term term ; term ::= term / const const; 19/35 Programmazione II Lezione 3 26/10/2010

20 Esempio: Grammatica Non Ambigua Grammatica non ambigua per il linguaggio delle espressioni: G = ({E, T, A, I }, {a, b, +,,, (, )}, R, E), dove R è l insieme delle produzioni: E T T + E T - E; T A A * T; A I -A ( E ); I a b Ia Ib; 20/35 Programmazione II Lezione 3 26/10/2010

21 Vincoli Contestuali Correttezza di una frase dipendente dal contesto: non si può esprimere con una grammatica libera. Es: identificatore da dichiarare prima dell uso (Pascal, Java); inizializzare ogni variabile prima dell uso (Java); numero dei parametri effettivi pari al numero di parametri formali (C, Pascal, Java,...); espressione nella parte destra di un assegnazione di tipo compatibile con quello della variabile nella parte sinistra (C, Pascal, Java,...); non modificabilità della variabile che controlla il ciclo for (Pascal); metodo ridefinito da metodo con firma uguale (Java) o compatibile (Java 5). 21/35 Programmazione II Lezione 3 26/10/2010

22 Vincoli Contestuali Vincoli sintattici impossibili da descrivere tramite grammatiche libere da contesto. Necessitano di grammatiche contestuali: produzioni del tipo uav uwu, dove u, v, w T NT grammatiche difficili da scrivere e gestire; non esistono tecniche automatiche per la generazione di traduttori efficienti. Soluzione: vincoli contestuali tramite linguaggio naturale o tramite sistemi di transizione: la necessità di gestire i vincoli della sintassi contestuale porta alla nozione di semantica statica (verificabile sul testo del programma sorgente a tempo di compilazione). 22/35 Programmazione II Lezione 3 26/10/2010

23 Semantica Parte II Semantica 23/35 Programmazione II Lezione 3 26/10/2010

24 Semantica Semantica Specifica del linguaggio: esattezza e flessibilità: descrizione precisa e non ambigua della semantica di ogni costrutto; non deve vincolare l implementazione. Metodi formali: semantica denotazionale: significato del programma tramite una funzione (comportamento I/O del programma). semantica operazionale: comportamento della macchina astratta tramite formalismi di basso livello per definire l interprete: automi formali; assiomi algebrico-logici; stati e transizioni (SOS: semantica operazionale strutturata). altre: semantica assiomatica, algebrica,... 24/35 Programmazione II Lezione 3 26/10/2010

25 Stato Semantica Modello di memoria. Stato σ: sequenza finita di coppie (X, n): nello stato σ la variabile X ha il valore n; Operazioni: σ[x v]: nuovo stato simile a σ dove la variabile X prende il nuovo valore v; σ[x ]: ritorna il valore della variabile X nello stato σ (indefinito se la variabile non compare in σ). 25/35 Programmazione II Lezione 3 26/10/2010

26 Transizione Semantica Esprime un passo di trasformazione sullo stato del programma, provocato dall esecuzione di un comando. Forma semplice: dove: c: comando; σ: stato di partenza; τ: stato di arrivo. < c, σ > τ Es., comando nullo: < skip, σ > σ. 26/35 Programmazione II Lezione 3 26/10/2010

27 Semantica Transizioni Complesse Composte da passi più piccoli espressi da transizioni: < c, σ > < c, σ > Es., per il comando condizionale if, una delle transizioni è: < if tt then c 1 else c 2, σ > < c 1, σ > Condizionali: assumono la forma di una regola: se c 1 ha una transizione allora c ha una certa transizione; es.: < c 1, σ 1 > < c 1, σ 1 > < c 2, σ 2 > < c 2, σ 2 > < c, σ > < c, σ > da leggersi: se c 1 partendo dallo stato σ 1 può fare un passo trasformandosi in c 1 nello stato σ 1 e c 2 partendo da σ 2 può fare un passo trasformandosi in c 2 nello stato σ 2 allora il comando c partendo da σ può fare un passo trasformandosi in c nello stato σ (ad es., c 1 e c 2 sono sottocomandi di c). 27/35 Programmazione II Lezione 3 26/10/2010

28 Semantica Semantica delle Espressioni Aritmetiche dove p = n + m. < n, σ > n < n + m, σ > p < a 1, σ > < a, σ > < a 1 + a 2, σ > < a + a 2, σ > < X, σ > σ[x ] < n m, σ > p dove p = n m e n m. < a 2, σ > < a, σ > < a 1 + a 2, σ > < a 1 + a, σ > < a 1, σ > < a, σ > < a 1 a 2, σ > < a a 2, σ > < a 2, σ > < a, σ > < a 1 a 2, σ > < a 1 a, σ > 28/35 Programmazione II Lezione 3 26/10/2010

29 Semantica Semantica delle Espressioni Logiche < tt, σ > tt < ff, σ > ff < n == m, σ > tt se n = m. < n == m, σ > ff se n m. < bv 1 bv 2, σ > bv dove bv è l AND di bv 1 e bv 2. < tt, σ > ff < ff, σ > tt < a 1, σ > < a, σ > < a 1 == a 2, σ > < a == a 2, σ > < a 2, σ > < a, σ > < a 1 == a 2, σ > < a 1 == a, σ > < b 1, σ > < b, σ > < b 1 b 2, σ > < b b 2, σ > < b 1, σ > < b, σ > < b, σ > < b, σ > < b 2, σ > < b, σ > < b 1 b 2, σ > < b 1 b, σ > 29/35 Programmazione II Lezione 3 26/10/2010

30 Semantica Semantica dei Comandi < skip, σ > σ < X := n, σ > σ[x n] < c 1, σ > σ < c 1; c 2, σ > < c 2, σ > < a, σ > < a, σ > < X := a, σ > < X := a, σ > < c 1, σ > < c 1, σ > < c 1; c 2, σ > < c 1 ; c2, σ > < if tt then c 1 else c 2, σ > < c 1, σ > < if ff then c 1 else c 2, σ > < c 2, σ > < b, σ > < b, σ > < if b then c 1 else c 2, σ > < if b then c 1 else c 2, σ > < while b do c, σ > < if b then c; while b do c else skip, σ > 30/35 Programmazione II Lezione 3 26/10/2010

31 Computazione Semantica Sequenza di transizioni concatenate non ulteriormente estendibile in cui ogni transizione è premessa di qualche regola. Due tipi di computazione: terminanti: finite; divergenti: infinite (loop). 31/35 Programmazione II Lezione 3 26/10/2010

32 Computazione Finita Semantica Es il comando c: X := 1; while (X == 0) do X := X 1; nello stato σ = [(X, 6)]. Indichiamo con c il comando while (X == 0) do X := X 1;. Otteniamo: < c, σ > < c, σ[x 1] > < if (X == 0) then X := X 1; c else skip, σ[x 1] > < if (1 == 0) then X := X 1; c else skip, σ[x 1] > < if ff then X := X 1; c else skip, σ[x 1] > < if tt then X := X 1; c else skip, σ[x 1] > < X := X 1; c, σ[x 1] > < X := 1 1; c, σ[x 1] > < X := 0; c, σ[x 1] > < c, σ[x 0] > < if (X == 0) then X := X 1; c else skip, σ[x 0] > < if (0 == 0) then X := X 1; c else skip, σ[x 0] > < if tt then X := X 1; c else skip, σ[x 0] > < if ff then X := X 1; c else skip, σ[x 0] > < skip, σ[x 0] > σ[x 0] 32/35 Programmazione II Lezione 3 26/10/2010

33 Semantica Computazione Infinita Es il comando d: X := 1; while (X == 1) do skip; nello stato τ = [(X, 0)]. Sia d il comando while (X == 1) do skip;. Otteniamo: < d, τ > < d, τ[x 1] > < if (X == 1) then skip; d else skip, τ[x 1] > < if (1 == 1) then skip; d else skip, τ[x 1] > < if tt then skip; d else skip, τ[x 1] > < skip; d, τ[x 1] > < d, τ[x 1] >... 33/35 Programmazione II Lezione 3 26/10/2010

34 Semantica Pragmatica e Implementazione A che serve / Come usare un certo un certo costrutto linguistico? Obiettivo: migliorare il software. Fattori in evoluzione: convenzioni; stile: usare il goto? modificare le variabili dei cicli for? modalità di passaggio di parametri; scelta iterazioni. Connesso alla realizzazione pratica dei compilatori: come vengono implementati? a quale costo? Domande di tipo ingegneristico. 34/35 Programmazione II Lezione 3 26/10/2010

35 Riferimenti Semantica [1] Linguaggi di programmazione: principi e paradigmi (Cap 2). Maurizio Gabbrielli, Simone Martini. 35/35 Programmazione II Lezione 3 26/10/2010

Descrizione dei Linguaggi di Programmazione

Descrizione dei Linguaggi di Programmazione Descrizione dei Linguaggi di Programmazione Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 4 mar, 2016 Sommario 1 Livelli di Descrizione

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

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2) Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,

Dettagli

Linguaggi e Traduttori: Analisi sintattica

Linguaggi e Traduttori: Analisi sintattica Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione

Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 11 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 06 Aprile 2009 Riassunto delle puntate

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 3 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2009 Riassunto delle puntate

Dettagli

Backus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A ,

Backus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A , p.1/19 Backus Naur Form Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova Linguaggio di programmazione p.2/19 strumento linguistico per scrivere una sequenza di istruzioni (programma)

Dettagli

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

Dettagli

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio Messaggio Insieme di sequenze di simboli, le parole,

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO 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 C Fortran Modula-2 Cobol Algol Basic

Dettagli

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora una classe piu ampia di linguaggi, i Linguaggi Liberi da Contesto (CFL) i CFL sono stati

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO 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 C Fortran Modula-2 Cobol Basic Pascal

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO 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 C Fortran Modula-2 Cobol Algol Basic

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

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

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

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Corso di Laurea in ITPS Descrizione dei Linguaggi di programmazione Valeria Carofiglio (Questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi) 1 Argomenti

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Linguaggi e Traduttori: Analisi sintattica

Linguaggi e Traduttori: Analisi sintattica Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Interpreti, compilatori e semantica operazionale

Interpreti, compilatori e semantica operazionale Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione

Dettagli

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp.

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp. LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Cobol Basic Pascal Python Modula-2

Dettagli

Grammatiche Parse trees Lezione del 17/10/2012

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,

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di

Dettagli

Linguaggi di Programmazione dall assembler ai linguaggi di alto livello

Linguaggi di Programmazione dall assembler ai linguaggi di alto livello Linguaggi di Programmazione dall assembler ai linguaggi di alto livello LINGUAGGIO MACCHINA 0 READ 8 READ 9 LOADA 8 3 LOADB 9 4 MUL 5 STOREA 8 6 WRITE 8 7 HALT 8 DATO INTERO 9 DATO INTERO Rappresentazione

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 09 Linguaggi Sintassi e Semantica Alfonso Miola Ottobre 2009 http://www.dia.uniroma3.it/~java/fondinf/ Linguaggi - Sintassi e Semantica

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione 2. I linguaggi di I linguaggi di I linguaggi di I linguaggi di sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione

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

Proprietà dei linguaggi non contestuali

Proprietà dei linguaggi non contestuali Proprietà dei linguaggi non contestuali Argomenti della lezione Pumping lemma per i linguaggi non contestuali Proprietà di chiusura Argomenti della lezione Grammatiche non contestuali in forma ridotta

Dettagli

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio

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

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 13 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Informatica Università degli Studi di Milano 23 Aprile 2013 Riassunto delle puntate precedenti Linguaggi

Dettagli

Linguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN

Linguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol

Dettagli

Supplemento alle dispense di Sintassi

Supplemento alle dispense di Sintassi Supplemento alle dispense di Sintassi Luca Tesei 20 ottobre 2002 1 Formalizzazione Lo scopo di questa sezione è quello di presentare in maniera formale e precisa le nozioni di Automa e di Grammatica Libera

Dettagli

Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio

Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Linguaggi di Programmazione Dott. Pasquale Lops lops@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49 Grammatiche Rosario Culmone, Luca Tesei 20/11/2006 UNICAM - p. 1/49 Grammatiche libere dal contesto Ogni linguaggio di programmazione ha delle regole che prescrivono la struttura sintattica dei programmi

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

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

Dettagli

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen Linguaggi 4: Universitá di Bologna 24/02/2011 Outline 1 Wikipedia: La sintassi è la branca della linguistica che studia i diversi modi in cui le parole si uniscono tra loro per formare

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 6 Marzo 2007 Regole della grammatica di un linguaggio

Dettagli

Corso di Programmazione Linguaggi di Programmazione

Corso di Programmazione Linguaggi di Programmazione Corso di Programmazione Linguaggi di Programmazione Dott. Stefano Ferilli ferilli@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica Linguaggio Insieme di sequenze di simboli appartenenti

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3 Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 20 Aprile 2009 Riassunto: definire

Dettagli

Grammatiche context-free

Grammatiche context-free Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione quivalenza di grammatiche In Informatica (e non solo, naturalmente) esistono sempre molti

Dettagli

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21 Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

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

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java Università degli studi Roma Tre Linguaggi: Sintassi e Semantica Il A cura di A. Orlandini 1 Obiettivi Distinguere la sintassi dalla semantica di un linguaggio Conoscere le convenzioni del meta-linguaggio

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 03 Maggio 2010 Riassunto delle puntate

Dettagli

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 LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima

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

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto rammatiche e Linguaggi Liberi da Contesto Data una stringa w L(G), dove G e un CGF, possono esistere diverse derivazioni di w (che tipicamente differiscono per l ordine di applicazione delle produzioni)

Dettagli

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

Dettagli

Semantica Operazionale del linguaggio imperativo IMP

Semantica Operazionale del linguaggio imperativo IMP Aniello Murano Semantica Operazionale del linguaggio imperativo IMP 2 Lezione n. Parole chiave: Sem. Operazionale Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione

Dettagli

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.2 Introduzione ai Linguaggi Formali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Definizioni Preliminari Un

Dettagli

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di

Dettagli

2. Sintassi e Semantica

2. Sintassi e Semantica 2. Sintassi e Semantica Un linguaggio di programmazione è un linguaggio formale dotato di una sintassi e una semantica ben definita. Per linguaggio formale si intende un insieme di stringhe di lunghezza

Dettagli

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

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 10 Marzo 2008 Struttura di un compilatore

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli

Linguaggi e Traduttori: Analisi lessicale

Linguaggi e Traduttori: Analisi lessicale Linguaggi e Traduttori: Analisi lessicale Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-La) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

Un po di storia sui linguaggi

Un po di storia sui linguaggi LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima

Dettagli

Un po di storia sui linguaggi

Un po di storia sui linguaggi LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima

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

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,

Dettagli

Espressioni Regolari

Espressioni Regolari Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.

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

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

La Programmazione. Cos è la programmazione? Concetti preliminari

La Programmazione. Cos è la programmazione? Concetti preliminari La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione

Dettagli