Dimensione: px
Iniziare la visualizzazioe della pagina:

Download ""

Transcript

1 Java Virtual Machine La cara1eris3che di base sono analoghe a quella della P- code però più complessa perchè i da3 stru1ura3 (oggea e array) sono implementa3 nella JVM. Analogamente alla P- code, ha lo stack per ges3re i metodi e lo heap per memorizzare gli oggea (li vedremo nel de1aglio)

2 Data Types Dal momento che rappresentazione dei da3 è nascosta nella implementazione della JVM, i 3pi di da3 in Java e nella JVM sono abbastanza similari. Un eccezione è 3po Boolean che non esiste nella JVM e è implementato come un int o come un byte. Gli oggea sono memorizza3 nello heap e sono accessibili usando il loro indirizzo (reference). I 3pi primi3vi sono immediatamente u3lizzabili.

3 Data Types I 3pi di da3 sono primi3vi : int, char, byte, short, long float, double, returnaddress. Nessuna assunzione viene fa1a sul numero di bytes usa3. La specifica definisce solo l insieme di valori del 3po. References (pointers): sono indirizzi nello heap. Nessuna assunzione viene fa1a sulla reppresentazione. Esiste un valore null che representa il valore indefinito.

4 Data Types OggeA: sono da3 stru1ura3 representa3 nello heap come coppie di e3che1a, valore dove i valori posono essere di un 3po primi3ve o un reference Arrays: sono oggea i cui elemen3 sono tua dello stesso 3po (i.e. sono valori di un 3po primi3vo type o un reference a oggea dello stesso tpo). Sono anch essi contenu3 nello heap. Il numero di elemen3 dell array è fissato (non cambia durante l esecuzione).

5 Lo Stack Gli elemen3 dello Stack sono chiama3 cell o slots. La reale dimensione degli slots dipende dall implementazione. Di solito uno slot con3ene un single dato. long e integers and double precision floa3ng point numbers sono eccezioni, in quanto di solito richiedono 2 slots. Lo stack è cos3tuito da: area locale con3ene variabili che sono locali ad un metodo e argomen3. Ha dimensione fissa. Operand storage con3ene operandi per le istruzioni funzionali (aritme3che ecc).

6 Lo Heap L area da3 è chiamata Heap. Con3ene tua gli objects sta3ci e dinamici e gli array. L accesso agli oggea crea3 dinamicamente avviene a1raverso i reference (ovvero indirizzi), che devono essere del 3po corre1o. Il Garbage collector cerca nello heap, la memoria non u3lizzata.

7 Class area (è permanente) Proprietà delle classi: Superclass, interfaces implementate, liste di campi, che possono essere sta3ci (class variables) o dinamici (instance variables) list of methods whose implementa3on is stored in the method area Le proprietà delle classi non possono essere cambiate, durante l esecuzione del programma. La memoria usata per una classe può essere liberata dal garbage collector se la classe non è più utlizzata. Definizioni di Interfacce

8 Method area Con3ene le definizioni dei metodi ovvero: descri1ori, parametri e type calcolato dal metodo oltre al corpo Constant pool con3ene tu1e le costan3 contenute nel programma

9 Memory in JVM Class area Class name SuperClass:... Fields:... Methods:... Method area perimeter Constant Pool Stack Local Variables Heap Object main Operands Array Local Variables Sta3c memory Dynamic memory Operands

10 Instruc3on Set creazione di oggea invocazione di metodi accesso e modifica dei campi Formato Istruzioni di trasferimento dei da3 Conversioni di 3po Istruzioni funzionali (aritme3che ecc) Istruzioni di controllo (control flow)

11 Oolong Oolong è un simbolico del bytecode, nel seguito introduciamo direave e istruzioni come possono essere u3lizzate in Oolong. Le istruzioni sono la rappresentazione simbolica delle istruzioni in byte code. le direave non hanno un corrispeavo nel byte code. (anche se ci sono dei delimitatori)

