Semantica Operazionale del linguaggio imperativo IMP

Documenti analoghi
Tecniche di prova per induzione


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

Aniello Murano Problemi non decidibili e riducibilità

Aniello Murano NP- Completezza (prima parte)

Laboratorio di Algoritmi e Strutture Dati

Aniello Murano Decidibilità delle teorie logiche

Laboratorio di Algoritmi e Strutture Dati

Esercizi (esercizi 1, 2, 3 e 4) Totale /6 /12 /6 /6 /30

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

Laboratorio di Algoritmi e Strutture Dati

Gennaio

Logica per la Programmazione

INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione

Laboratorio di Algoritmi e Strutture Dati

Nondeterminismo e Parallelismo (Concorrenza)

Logica per la Programmazione

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

Logica per la Programmazione

UNITA DIDATTICA: FORMULE GONIOMETRICHE

MODULO VERIFICA MACCHINA versione per CARRELLO

Cognome e nome nato a in data carica ricoperta DICHIARA / DICHIARANO

Interpreti, compilatori e semantica operazionale

MICROECONOMIA Teoria dell impresa

Laboratorio di Algoritmi e Strutture Dati

1 Il Paradigma Imperativo

Semantiche dei linguaggi di programmazione

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

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Il primo ruolo che può essere attribuito alla moneta è quello di intermediario dello scambio.

Informatica

RELAZIONE DEL COLLEGIO DEI SINDACI REVISORI AL BILANCIO DELL ANNO Signori Associati,

Valutazione Lazy. Prefazione alla lezione

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

Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser

Grammatiche Parse trees Lezione del 17/10/2012

DISCIPLINA IVA NEL SUBAPPALTO

L interesse nella macchina di Turing

Aniello Murano Space Complexity

Cosa si intende con stato

Aniello Murano Automi e Pushdown

Introduzione agli Algoritmi

Laboratorio di Informatica I

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Finanziamenti alle Imprese Regionali Statali Comunitari

Fondamenti teorici e programmazione

Laboratorio di Algoritmi e Strutture Dati

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

Istruzioni Condizionali

C O M U N E D I F R A S S I N O (Provincia di Cuneo) Tel. - Fax 0175/ C.F. e P.I

C O M U N E D I F R A S S I N O (Provincia di Cuneo) Tel. - Fax 0175/ C.F. e P.I

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Università degli Studi di Ferrara

Metodo delle Abstract State Machines per l analisi e il design

Allegato B alla deliberazione del Consiglio direttivo n. 3 del

Comune di Castrolibero

Algoritmi e soluzioni di problemi

COMUNE DI FRASSINO Provincia di Cuneo C.A.P TEL FAX

Logica per la Programmazione

C O M U N E DI F R A S S I N O PROVINCIA DI CUNEO

Comunità Montana Val Belluna Provincia di Belluno C.A.P Via dei Giardini, 17 - C.F

DOMANDA DI ISCRIZIONE alla SCUOLA SECONDARIA di SECONDO GRADO

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Logica per la Programmazione

PIANO DI MANUTENZIONE DELLE OPERE

AN ATOCISMO BAN CARIO

Verifica di programmi

Sviluppo di programmi

Istruzioni di controllo: SEQUENZA

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

CORSO DI PROGRAMMAZIONE

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

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

ATTIVITÀ DI VENDITA EX ART. 7 D.LGS 114/98, FORME SPECIALI DI VENDITA EX ARTT. DA 16 A 21 D.LGS 114/98 SOMMINISTRAZIONE EX ART. 68 COMMA 4 L.R.

Descrizione di un algoritmo

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

Espressioni e Comandi

ELENCO LAVORI ANNO 2007

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Comune di Vo P r o v i n c i a d i P a d o v a

Aniello Murano Breve Presentazione del corso

Istruzioni Condizionali

CASI ED ESERCIZI DI CONTABILITA ANALITICA SOLUZIONI

AVVISO PER LA CONCESSIONE DI PERMESSI PER MOTIVI DI STUDIO ANNO 2010

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Risoluzione di un problema

Linguaggi, Traduttori e le Basi della Programmazione

SmallC: Definizione ed Implementazione

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza

Semantica operazionale dei linguaggi di Programmazione1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Per alcuni la pianificazione è pensare al futuro (Bolan, 1974; Sawyer, 1983)

LINEA L: VARESE - BISUSCHIO andata

RELAZIONE STORICA DELL EDIFICIO

Corso di Fondamenti di Informatica

Corso: Fondamenti di Linguaggi di Programmazione

