1 Strutture dati nel supporto a run time. 2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto.

Slides:



Advertisements
Presentazioni simili
Traduzione ed Interpretazione
Advertisements

Laboratorio di Linguaggi lezione I: "Hello, world!" Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Laboratorio di Linguaggi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica.
Digital FX!32 Conte Davide Crivello Emanuele Ferrando Elisa.
Classe III A A.s – 2010 Programma di Informatica
Dalla scrittura all’esecuzione
Costruttori e Distruttori
Classe III A A.s – 2011 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
I linguaggi di programmazione
Definizione e tipi di implementazione
Linguaggi di programmazione
2/11/2004Laboratorio di Programmazione - Luca Tesei1 Punto della situazione Da dove veniamo, dove andiamo.
Type Checking (1° parte)
Generazione di Codice Intermedio
Algoritmi e Programmazione
Massa Laura Mela Enrica
Programmazione II Docente: Francesca Levi
1 Semantica Operazionale di un frammento di Java: lo stato.
Semantica Operazionale di un frammento di Java: lo stato
Generalità Linguaggio e Macchina Astratta
Fondamenti di Informatica
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Laboratorio di Linguaggi lezione VIII Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
eliana minicozzi linguaggi1a.a lezione2
Heap allocation e garbage collector di Oberon Algoritmo Quick Fit e garbage collector mark and sweep.
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
nome: sequenza di caratteri usata per denotare un oggetto
Tipo di dato: collezione di valori omogenei ed effettivamente presentati, dotata di un insieme di operazioni che li manipolano – aiutano lorganizzazione.
memoria gestita staticamente:
Espressioni condizionali
Le funzioni a tempo di esecuzione
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
Fondamenti di informatica Linguaggio C Main Program: Architettura di un PC Diagrammi di flusso Linguaggio C.
Introduzione a C#.
Java Contardi Carlo A.S. 2008/09.
Namespaces 1. Utilizzati per contenere tipi (classi, strutture, interfacce … ) ed altri namespaces La Class Library è organizzata gerarchicamente mediante.
Macchine astratte, linguaggi, interpretazione, compilazione
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Laboratorio di Linguaggi lezione VII: variabili Globali e Locali Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali.
Sintassi base e struttura di un programma
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
1.1 Sistemi di elaborazione
LdL - LP1 - lez 11 - ver 6 - aa Linguaggi di programmazione I Stringhe (II) Prof. Luigi Di Lascio Lezione 11.
1 Tecniche per il passaggio dei parametri. 2 Contenuti ¥la tecnica base (nei vari paradigmi) ¥ passaggio per costante, per riferimento, di funzioni, procedure.
1 Implementazione di (ambiente e) memoria nel linguaggio imperativo.
1. 2 Variabili statiche e dinamiche Un programma è un processo in esecuzione a cui il sistema operativo assegna una certa zona di memoria. Tale zona può.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Allievi Elettrici - AA Le funzioni ricorsive in C
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Relazione sulle strutture dati Svolta da: Buccella Simone Strutture di dati Aree di memoria Puntatore numericibooleani alfabetici Statici dinamici Puntatori.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
estensione (con piccole varianti) di quella in
1 Semantica Operazionale di un frammento di Java: le regole di transizione estensione (con piccole varianti) di quella in FONDAMENTI DI PROGRAMMAZIONE.
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Linguaggi di Programmazione
Lo stato  I domini della semantica restano invariati: Ide, Val (Int  { ,  }) Loc (locazioni di memoria), FunctDecl. ma definiamo 2 funzioni: Loc :
1 Strutture dati. 2 Astrazione Non vogliamo sapere l’organizzazione fisica dei dati  indirizzi e celle di memoria Ci interessa solo la loro organizzazione.
Concetti Fondamentali sulla Programmazione
1 Semantica Operazionale di un frammento di Java: lo stato estensione (con piccole varianti) di quella in Barbuti, Mancarella, Turini, Elementi di Semantica.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
FUNZIONI: IL MODELLO A RUN-TIME 1) creazione di una nuova attivazione (istanza) del servitore 2) allocazione di memoria per i parametri e per le variabili.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
1 Semantica Operazionale di un frammento di Java: intro estensione (con piccole varianti) di quella di FP | v |
1 Semantica Operazionale di un frammento di Java: intro estensione (con piccole varianti) di quella di FP | v |
1 Laboratorio di Programmazione di Sistema - C Susanna Pelagatti Ricevimento: Me ,
1 Tipi di dato modificabili §a livello semantico, riconduciamo la modificabilità alla nozione di variabile l lo stato “modificabile” corrispondente sarà.
Introduzione alle Classi e agli Oggetti in Java 1.
13. Strutture dati dinamiche Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Transcript della presentazione:

1 Strutture dati nel supporto a run time

2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto l interprete l I/O, librerie, routines per la gestione delle altre strutture, garbage collector §strutture dati per gestire le attivazioni (funzioni, procedure, classi) l ambiente l memoria l temporanei l punti di ritorno