12 Direc3ves, comments (Oolong?) ; questo è un commento tu1e le direave iniziano con un. Le direave sono necessarie per dichiarare: classi, interfacce, gerarchie (.class,.interface,.super) restrizioni di memory.limit stack.limit locals metodi.method.end fields.field

13 Descriptors (Oolong) Descri1ori di 3po sono u3lizza3 per definire campi (field) e metodi sono: I int, F float, D double, C char etc. (vedi tabella) Descri1ori analoghi a quelli di Java: public, sta3c, final ecc. servono per specificare la visibilità ed altre proprietà di classi campi e metodi (ognuno ha i suoi descri1ori, anche se alcuni sono comuni, vedi tabelle).

14 Istruzioni : il formato Il formato delle istruzioni è variabile op, op index, op index1 index2, op data1 data2,...

15 Definizioni di classi e metodi (Oolong) Un primo esempio: Hello getsta3c fieldname Type me1e sullo stack il field ldc string me1e sullo stack la costante specificata invokevirtual methodname(argtype)rtype Esercizi

16 Istruzioni di trasferimento dei da3 constants ldc c load una costante c può essere un /po primi/vo bipush n push l valore di /po T nella variabile locale n sullo stack <=n<=127 sipush n push il valore di /po T nella variable local n sulo stack <=n<= iconst_n push la costante n sullo stack., 0 <=n<=5 Tconst_n push la costante n sullo stack. T {l,d}, 0 <=n<=1 fconst_n push la costante n sullo stack. 0 <=n<=2 aconst_null push il reference null sullo stack iconst_m1 push int - 1 sullo stack

17 Instruzioni di trasferimento dei da3 local variables Tload n push del valore di /po T nella variabile locale n sullo stack, T {i,f,l,d,a} Tload_n push del valore di /po T nella variable locale n sullo stack 0<=n<=3, T {i,f,l,d,a} Tstore n store the value of type T on top of the stack, into the local variable n, T {i,f,l,d,a} Tstore_n store the value of type T on top of the stack, into the local variable n, T {i,f,l,d,a}

18 Type conversion La conversione di 3po include operazioni di conversione che non possono implicare perdita di informazioni. Quindi conversione da qualcosa che necessita meno memoria a qualcosa che necessita più memoria : i2l int to long, i2f int to float etc.

19 Narrowing Narrowing include operazioni di conversione che possono implicare perdita di informa3on. Quindi è la conversione da qualcosa che (in generale) necessita più memoria a qualcosa che necessita meno memoria : l2i long to int, f2i float to int etc.

20 Istruzioni funzionali iadd, ladd, fadd, dadd, isub,... imul,..idiv, irem,..., ineg il 3po del risultato è sempre lo stesso del 3po degli operandi, se necessario bisogna inserire un operazione di conversione. gli operandi sono sullo stack l operazione li toglie dallo stack e lascia sullo stack il risultato

21 Esempio Un esempio: Sum.j Esercizi

22 Operazioni bit a bit (bitwise instruc3ons) ishl, lshl: integer e long shih leh (inserisce 0) ishr, lshr: integer e long shih right (inserisce 0 o 1 ripetendo il bit di segno) iushr,lushr, integer e long unsigned shih right (inserisce sempre 0 ) iand, land: integer e long and bit a bit ior, lor: integer e long or bit a bit

23 Istruzioni di manipolazione dello stack dup: crea un copia del top dello stack (serve in genere per modificare un ogge1o e lasciare sullo stack un puntatore all ogge1o modificato) swap: inverte i due elemen3 sul top dello stack pop: elimina il top dello stack (usato in genere per eliminare dallo stack il risultato di un metodo di cui interessano solo i side effects).

24 Esempi (Oolong) Un esempio: fare qualcosa con lo shih e type conversion Esercizi