Transcript:

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 Il linguaggio IMP è detto imperativo perché l esecuzione di un programma comporta l esecuzione esplicito di comandi che modificano lo stato IMP è descrit to da regole che specificano come valutare le sue espressioni e come eseguire i suoi comandi. Tali regole forniscono una semantica operazionale di IMP

Sintassi di IMP Var m,n t X,Y A b c 2 2 2 2 2 2 Set N T Loc Aexp Bexp Com := := := := := := Definizione Interi {true, false} {x 1, x 2, x n, y 1, y 2,.y n } n X a 0 + a 1 a 0 a 1 a 0 a 1 true false a 0 = a 1 a 0 a 1 : b b o Æb 1 b 0 Æb 1 Skip X:=a c o ;c 1 if b then c 0 else c 1 while b do c La f or ma degli element i di Aexp, Bexp e Com viene specif icat a t r amit e r egole di f or mazione, espr esse in una var iant e della BNF(Bakus-Naur Form) Grammatica BNF (Bakus- Naur Form) a ::= n X a 0 + a 1 a 0 a 1 a 0 a 1 La BNF altro non e che un insieme di regole per costruire un linguaggio dove: ::= significa puo essere significa oppure a e una metavariabile Un linguiaggio e chiaramente un insieme di espressioni Aexp e l insieme delle espressioni aritmetiche Chiaramente la BNF e una semplificazione

Regole di costruzione Due livelli

Regole per generare espressioni Tutto questo è sufficiente?

Albero di derivazione Semantica operazionale

Stati Valutazione delle espressioni Aexp si valuta in interi, rispetto ad un dato stato Con <a, > denotiamo una espressione aritmetica a che deve essere valutata nello stato La coppia <a, > è una configurazione Per dire che l espressione a valutata nello stato si ridue a n usiamo <a, > n Il simbolo è una relazione di transizione Specifica il comportamento di una macchina astratta: Quando forniamo in input alla macchina una coppia espressione (a) stato ( ), la macchina da in output il valore n Questo può essere pensato come una transizione da una configurazione a un valore finale.

Terminologia Semantica operazionale di Aexp (1)

Semantica operazionale di Aexp (2) Semantica operazionale di Aexp (3)

Semantica operazionale di Aexp (4) Interpretazione delle regole Ogni regola di valutazione ha una premessa (scritta sopra la linea) e una conclusione (scritta sotto la linea) Siccome le regole specificano il significato delle espressioni in modo operazionale, si dice che esse definiscono una semantica operazionale di tali espressioni Alcune regole non hanno premesse. Queste regole, vengono anche chiamate assiomi come la regola seguente <n, > n

Albero di derivazione Sia a (Init + 5 ) + (7 + 9) nello stato 0 Init una locazione tale che 0 (init)=0 <Init, 0 > 0 <5, 0 > 5 <7, 0 > 7 <9, 0 > 9 <Init + 5, 0 > 5 <7 + 9, 0 > 16 <(Init + 5) + (7 + 9), 0 > Tale struttura viene detta albero di derivazione La conclusione della derivazione si chiama derivata Si noti come le regole forniscono anche un algoritmo per la valutazione di espressioni aritmetiche basato sulla ricerca di un albero di derivazione. 21 Equivalenza in Aexp

Intermissione Semantica operazionale di Bexp(1)

Semantica operazionale di Bexp(2) Semantica operazionale di Bexp(3)

Semantica operazionale di Bexp(4) Intermissione

Comandi Valutazione: Il ruolo dei programmi (e quindi dei comandi) è quello di essere eseguiti per cambiare lo stato. Quando si esegue un programma IMP, sia assume che lo stato (iniziale 0 ) associ valore 0 ad ogni locazione ( variabile ). In pratica 0 (X)=0. Successivamente l esecuzione può terminare in uno stato finale oppure divergere <c, > denota una configurazione di com ando e denota la possibilità di eseguire il comando c a partire dallo stato La valutazione di un comando è formalmente definita da una funzione da un comando e uno stato ad un nuovo stato. <c, >! Semantica Operazionale di Com (1) Per esempio, < X:=5, >, indica che lo stato si ottiene dallo stato, aggiornandolo in modo che la locazione X contenga il valore 5

Semantica Operazonale di Com (2) (Y) Osservazione Con questa notazione si può scrivere <X:=5, > = [5/X]

Semantica Operazonale di Com (3) Semantica Operazonale di Com (4)

Semantica Operazonale di Com (5) Equivalenza in Com (1)

Esercizio

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.