3 FORTRAN §caratteristiche del linguaggio l permette compilazione separata dei sottoprogrammi l non permette ricorsione, struttura a blocchi, procedure annidate l ambiente e memoria locali sono statici non esiste ambiente non locale §gestione completamente statica l il compilatore crea, per ogni sottoprogramma, una unità compilata che contiene codice compilato il punto di ritorno larea dati locali (ambiente + memoria) temporanei l linker e loader risolvono i riferimenti globali e allocano in memoria tutte le unità necessarie le (poche e semplici) routines del supporto a tempo di esecuzione –input-output, operazioni matematiche,...

4 ALGOL §caratteristiche del linguaggio l il programma è un unico blocco, con blocchi e procedure annidati non permette compilazione separata dei sottoprogrammi l permette la ricorsione l ambiente e memoria locali dinamici (anche statici se dichiarati tali) l scoping statico non permette puntatori §semplice gestione dinamica basata sulla pila dei records di attivazione §il compilatore genera l il codice per lintero programma incluso quello per la generazione (a tempo di esecuzione) dei record di attivazione l costanti l larea dati locali statica (ambiente + memoria) §un record di attivazione contiene l punto di ritorno (puntatore di catena dinamica) l puntatore di catena statica l ambiente e memoria locali (senza nomi, inclusi i parametri formali) l temporanei

5 ALGOL: struttura della memoria (componente statico) codice, costanti, ambiente e memoria statici, I/O/, routines del supporto puntatore alla testa della pila pila dei records di attivazione punto di ritorno puntatore di catena statica array di valori denotati memoria locale temporanei

6 PASCAL §caratteristiche del linguaggio l il programma è un unico blocco, con blocchi e procedure annidati non permette compilazione separata dei sottoprogrammi l permette la ricorsione l ambiente e memoria locali dinamici (anche statici se dichiarati tali) l scoping statico permette puntatori §pila dei records di attivazione + heap §il compilatore genera l il codice per lintero programma incluso quello per la generazione (a tempo di esecuzione) dei record di attivazione l costanti l larea dati locali statica (ambiente + memoria) §un record di attivazione contiene l punto di ritorno (puntatore di catena dinamica) l puntatore di catena statica l ambiente e memoria locali (senza nomi, inclusi i parametri formali) l temporanei §heap senza garbage collector

7 PASCAL: struttura della memoria (componente statico) codice, costanti, ambiente e memoria statici, I/O/, routines del supporto puntatore alla testa della pila pila dei records di attivazione punto di ritorno puntatore di catena statica array di valori denotati memoria locale temporanei puntatore alla lista libera heap

8 C §caratteristiche del linguaggio l il programma è composto da moduli compilati separatamente l permette la ricorsione l ambiente e memoria locali dinamici (anche statici se dichiarati tali) l scoping statico permette puntatori §pila dei records di attivazione l un record di attivazione contiene punto di ritorno (puntatore di catena dinamica) puntatore di catena statica ambiente e memoria locali (senza nomi, inclusi i parametri formali) temporanei §heap senza garbage collector §come PASCAL, con compilazione separata

9 Java §caratteristiche del linguaggio l il programma consiste di un insieme di classi compilate separatamente l permette la ricorsione l ambiente e memoria locali dinamici (anche statici se dichiarati tali) l scoping statico (per i blocchi) oggetti e puntatori §pila dei records di attivazione + heap per gli oggetti §il compilatore genera, per ogni classe, l il codice compilato incluso quello per la generazione (a tempo di esecuzione) degli oggetti e quello per la generazione (a tempo di esecuzione) dei record di attivazione dei metodi l larea dati locali statica (ambiente + memoria relativi alle dichiarazioni static) §un record di attivazione contiene l punto di ritorno (puntatore di catena dinamica) l ambiente e memoria locali (senza nomi, inclusi i parametri formali) l temporanei §heap con garbage collector

10 ML §caratteristiche del linguaggio l il programma è un insieme di definizioni di funzioni compilabili separatamente l permette la ricorsione l ambiente locale dinamico l scoping statico valori di ordine superiore §pila dei records di attivazione + heap (per i termini e le liste) §il compilatore genera l il codice per ogni funzione incluso quello per la generazione (a tempo di esecuzione) dei record di attivazione §un record di attivazione contiene l punto di ritorno (puntatore di catena dinamica) l puntatore di catena statica l ambiente locale (senza nomi, inclusi i parametri formali) l temporanei l può essere necessario effettuare la retention di records di attivazione §heap con garbage collector

11 LISP §caratteristiche del linguaggio: simile ad ML, ma... scoping dinamico §le definizioni di funzioni (ed il loro codice compilato) sono associate al nome della funzione in una tabella degli atomi l una specie di ambiente globale §pila dei records di attivazione + heap (per le s-espressioni) §un record di attivazione dovrebbe contenere l punto di ritorno (puntatore di catena dinamica) l ambiente locale (con i nomi) temporanei §ma la pila di ambienti locali (a-list) è rappresentata come s-espressione e risiede nella heap l il record di attivazione contiene un puntatore alla a-list §heap con garbage collector

12 LISP: struttura della memoria (componente statico) interprete, garbage collector, I/O, routines del supporto puntatore alla testa della pila pila dei records di attivazione punto di ritorno puntatore alla a-list temporanei puntatore alla lista libera heap (dati di utente, programmi sorgente, ambiente) tabella degli atomi