25 OggeA Creazione: new nomeclasse Costru1ori: vengono defini3 come i metodi con il nome di default <init> Uso dei campi gemield, getsta3c, pumield, putsta3c esempi: Dichiarazione di metodo ed invocazione: Argomento Dichiarazione di classe con field e inizializzazione: Persona

26 Invocazione di metodi di istanza: invokevirtual A1enzione nella JVM non c è overloading, che, in Java infaa, viene risolto a tempo di compilazione invokevirtual MetName(ArgType)Type cerca il metodo nella classe e sue super classi (virtual dispaching) nella variabile 0 c è il receiver (this), nella variabile 1 il 1 o argomento, nella variabile 2 il 2 o ecc

27 Invocazione di metodi di istanza: invokespecial invokespecial MetName(ArgType)Type invoca il metodo della classe specificata nel nomemet, bypassando il dispaching Per gli argomen3 vale quanto de1o per la invokevirtual Se la classe in cui il metodo è definito è dichiarata super l invokespecial opera come un invokevirtual iniziando a cercare dalla super classe.

28 Invocazione di metodi sta3ci: invokesta3c invokesta3c MetName(ArgType)Type invoca il metodo della classe specificata nel MetName, analoga al invokespecial ma in questo caso non c è il receiver quindi solo gli argomen3 sono sullo stack

29 Terminazione dei metodi return termina l esecuzione e ritorna la chiamante, ovvero il frame sul top dello stack viene eliminato e l istruzione che viene eseguita è quella successiva all invocazione, xreturn con x {i, f, d, l, a} che indica n il 3po del valore risultato del metodo a è indica un reference type. La corre1ezza del 3po viene controllata dal verifica3on process.

30 Istruzioni di controllo e3che1e (label) che individuano indirizzi di istruzioni: sono ammessi solo indirizzi all interno del metodo (sono in bytecode offset rispe1o all istruzione corrente) goto label: l istruzione che viene eseguita è quella all indirizzo corrispondente alla label

31 Istruzioni di controllo: salto condizionato ne esistono vari insiemi: confronto di interi if_icmpgt label ecc. confronta i 2 interi sul top dello stack confronto di reference if_acmpeq label, if_acmpneq label, 2 reference sullo stack, ifnull label, ifnonnull label 1 reference sullo stack confronto con 0 ifeq label, ifne label ecc. 1 int sullo stack Esempi: Branch e Loop

32 Istruzioni di controllo: salto condizionato confronto di double: dcmpg, dcmpl 2 double sullo stack confronto di float fcmpg, fcmpl 2 float sullo stack confronto di long lcmp 2 long sullos tack Tu1e queste lasciano - 1, 0 o 1 sullo stack, bisogna poi usare un ifeq iflt ecc per trasferire il controllo

33 Istruzioni di controllo: switch e tableswitch Entrambe si aspe1ano un valore intero sullo stack. switch tableswitch Esempi: Confronto e Confronto1 Esercizi: rifare gli esercizi risol3 con gli if usando switch e tableswitch opportunamente

34 Istruzioni di controllo: subrou3nes È un goto con ritorno, somiglia ad un invocazione di subrou3ne senza argomen3. il comando è jsr label salta all istruzione di indirizzo label e lascia sullo stack l indirizzo di ritorno. il codice che inizia a label deve memorizzare l indirizzo di ritorno in una variabile locale ret n ritorna il controllo all istruzione il cui indirizzo è contenuto nella variabile argomento. Non modifica il top dello stack.

35 Arrays Gli array sono oggea e come tali sono memorizza3 nello heap. newarray type crea un array i cui elemen3 sono di 3po type. il numero di elemen3 dell array è l intero sul top dello stack il puntatore all array è lasciato sullo stack le operazioni per accedere ad un elemento e per modificarlo sono xload e xstore

