• Non ci sono risultati.

imperativo IMP Introduzione

N/A
N/A
Protected

Academic year: 2021

Condividi "imperativo IMP Introduzione"

Copied!
19
0
0

Testo completo

(1)

Lezione n.

Parole chiave:

Corso di Laurea:

Codice:

Email Docente:

A.A. 2008-2009

Aniello Murano

Semantica Operazionale del linguaggio imperativo IMP

2

Sem. Operazionale

Informatica

murano@ na.infn.it

Introduzione

Il linguaggio IMP è detto imperativo perché l esecuzione di un programma comporta l esecuzione esplicito di comandi che modificano lo stato

IMP è de scr it t o da r e gole che specificano come valutare le sue espressioni e come eseguire i suoi comandi.

Tali regole forniscono una semantica operazionale di IMP

(2)

Sintassi di IMP

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)

n | X | a0 + a1| a0 a1| a0 £ a1 :=

Aexp A 2

{x1, x2, xn, y1, y2, .yn} :=

Loc X,Y 2

true | false | a0 = a1 | a0 · a1| : b | bo Æb1| b0 Æb1 :=

Bexp b 2

Skip | X:=a | co;c1 | if b then c0 else c1 | while b do c :=

Com c 2

{true, false}

:=

T t 2

Interi :=

N m,n 2

Definizione Set

Var

Grammatica BNF (Bakus- Naur Form)

a ::= n | X | a0 + a1| a0 a1| a0 £ a1

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

(3)

Regole di costruzione

Due livelli

(4)

Regole per generare espressioni

Tutto questo è sufficiente?

(5)

Albero di derivazione

Semantica operazionale

(6)

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.

(7)

Terminologia

Semantica operazionale di Aexp (1)

(8)

Semantica operazionale di Aexp (2)

Semantica operazionale di Aexp (3)

(9)

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

(10)

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

(11)

Intermissione

Semantica operazionale di Bexp(1)

(12)

Semantica operazionale di Bexp(2)

Semantica operazionale di Bexp(3)

(13)

Semantica operazionale di Bexp(4)

Intermissione

(14)

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 con figu r a z ion e di com a n d o 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, > !

Comandi

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

(15)

Semantica Operazonale di Com (2)

(Y)

Osservazione

Con questa notazione si può scrivere

<X:=5, > = [5/X]

(16)

Semantica Operazonale di Com (3)

Semantica Operazonale di Com (4)

(17)

Semantica Operazonale di Com (5)

Equivalenza in Com (1)

(18)

Esercizio

(19)

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.

Riferimenti

Documenti correlati

Il multivibratore astabile, ovvero a oscillazione libera, è un circuito che presenta una uscita che commuta tra due stati quasi stabili in maniera ripetitiva e con una frequenza f O

La tensione V + al morsetto non invertente, dato che l’operazionale non assorbe corrente, può essere determinata col principio di sovrapposizione degli effetti facendo

Misurare le impedenze di ingresso e di uscita agli estremi ed al centro della banda passante (chiudendo l’amplificatore su una resistenza di carico da 50Ω il segnale di uscita si

Misurare le impedenze di ingresso e di uscita agli estremi ed al centro della banda passante (chiudendo l’amplificatore su una resistenza di carico da 50Ω il segnale di uscita si

Pertanto, nella definizione della banda passan- te di un amplificatore con CFA, può essere opportuno tenere conto, in funzione del gua- dagno desiderato, della diminuzione della

Siccome le regole specificano il significato delle espressioni in modo operazionale, si dice che esse definiscono una semantica operazionale di tali espressioni. Alcune regole

Prima si svolgono le operazioni dentro le parentesi tonde, poi quelle dentro le parentesi quadre e infine quelle dentro le parentesi graffe.. Le parentesi si tolgono quando rimane

Copyright© 1994-2007 owned by Tiziana Carlesi e Ubaldo Pernigo, please contact: ubaldo@pernigo.com Licenza di questo documento: “GNU Free Documentation License&#34;.. GNU