eliana minicozzi linguaggi1a.a lezione2

Slides:



Advertisements
Presentazioni simili
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Advertisements

Strutture dati per insiemi disgiunti
Pregnana Milanese Assessorato alle Risorse Economiche
Algoritmi e Strutture Dati
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
II° Circolo Orta Nova (FG)
/ fax
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Il linguaggio della Matematica: Insiemi e operazioni
Procedure e funzioni A. Ferrari.
1 DECRETO LEGISLATIVO 626/94 19 SETTEMBRE 1994 MODIFICHE ED INTEGRAZIONI DECRETO LEGISLATIVO 242/96 19 MARZO 1996 CORSO DI FORMAZIONE ED INFORMAZIONE IN.
Generazione di Codice Intermedio
Massa Laura Mela Enrica
1 Semantica Operazionale di un frammento di Java: lo stato.
Semantica Operazionale di un frammento di Java: lo stato
1 Strutture dati nel supporto a run time. 2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto.
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
DISEGNO TECNICO INDUSTRIALE
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Ordini Parziali - Reticoli
Dipartimento di Ricerca Sociale - Università del Piemonte Orientale 1 Castelli Aperti giugno 2005 Castello di Camino (AL) IL PUBBLICO DI CASTELLI.
La gestione delle controversie interne relatore: Silvio Beorchia.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
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.
Algoritmo di Ford-Fulkerson
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Eliana minicozzi linguaggi L1 Lezione3.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Approfondimento delle classi
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
nome: sequenza di caratteri usata per denotare un oggetto
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
memoria gestita staticamente:
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Num / 36 Lezione 9 Numerosità del campione.
Lezione 4 Probabilità.
Le funzioni.
Analisi di Immagini e Dati Biologici
Le funzioni a tempo di esecuzione
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
1ROL - Richieste On Line Ente pubblico 5ROL - Richieste On Line.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
LE SAI LE TABELLINE? Mettiti alla prova!.
Unità Didattica 3 Linguaggio C
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
14 marzo 2002 Avvisi:.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
lun mar mer gio ven SAB DOM FEBBRAIO.
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
USR-INRiM-GMEE-CE.SE.DI Formazione&Metrologia Modulo 1 1 Modulo 1 Costruzione di un linguaggio comune Preparazione liste dei termini. Condivisione.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Transcript della presentazione:

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Argomenti coperti da queste diapositive · Introduzione · Procedura come astrazione Definizione di Procedure Invocazione di Procedure Ambiente di Procedure Ambiente locale Ambiente non locale Bibliografia Esercizi eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Introduzione Procedure sono viste come astrazioni di parti di programma in unità di esecuzione più piccole, come enunciati o espressioni, nascondendo i dettagli irrilevanti ai fini del loro uso.. • Se si distinguono le unità di esecuzione, in ordine crescente di complessità: enunciati, espressioni, blocchi, programmi, allora si definisce astrazione procedurale la rappresentazione di una unità di esecuzione attraverso un’altra unità più semplice. In pratica è la rappresentazione di un blocco attraverso un enunciato o una espressione. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Procedura come astrazione Una procedura quindi è contemporaneamente complessa, cioè una sequenza di unità di esecuzione e la rappresentazione di questa mediante un unità di esecuzione semplice. La sua natura complessa è evidente nella sua definizione, la sua natura di statement (o per funzioni di espressioni) è evidente nel suo uso; eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Esempio in Pascal: definizione Definizione di una procedura: Procedure USELESS; begin writeln (‘this is the result’); writeln (‘of an execution’); writeln (‘of procedure USELESS’); end eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Esempio: Uso ……. USELESS; Nel suo uso la procedura Diventa un semplice statement eliana minicozzi linguaggi1a.a.2005-2006 lezione2