36 Arrays xload si aspe1a sullo stack il puntatore all array e l indice dell elemento da caricare sullo stack xstore si aspe1a sullo stack il puntatore all array e l indice dell elemento da modificare e il nuovo valore da memorizzare x {a, b, c, d, f, l, s} Esempi: EsArray e ProvaTest (esempio che mostra come sa possibile mischiare programmi Java compila3 e programmi o1enu3 con Oolong

37 Cast Anche il cast è un operazione della JVM. checkcast Type controlla che il top dello stack sia del 3po specificato. Il top dello stack NON viene rimosso. Il cast perme1e di superare il verifica3on process. Eventualmente se il 3po non e quello a1eso si verificherà un errore a run3me.

38 Eccezioni nella JVM Dichirazione e creazione dell eccezione come so1oclasse di java/lang/excep3on con il costru1ore <init> (vedi esempio ElementNotFoundExcep3on) direave nel metodo.catch Eccezione from label1 to label2 using label3 direava.throws Eccezione nel metodo se questo può lanciare un Eccezione.

39 Eccezioni nella JVM l istruzione athrow deve trovare sullo stack l eccezione, se nel metodo c è un catch dell eccezione lo stack degli operandi viene ripulito, l eccezione è ricaricata sullo stack e l esecuzione procede con il codice a par3re da label3 del catch appropriato. Altrimen3 il processo del metodo corrente termina, e l eccezione è comunque ricaricata sullo stack. Esempio EsArray.j EsArray2.j

40 Format of Java Binary Class Magic number Version informa3on Constant pool size Constant pool Access flags This Class Super Class Interface count Interfaces Field count Field informa3on Method count Methods A1ribute count A1ributes

41 Garbage collector Tipo di tecnica usata

42 Cosa viene fa1o Verifica3on process

Ges$one della memoria

Ges$one della memoria GARBAGE COLLECTION Ges$one della memoria! Sta$c area o Dimensione fissa, contenu$ determina$ e alloca$ a compilazione,! Run- $me stack o Dimensione variabile (record a=vazione) o Ges$one so?oprogrammi!

Dettagli

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Introduzione alla programmazione in C++ 1 Un introduzione Che cosa è il C++? La programmazione procedurale La programmazione orientata agli oggetti La programmazione

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione Corso di Architettura degli Elaboratori Il livelo ISA: ISA IJVM, tipi di dati e formato delle istruzioni Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149

Dettagli

Interpretazione astratta in praticaun analizzatore generico per Ja

Interpretazione astratta in praticaun analizzatore generico per Ja Riassunto puntate precedenti Control Flow Graph Proprietà Dominio numerico Approssimazione Interpretazione astratta in pratica Un analizzatore generico per Java Pietro Ferrara Università Ca Foscari di

Dettagli

Integer Java Virtual Machine (IJVM)

Integer Java Virtual Machine (IJVM) Integer Java Virtual Machine (IJVM) Calcolatori Elettronici II Prof. Antonino Mazzeo mazzeo@unina.it Ing. Luigi Romano Ing. Alessandro Cilardo Ing. Luigi Coppolino lrom@unina.it acilardo@unina.it lcoppoli@unina.it

Dettagli

Memory Management. Local Storage. Global Storage. Delete esplicite

Memory Management. Local Storage. Global Storage. Delete esplicite Memory Management Costruzione di Interfacce Lezione 13 Dal Java al C++ cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Due grandi categorie di storage: Local, memoria valida solo all interno di

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Corso di Grafica Computazionale

Corso di Grafica Computazionale Corso di Grafica Computazionale Note di C++ Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Note Iniziali Il C++ non ha il concetto dei packages In

Dettagli

06 Livello di micro architettura

06 Livello di micro architettura Livello di micro architettura Pagina 2 Introduzione il livello di micro architettura implementa le funzioni del livello sovrastante (ISA) come livello ISA di riferimento si sceglie una parte della JVM

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

strutturare dati e codice

strutturare dati e codice Puntatori e passaggio parametri strutturare dati e codice Tipo di dati int * Pi ; Op. dereferenziazione j = *Pi ; Op. indirizzo Pi = &i ; By value int f(int i) ; a = f(b) ; By address int f(int * Pi) ;

Dettagli

Introduzione a.net (2)

Introduzione a.net (2) Introduzione a.net (2) Il linguaggio C# Implementazioni alternative dell'architettura.net: Rotor Mono C#: un nuovo linguaggio C# : CLR = Java : JVM C# è il linguaggio di riferimento per.net Costruito su

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Aritmetica. Progetto dei programmi

Aritmetica. Progetto dei programmi Aritmetica Un approccio metodologico alla costruzione dei programmi. Tipi di dati primitivi. int, float, double Variabili, dichiarazioni e operazioni Progetto dei programmi 2 Definizione del problema Scenario

Dettagli

AA 2014-2015. 20. Nomi, binding

AA 2014-2015. 20. Nomi, binding AA 2014-2015 20. Nomi, binding 1 Nomi Un nome in un linguaggio di programmazione è esa;amente quello che immaginate o la maggior parte dei nomi sono definia dal programma (gli idenaficatori) o ma anche

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca

Dettagli

Indice. Introduzione. I tipi aritmetici. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco A.A.

Indice. Introduzione. I tipi aritmetici. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco A.A. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 Indice Tipi semplici propri del linguaggio Variabili Tipi composti

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

ARRAYLIST. Programmazione con Java ArrayList e Generics 2 08/06/2014. Daniela Micucci daniela.micucci@unimib.it

ARRAYLIST. Programmazione con Java ArrayList e Generics 2 08/06/2014. Daniela Micucci daniela.micucci@unimib.it Programmazione con Java ArrayList e Generics Daniela Micucci daniela.micucci@unimib.it ARRAYLIST Programmazione con Java ArrayList e Generics 2 1 La classe ArrayList Fa parte delle librerie standard di

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Livelli di astrazione

Livelli di astrazione Realizzare Classi Astrazione Perdita di dettaglio Utile nella descrizione, progettazione, implementazione e utilizzo di sistemi complessi Dettagli trascurabili vengono incapsulati in sottosistemi più semplici

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Programmazione AA 2012 2013

Programmazione AA 2012 2013 Programmazione ad Oggetti AA 2012 2013 Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di progetto Docente: Prof. Alessandro Roncato Contenuti

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

TUTORIAL. CREAZIONE DI TRIGGER IN ORACLE LITE 8i MEDIANTE CLASSI JAVA

TUTORIAL. CREAZIONE DI TRIGGER IN ORACLE LITE 8i MEDIANTE CLASSI JAVA TUTORIAL CREAZIONE DI TRIGGER IN ORACLE LITE 8i MEDIANTE CLASSI JAVA Michele de Nittis Generalità... 2 Modello di Caricamento e Pubblicazione... 3 Modello Per Allegato (Attachment)... 9 Esempio di creazione

Dettagli

Java. Programmazione orientata agli oggetti

Java. Programmazione orientata agli oggetti Java Programmazione orientata agli oggetti Nella programmazione orientata agli oggetti (OOP), un applicazione consiste di una collezione di oggetti interagenti, ognuno dei quali comprende una struttura

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale didattico,

Dettagli

Cenni ad Assembly Intel

Cenni ad Assembly Intel Cenni ad Assembly Intel Luca Abeni April 17, 2015 Architerrura Intel Utilizzata sulla maggior parte dei laptop, desktop e server moderni Lunga storia Dagli anni 70 (Intel 8080-8 bit!)......fino ad oggi

Dettagli

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */ Prototipi di funzione Il prototipo di una funzione costituisce una dichiarazione della funzione, e come tale fornisce al compilatore le informazioni necessarie a gestire la funzione stessa. Nella definizione

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

DATI IDENTIFICATIVI DEL PROGETTO

DATI IDENTIFICATIVI DEL PROGETTO DATI IDENTIFICATIVI DEL PROGETTO N. VERSIONE 1.0 ITEM Integrazione con Java DATA DI USCITA PREVISTA DESCRIZIONE Creazione di DLL per integrazioni con Java Pag. 1 di 9 Descrizione dei requisiti Sezione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

IL LINGUAGGIO JAVA: CARATTERISTICHE

IL LINGUAGGIO JAVA: CARATTERISTICHE CHE COS È JAVA È un linguaggio (e relativo ambiente di programmazione) definito dalla Sun Microsystems per permettere lo sviluppo di applicazioni sicure, performanti e robuste su piattaforme multiple,

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Assembler Intel 80x86: Struttura di un programma e Direttive

Assembler Intel 80x86: Struttura di un programma e Direttive Assembler Intel 80x86: Struttura di un programma e Direttive Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin 1 Istruzioni e direttive Formato generale dei comandi: [nome] codice operazione

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 20 Ottobre 2014

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 20 Ottobre 2014 Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli 20 Ottobre 2014 1 Tipi non Predefiniti Abbiamo visto: Tipi elementari (int, float, char,...) Tipi composti (arrays e tipi non predefiniti) C++ permette

Dettagli

Lezione 16: L architettura LC-3

Lezione 16: L architettura LC-3 Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II PROF. G. BONGIOVANNI 0) INTRODUZIONE AL LINGUAGGIO JAVA PER PROGRAMMATORI C++...2 0.1) Caratteristiche principali... 2 0.1.1)

