Lo stato  I domini della semantica restano invariati: Ide, Val (Int  { ,  }) Loc (locazioni di memoria), FunctDecl. ma definiamo 2 funzioni: Loc :

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

Sottoprogrammi: funzioni e procedure
Puntatori in C e C++.
Procedure e funzioni A. Ferrari.
LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
Linguaggi di programmazione
Esercitazione guidata 1
Semantica di linguaggi di programmazione Ne esistono differenti stili a seconda di paradigma di programmazione uso (validazione, prototyping, verifica.
Type Checking (1° parte)
SOS a piccoli passi Invece di semplificare sempre in configurazioni finali, fattorizziamo in passi più piccoli (da cui il nome). In questo modo la non.
Paradigma Funzionale Paradigma Imperativo: Programma = transizione di stato Paradigma Funzionale: Programma = valutazione di un’espressione La maggior.
Generazione di Codice Intermedio
Paradigma Funzionale Paradigma Imperativo: Programma = transizione di stato Paradigma Funzionale: Programma = valutazione di unespressione La maggior parte.
1 Semantica Operazionale di un frammento di Java: lo stato.
Semantica operazionale
1 Strutture dati nel supporto a run time. 2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto.
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
Laboratorio di Linguaggi lezione IV Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Eliana minicozzi linguaggi L1 Lezione3.
Semantica denotazionale algebrica di LW Idea intuitiva: i valori che vogliamo denotare sono: gli statements sono funzioni di trasformazioni di stato (interno)
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Codifica di algoritmi linguaggio macchina vs programmazione strutturata Lab Programmazione - turno /2006.
Approfondimento delle classi
nome: sequenza di caratteri usata per denotare un oggetto
memoria gestita staticamente:
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Le funzioni.
Le funzioni a tempo di esecuzione
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
FUNZIONI: IL MODELLO APPLICATIVO 1) Valutazione, nellenvironment corrente, del simbolo che denota il nome della funzione; 2) Valutazione, nellenvironment.
PUNTATORI Un puntatore è una variabile destinata a contenere lindirizzo di unaltra variabile Vincolo di tipo: un puntatore a T può contenere solo lindirizzo.
AN FI Un denominatoe comune Linguaggi di programmazione Un denominatore comune.
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione XII Le funzioni Programmazione di Calcolatori: le funzioni 1.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
Lo sviluppo top down Le funzioni
Passaggio di parametri per indirizzo
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
I metodi F. Bombi Campi e metodi Abbiamo visto che una classe può contenere – Campi – Metodi stato I campi sono utilizzati per memorizzare.
Complessità di un algoritmo
- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN.
Sintassi: Programma e classi Program::=prog {ClassDeclList {StatList}} ClassDeclList::=ClassDecl ClassDeclList |  ClassDecl::=class Ide c [StaticMetDefList]
1 Tecniche per il passaggio dei parametri. 2 Contenuti ¥la tecnica base (nei vari paradigmi) ¥ passaggio per costante, per riferimento, di funzioni, procedure.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 3 Aprile 2015.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
Struttura del programma Intestazione Lista di istruzioni Esempio: Hello { public class Hello { main (String [] args){ public static void main (String []
Nucleo di Java: Struttura e Semantica Espressioni Assegnamento Controllo di sequenza Dichiarazioni.
1 Semantica Operazionale di un frammento di Java: le regole di transizione estensione (con piccole varianti) di quella in Barbuti, Mancarella, Turini,
1 Macchine astratte, linguaggi, interpretazione, compilazione.
1 Invocazione di metodi Com := Path Id (Expr_list) 4 path trattati come nelle variabili  path p’ 4 Risoluzione del nome: Ide * (Ide | Loc) * Cenv * Heap.
Esercizi.
1 Espressioni 4 dato che non abbiamo previsto inizializzazioni per le variabili (statiche e di istanza) all’interno delle classi, le espressioni possono.
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
Introduzione alle Classi e agli Oggetti in Java 1.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Transcript della presentazione:

Lo stato  I domini della semantica restano invariati: Ide, Val (Int  { ,  }) Loc (locazioni di memoria), FunctDecl. ma definiamo 2 funzioni: Loc : Loc  Val che trasforma locazioni in valori  Loc :Val  Loc che trasforma valori in locazioni

 Ide)= d in val ( d ) <&Ide,<   < in val ( d ),  <Exp,<  <v,  ’  <Exp,<  <v,  ’  <*Exp,<   <  ’  in Loc (v)),    <*Exp,<   <  ’  in Loc (v)),    Puntatori (Amp) (Star)

Programmazione strutturata Problemi complessi si risolvono suddividendo il problema in problemi più semplici ciascuno risolto da un programma – –es: faiCerchio, faiRettangolo e faiTriangolo sono pezzi di programma che assolvono un compito, in questo caso quello di leggere e calcolare per una data fig. geometrica. I programmi definiti dentro un programma più generale si chiamano funzioni (o procedure).

“Sottoprogrammi” Trasferimento del controllo (cambia il flusso delle istruzioni) Concetti di programma chiamante e programma invocato Scambio di dati tra programma invocato e programma chiamante – –parametri formali e – –parametri attuali – –risultato del programma invocato – –ambiente del programma invocato

Funzioni in ogni linguaggio anche Caml e C definizione: – –nome – –nome e tipo dei parametri (formali) – –tipo calcolato – –corpo invocazione: – –nome – –i parametri (attuali) In Caml i tipi non compaiono perchè inferiti dal sistema, il corpo è un’espressione

Type Ide (Type1 Ide1, Type2 Ide2) {StmtList }... Ide(Exp1,Exp2).... Definizione e invocazione nome della funzione parametri formali parametri attuali corpo della funzione tipo del risultato corrispondenza formali attuali Ide Ide1 Ide2 = Exp Caml C Ide Exp1 Exp2 Caml C

 ’ =  [ /m],  ’ =  [ /m], >  >  >  >   ’ >  >   ’ >   ’ >   ’ Definizioni di funzioni (FunDef) (STL)

>   (m)= free(  ’)= free(  ”)= free(  ’)= free(  ”)= >   >   VI >  Espressioni: invocazione di funzione invoc

>  > (return) Comandi: return

Scoping: Individua l’ambiente di valutazione della funzione: – –Statico: l’ambiente è costruito a partire dall’ambiente di risultante dalla dichiarazione della funzione – –dinamico: l’ambiente è costruito a partire dall’ ambiente di invocazione della funzione. Quasi tutti i linguaggi di programmazione utilizzano lo scoping statico

Passaggio dei parametri: La modalità di passaggio dei parametri : – –per valore : le modifiche effettuate dal chiamato non si ripercuotono nello stato del chiamante. Tutti i linguaggi la prevedono. – –per riferimento: le modifiche effettuate dal chiamato si ripercuotono nello stato del chiamante. È un modo per calcolare il risultato o parte di esso. Molti linguaggi imperativi la prevedono o la simulano, – –ne esistono altre (per nome) che non trattiamo. In C: passaggio solo per valore. Per riferimento è simulata utilizzando i parametri di tipo puntatore: cioè si passa l’indirizzo. esercizi