procedura è un’astrazione Nel suo uso, la procedura nasconde la complessità della sua definizione, diventa uno statement: questo può essere visto come astrazione: la rappresentazione cioè di una entità che nasconde quelli che possono essere considerati dettagli irrilevanti per il suo uso. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Vantaggi dell’ astrazione procedurale Almeno tre: Le unità di esecuzione che usano procedure, possono essere semplici connesse ad un unico scopo, facili da scrivere e da modificare: pensare alla riduzione di un problema a sotto problemi,e a codificare ogni sottoproblema con una procedura:progettazione top-down Il programma (la procedura) che usa una procedura non risente (proprietà di incapsulamento) dei dettagli implementativi della procedura usata, per cui l’implementazione può essere sempre variata purché si mantenga l’interfaccia di comunicazione con il programma “signature della procedura”. Le procedure sono riutilizzabili in ambienti diversi. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Procedura e legami La definizione di una procedura specifica quei legami che possono essere costruiti durante la compilazione: compile-time. A sua volta l’attivazione (invocazione) di una procedura provoca altri bindings che sono chiaramente definiti a run-time. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Legami a tempo di compilazione Si costruisce durante il processamento da parte del compilatore della definizione della procedura analoga alla definizione di tipo di dato eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Legami a run time Conseguenza del processamento a run time di uno Statement di invocazione della procedura: analogo Alla definizione di una variabile di un determinato tipo Compile time Run time eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Il record di attivazione varia Ogni processamento a run time di uno statement di invocazione della stessa procedura causa la generazione di un nuovo “oggetto procedura” con lo stesso legame di tipo, ma con diverso record di attivazione. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Informazioni contenute nel record di attivazione Il record di attivazione consiste di tre parti: ambiente LOCALE, ambiente dei PARAMETRI, e PUNTATORE ALL’AMBIENTE NON LOCALE. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Ulteriore struttura che si forma a run time Stack dei record di attivazione Quando una procedura è invocata, il suo record di attivazione viene messo sullo stack dei record di attivazione. Quando l’esecuzione della procedura termina il record relativo viene tolto dallo stack, e il record di attivazione dell’unità che aveva chiamato la procedura e la cui esecuzione era stata sospesa, diventa il top dello stack. Questo stack si forma a run-time ,e, istante per istante,contiene tutti i record di attivazione delle procedure che ancora non hanno completato la loro esecuzione. Attenzione: Solo l’unità il cui record di attivazione è al top dello stack è realmente in esecuzione, le altre hanno l’ esecuzione sospesa. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Ambiente locale L’ambiente locale della procedura contiene gli oggetti dichiarati nella procedura più il puntatore all’indirizzo di ritorno+ lo spazio di memoria temporaneo. Il puntatore all’ indirizzo di ritorno ha come valore la locazione contenente lo statement della procedura da cui l’esecuzione di essa deve riprendere , quando, dopo una fase di sospensione,la procedura avrà di nuovo il suo record di attivazione al top dello stack di run-time,. Dell’ambiente locale fa parte lo spazio di memoria temporaneo, spazio nel quale vengono messi i dati durante le valutazioni delle espressioni, in modo da essere eventualmente presi in considerazione quando si esegue il return. Questo spazio temporaneo è fortemente dipendente dall’implementazione. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Ambiente non locale Ambiente non locale E’ il posto per memorizzare l’informazione che permette l’accesso alle entità DATO usate dalla procedura ma non definite in essa. Questa informazione può essere rappresentata da un puntatore al record di attivazione il cui ambiente locale e non locale, determinerà l’ambiente non locale del presente record di attivazione. Quando nel corso dell’esecuzione della procedura chiamata viene fatto un riferimento ad un nome che non è legato nell’ambiente locale, l’ambiente non locale è esaminato per trovare tale nome. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Come si trova l’ ambiente non locale ovvero come si eredita Due politiche: Ambito di validità statico, Ambito di validità dinamico. Scelto un linguaggio importante sapere quale politica segue per la determinazione dei componenti dell’ ambiente non locale eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Ambito Statico Nello “STATIC SCOPE” l’ambiente non locale per una procedura è l’ ambiente locale e non locale dalla unità di esecuzione nella quale la procedura è definita. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2 Ambito dinamico Nel “Dynamic Scope” l’ ambiente non locale per una procedura generica k è l’ ambiente locale e non locale della procedura che l’ ha chiamata così come definito nel record di attivazione di essa al momento della chiamata. Viene quindi determinato dal record di attivazione che nello stack a run time precede immediatamente il record di attivazione della corrente invocazione di k. eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Esempi sullo stack di esecuzione eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

Arricchimento dei record di attivazione eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2

eliana minicozzi linguaggi1a.a.2005-2006 lezione2