Dettagli

UNIVERSITÀ DEGLI STUDI DI PISA

UNIVERSITÀ DEGLI STUDI DI PISA UNIVERSITÀ DEGLI STUDI DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA UN ANALISI DEI CONTROLLI DI TIPO NELLA JAVA VIRTUAL MACHINE Candidato: Valerio Fina Relatori:

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Utilizzo e scrittura di classi

Utilizzo e scrittura di classi Utilizzo e scrittura di classi Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 14 novembre, 2001 Gino Perna Implementazione di classi in C++ UN ESEMPIO DI CLASSE: RISULTATI

Dettagli

L Assembler 80x86 Concetti Generali. M. Rebaudengo M. Sonza Reorda P. Bernardi

L Assembler 80x86 Concetti Generali. M. Rebaudengo M. Sonza Reorda P. Bernardi L Assembler 80x86 Concetti Generali M. Rebaudengo M. Sonza Reorda P. Bernardi Sommario Introduzione Pseudo-Istruzioni Operatori Modi di Indirizzamento Istruzioni Sommario Introduzione Pseudo-Istruzioni

Dettagli

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni

Dettagli

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java. Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

VARIABILI LOCALI E GLOBALI (ESTERNE)

VARIABILI LOCALI E GLOBALI (ESTERNE) VARIABILI LOCALI E GLOBALI (ESTERNE) Le variabili locali sono definite (ed il loro uso dichiarato) nella funzione (o nel blocco) che le usa; nascono quando la funzione entra in esecuzione e muoiono al

