• Non ci sono risultati.

relazione chiamante-chiamato A B C CALL B CALL C Introduzione al corso, Paolo Bison, FI p.7 proprietà CALL-RETURN  chiamata esplicita (CALL

N/A
N/A
Protected

Academic year: 2021

Condividi "relazione chiamante-chiamato A B C CALL B CALL C Introduzione al corso, Paolo Bison, FI p.7 proprietà CALL-RETURN  chiamata esplicita (CALL"

Copied!
13
0
0

Testo completo

(1)

Introduzione ai sottoprogrammi

Paolo Bison

Fondamenti di Informatica Ingegneria Meccanica

Università di Padova A.A. 2008/09

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.1

Struttura

 programma formato da vari elementi (sottoprogrammi) indipendenti tra loro

 ogni sottoprogramma composto da:

 insieme di istruzioni (corpo)

 nome del sottoprogramma

 esempio program A

x=3*t call B y=x+k

end program A

subroutine B call C t=x*20

end subroutine B

subroutine C t=8*k

end subroutine C

(2)

Vantaggi

 metodologia di programmazione top-down, bottom-up

 operazioni per tipi definiti dall’utente tipo point3D

 limitazione duplicazione codice inizializzazione

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.3

Linguaggio di programmazione

 sintassi per la definizione dei sottoprogrammi

 strutture di controllo per l’attivazione ed esecuzione dei sottoprogrammi

 meccanismi per il trasferimento di dati a e da sottoprogrammi

(3)

Organizzazione e controllo

sequence control

il controllo dell’ordine di esecuzione delle

operazioni/istruzioni, sia primitive che definite dall’utente (istruzione IF)

data control

il controllo della flusso dati tra insiemi di operazioni (variabile)

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.5

Sequence control nei sottopprogrammi

 meccanismi per controllare la sequenza in cui insiemi di sottoprogrammi sono attivati ed eseguiti

 struttura CALL-RETURN

(4)

CALL-RETURN

 gerarchia di sottoprogrammi:

sottoprogramma principale che puó attivare l’esecuzione di altri sottoprogrammi che a loro volta possono attivare altri sottop. e così via ...

 relazione chiamante-chiamato

A B C

CALL B CALL C

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.7

proprietà CALL-RETURN

 chiamata esplicita (CALL)

 ritorno esplicito (RETURN)

 esecuzione chiamante momentaneamente bloccata

 quando il chiamato termina si continua l’esecuzione dall’istruzione seguente la CALL

(5)

Copy Rule (regola di copia)

 semantica della struttura CALL-RETURN

 sostituzione testuale dell’istruzione CALL con il corpo del chiamato

 limitazioni

1. assenza di ricorsione 2. esplicita istruzione CALL

3. esecuzione chiamato fino a sua fine (logica) 4. singola sequenza di esecuzione

5. trasferimento immediato al chiamato

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.9

Data Control

 controllo del flusso/condivisione dati tra insiemi di operazioni

 punto centrale del data control

dato x=y+z*2 cosa significano x,y,z ad ogni esecuzione dell’istruzione

 nei sottoprogrammi possono indicare:

 una variabile locale

 una variabile non locale

 un parametro

 un sottoprogramma

(6)

Associazione (binding)

 associazione tra identificatori e dati/programmi

 coppia identificatore-oggetto

variabile

X 10

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.11

Operazioni sulle associazioni

 naming

creazione dell’associazione

 attivazione

associazione disponibile per operazioni di riferimento

 disattivazione

associazione non più utilizzabile in operazioni di riferimento

 unnaming

distruzione dell’associazione

 riferimento

accesso all’oggetto attraverso l’identificatore

(7)

Ambiente di riferimento (AR)

 insieme delle associazioni attive in un determinato momento dell’esecuzione del programma

 varia dinamicamente a seconda del flusso di esecuzione

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.13

Scope Rules

 regole di validità o di campo

 servono a determinare l’AR in ogni punto del programma

 definiscono i momenti in cui avvengono le operazioni sulle associazioni

 tipi di scope rules

 dinamiche

validità di una associazione definita in termini del flusso di esecuzione

 statiche

validità di una associazione definita in termini della struttura statica del programma

(8)

Riferimenti nei sottoprogrammi

 riferimenti ad identificatori in un sottoprogramma possono essere

 locali

associazione attiva solo nel sottoprogramma di esecuzione

 globali

associazione attiva per tutta la durata del programma

 non locali

nè locali nè globali

 ambiente locale di riferimento (ALR)

 ambiente non locale di riferimento = AR - ALR

 “side effects”

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.15

Gestione ALR

P Q R

CALL Q CALL R

1 2

4 3

1. Qual’è l’iniziale configurazione del ALR all’inizio di Q?

2. Cosa succede al ALR di Q quando Q chiama R?

3. Qual’è l’ALR di Q quando il controllo ritorna da R?

(9)

Gestione ALR - risposte 2 e 3

2 - L’ALR di Q viene disattivato, ma non distrutto, quando Q chiama R

3 - L’ALR di Q viene riattivato quando R ritorna.

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.17

Gestione ALR - risposte 1 e 4

 due approcci

 attivazione/disattivazione 1 - attivazione del ALR di Q 4 - disattivazione del ALR di Q

 creazione/distruzione

1 - creazione del ALR di Q 4 - distruzione del ALR di Q

(10)

Gestione ambiente non locale

 due metodologie

1. esplicita specificazione 2. creazione implicita

 associazione più recente nella catena delle chiamate

 associazione nel programma principale

 associazione determinata dalla struttura statica del programma

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.19

Passaggio di parametri

 scambio di dati tra sottoprogrammi

 parametri vs. variabili non locali

 parametro

nuovo dato ad ogni attivazione

 variabile non locale

dato che cambia raramente

 uso di identificatori locali per accedere a dati non locali.

(11)

Formali e attuali

formali

identificatori locali usati nella definzione per nominare dati trasmessi al sottoprogramma

lista di identificatori dopo nome:

procedure P(x,y) attuali

espressioni usate nel punto di chiamata per specificare i dati da passare al chiamato

lista espressioni dopo nome chiamato

call P(x1*20,10)

 par. formali inizializzati a dati non locali (par. attuali) al momento dell’attivazione

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.21

Corrispondenza formali-attuali

posizionale

posizione nella lista

P(x,y)

P(x1*20,10) nominativa

esplicito uso del nome del parametro formale

call P(y:=10,x:=x1*20)

 num. par. formali = num. par. attuali

(12)

Associazione dei valori

 associazione dei valori definiti dai par. attuali ai par. formali

 metodi di passaggio:

1. per valore

2. per riferimento 3. per nome

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.23

Passaggio per valore

 valore del par. attuale valutato al momento della chiamata diventa valore di inizializzazione del par. formale

 par. formale var. locale + inizializzazione

 chiamante chiamato

(13)

Passaggio per riferimento

 al par. formale viene associato un riferimento (puntatore), valutato alla chiamata, che si riferisce al par. attuale

 possibile modifica di un dato non locale

 chiamante chiamato

Introduzione al corso, Paolo Bison, FI08, 2008-12-09 – p.25

Riferimenti

Documenti correlati

Le attività sono regolate da una precisa organizzazione dei tempi, in cui un sistema centralizzato si occupa di contattare i clienti e di smistare le telefonate ai

validità di una associazione definita in termini della struttura statica del programma. Introduzione al corso, Paolo Bison, FI07, 2008-01-08

L’edizione 2021 del Festival ospiterà un convegno, organizzato in collaborazione con Università degli Studi di Torino, e rivolto al mondo della scuola, agli studenti e

✓ Coordinatori di Consorzio: capacità di coordinare il consorzio in base al piano Erasmus proposto, allo scopo del Consorzio, alla divisione dei compiti e agli Standard di

- se previste attività di mobilità per i discenti: se e come sono coinvolti partecipanti con minori opportunità.. In questa sezione sono riportati gli Standard di qualità Erasmus,

- Trasformazioni nel mondo della produzione e dei servizi e ruolo delle professioni della comunicazione - Inclusività, pari opportunità e sostenibilità nelle professioni

- un Sector LogisticLab nel 2018 finalizzato alla creazione d’impresa nel settore Logistica - un Laboratorio di Mircro-innovazione aperta sul settore della Logistica 2019/2020 a cui

geo-informazione) e ARPA Lazio, al fine di identificare i fabbisogni di innovazione legati all’uso dei droni nell’ambito di attività di monitoraggio ambientale e telerilevamento. In