Semantica operazionale:

Slides:



Advertisements
Presentazioni simili
Semantica di linguaggi di programmazione Ne esistono differenti stili a seconda di paradigma di programmazione uso (validazione, prototyping, verifica.
Advertisements

Semantica operazionale
Sintassi: Programma e classi Program::=prog {ClassDeclList {StatList}} ClassDeclList::=ClassDecl ClassDeclList |  ClassDecl::=class Ide c [StaticMetDefList]
public class volume { public static void main (String[] args) { final double bott_vol =2.0; final double latt_vol = 0.355; int bott_num = 4; int latt_num.
Grammatiche 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa A05 Autovalutazione.
Damb Il funzionamento interno e le idee che stanno dietro Damb dalla Traduzione del File in Istruzioni, alle Analisi e le Soluzioni 14/09/2004.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
I linguaggi di programmazione Gruppo iOS 47: Colombini Christian Flora Jonathan Rossi Francesco.
La progettazione concettuale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Unità di apprendimento 1
Alcune note, dalla rete, sui Sistemi cellulari
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
LA PROGRAMMAZIONE: Algoritmi e programmi
Lavoro di gruppo 3^E sia Peroni Jessica Mascheroni Beatrice
ODMG.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
rielaborato da Atzeni-etal., Basi di dati, Capitolo 4
Linguaggi: guardando la semantica
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Programmazione per la Musica | Adriano Baratè
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Script Marco D. Santambrogio –
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Forme per rappresentare l’algoritmo:
FORMULE E FUNZIONI SU EXCEL
UML Creato da: Enrico Tarantino Alessandro Vilucchi Roberta Barcella.
Gestione Informatica dei Dati Aziendali Sistemi Informativi Gestionali
istalliamo l’ambiente di sviluppo - ide
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmare.
Secondo Programma in C.
RESISTENZE IN SERIE - PARALLELO
Programmazione e Laboratorio di Programmazione

Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Definizione di linguaggio di programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Interpretazione Astratta
Le Macchine di Turing.
Semantica dinamica Vogliamo definire una funzione che associ ad ogni termine corretto del mio linguaggio di programmazione un valore. Questa associazione.
Variazione percentuale di una grandezza
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Esercitazione guidata 1
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Analisi composizionale e contestuale
Unità D2 Dal problema all’algoritmo
UML Diagramma statico di una classe
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Programmazione e Laboratorio di Programmazione
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione Procedurale
Transcript della presentazione:

Semantica operazionale: La semantica ha lo scopo di definire il significato di un programma, la semantica operazionale raggiunge tale scopo definendo il comportamento del sistema (calcolatore) mentre esegue il programma. Il comportamento del programma viene definito utilizzando un sistema di transizioni in cui le configurazioni devono permettere di definire lo stato del sistema, le configurazioni terminali rappresentano i risultati, le transizioni descrivono l’evoluzione del sistema durante la computazione delle istruzioni del programma. 9/30/2019

Un sistema di transizioni per espressioni semplici Il sistema di transizioni che descrive la semantica di un linguaggio di programmazione (anche se non completo),è piuttosto complesso, per cui verrà introdotto per passi; Inizieremo con semplice linguaggio di espressioni che può essere descritto da un sistema di transizione molto semplice via via estenderemo il linguaggio, con nuovi meccanismi e di conseguenza il sistema di transizioni verrà anch’esso esteso. Exp::= Exp Op Exp | Num | ‘(‘Exp’)’ Op::= + | - | * | / Num::= ... Espresioni semplici 9/30/2019

Il sistema di transizioni per le espressioni semplici Semantica di Exp: Sexp  < exp, Texp, exp> exp  {E | E Exp}  {n | n} T exp  {n | n} exp Eexp n E’exp n’ n [op] n’ = m E op E’exp m Eexp n (E)exp n n exp n (Expop) (Exp()) (ExpNum)

Esempio: calcolo di 25-3*7 25 - 3 * 7 exp{ (expop), 25 expnum 25, 3 [*] 7 = 21 } 21 25 > 21 , 25 [-] 21 = 4 } 4

Semantica Operazionale: Espressioni Ia estensione (identificatori per costanti) Riferire una quantità mediante un nome è utile ed è prassi comune in molti formalismi. Le variabili in matematica sono dei nomi (identificatori) ai quali è associato un valore. Nei linguaggi di programmazione di tipo imperativo (e quindi anche object-oriented come Java) gli identificatori con associato il valore sono un meccanismo fondamentale per la definizione dei programmi. = 138,16 allorche’ Pigreco=3,14 = 138,226 allorche’ Pigreco=3,1415 2 * Pigrego * 22

Identificatori In ogni linguaggio è necessario definire dei nomi, nei L.P. i nomi vengono chiamati identificatori ed hanno una particolare sintassi, generalmente: Ide::=Lettera Carattere* Lettera::=A|B|C|…|Z|a|b|…|z, Carattere::=Lettera|Cifra|Simbolo, Cifra::=0|1|2|…|9, Simbolo::=-|$|%|:|<|…, Alcuni simboli non sono ammessi 9/30/2019

Un linguaggio d’espressioni con identificatori di costanti Una grammatica G Exp::= Exp Op Exp | Num | ‘(‘ Exp ‘)’ | Ide Op::= + | - |* | / Num::= … Ide::= ... 9/30/2019

Frame Un frame è una funzione da Identificatori in Valori: Ide Val. è una funzione parziale cioè definita solo per alcuni valori del dominio per gli altri è indefinita (). w è il frame sempre indefinito (cioè  x Ide w(x)=  Esempi: se 1={<Pigreco,3.14>, <Euro,1936>} e 2={<Pigreco,3.1415>} 1(Pigreco)=3.14  (2 * Pigrego * 22) j1 = 138,16 j2(Pigreco)=3.1415  (2 * Pigrego * 22) j2 = 138,226 j1(Euro)= 1936 j2(Euro)=  9/30/2019

Espressioni con identificatori di costanti Semantica di Exp: Sexp  < exp, Texp, exp> exp  {<E,j> | E Exp, j{Ide Val}  {n | n} T exp  {n | n} exp <E,j>exp n <E’,j> exp n’ n [op1] n’ = m <E op1 E’,j> exp m <E,j> exp n <(E),j> exp n <n,j> exp n j(x)= n <x,j> exp n (Exp+|-) (Exp()) (ExpNum) (ExpIde)

Esempio:calcolo di 2*Pigreco*22 <2 * Pigreco * 22, j{Pigreco=3}> exp{ (exp*|/), 2 expnum 2 , Pigreco * 22 exp { (exp*|/), Pigreco exp { (expIde), j(Pigreco)=3 } 3 22 expnum 22 3 [*] 22 = 66 } 66 2 [*] 66 = 132 } 132