Dettagli

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

JavaScript. crash course. by Stefano Burigat

JavaScript. crash course. by Stefano Burigat JavaScript crash course by Stefano Burigat Introduzione ECMAScript (no DOM e BOM, no ) Sintassi simile a Java Variabili definite tramite var, loosely typed, operatore comma (,) per separare definizioni

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Informatica Medica C++ Informatica Medica I semestre Docenti: Fabio Solari e Manuela Chessa. Sviluppo di un applicazione eseguibile

Informatica Medica C++ Informatica Medica I semestre Docenti: Fabio Solari e Manuela Chessa. Sviluppo di un applicazione eseguibile Corso di Laurea in Ingegneria Biomedica Informatica Medica I semestre Docenti: Fabio Solari e Manuela Chessa Prof. Fabio Solari: fabio.solari@unige.it (010-3532059) Prof. Manuela Chessa: manuela.chessa@unige.it

Dettagli

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari Algoritmi e Strutture Dati Tipo di dato astratto e Strutture dati elementari 1 Argomenti della lezione Tipi di dato astratto Strutture dati elementari Liste o Implementazione di liste in Java Stack Code

Dettagli

Cinc. Linguaggio ed Implementazione. Claudia Strazzari. Fabio G. Strozzi. Matteo Benevelli. http://www.cs.unibo.it/ fstrozzi/cinc.

Cinc. Linguaggio ed Implementazione. Claudia Strazzari. Fabio G. Strozzi. Matteo Benevelli. http://www.cs.unibo.it/ fstrozzi/cinc. Cinc Linguaggio ed Implementazione Claudia Strazzari Fabio G. Strozzi Matteo Benevelli http://www.cs.unibo.it/ fstrozzi/cinc.html 1 Prefazione Cinc è un linguaggio di programmazione imperativo, fortemente

Dettagli

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori

Dettagli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

Dettagli

Tecniche di traduzione da C ad assembly 68000. Note generali

Tecniche di traduzione da C ad assembly 68000. Note generali Tecniche di traduzione da C ad assembly 68000 Note generali Schema di compilazione da C ad assembly 68K Ispirato a GCC Fa uso di: banco di registri classi d istruzioni modi d indirizzamento e organizzazione

Dettagli

Tecniche automatiche di offuscamento in java

Tecniche automatiche di offuscamento in java Tecniche automatiche di offuscamento in java Sommario Introduzione al problema Corso di sicurezza su reti Prof. Alfredo De Santis Anno accademico 2005-2006 A cura di: Boccardo Alberto 056/101841 Camodeca

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Java per programmatori C++

Java per programmatori C++ 1 of 10 Java per programmatori C++ autore: Matteo Lucarelli ultima versione su: matteolucarelli.net Architettura e concetti generali Cosa scaricare ed installare Tutti gli strumenti per la programmazione

Dettagli

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1 Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge

Dettagli

Corso di Sicurezza Informatica

Corso di Sicurezza Informatica Corso di Sicurezza Informatica Sicurezza del Software Ing. Giuseppe D Aquì Sicurezza nell informatica Un computer sicuro è un computer spento (Kevin Mitnick) Attacchi informatici Gli attacchi informatici,

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio

Dettagli

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 11 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Appunti di Informatica 1. Gianluca Rossi

Appunti di Informatica 1. Gianluca Rossi Appunti di Informatica 1 Gianluca Rossi Versione maggio 2011 Indice 1 Algoritmi, macchine e linguaggi di programmazione 3 1.1 La macchina di Von Neumann........................ 5 1.2 Dal linguaggio macchina

Dettagli

(1) - - (4) R4 = R7 * R7 (4) (2) (3) 5 - (4) rinviata perché in WAW con (3) 6 (3) e (4) ritirabili ma attendono il completamento di (2) (2) (3) (4)

(1) - - (4) R4 = R7 * R7 (4) (2) (3) 5 - (4) rinviata perché in WAW con (3) 6 (3) e (4) ritirabili ma attendono il completamento di (2) (2) (3) (4) Esercizio 1 (20%) Si assuma di avere una macchina con 10 registri ufficiali (da R0 a R9) e sufficienti registri segreti in grado di avviare 2 istruzioni per ciclo di clock. Tale macchina richiede 2 cicli

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Confronto tra i principali Linguaggi di Programmazione

Confronto tra i principali Linguaggi di Programmazione Confronto tra i principali Linguaggi di Programmazione per Sistemi Mobile Biagini Piero - 000657367 Tesina Programmazione di Sistemi Mobile Anno Accademico 2014-2015 Docente: Prof. Mirko Ravaioli Tutor:

Dettagli