• Non ci sono risultati.

La verifica del bytecode viene inoltre complicata dalla presenza delle subroutines

N/A
N/A
Protected

Academic year: 2021

Condividi "La verifica del bytecode viene inoltre complicata dalla presenza delle subroutines"

Copied!
2
0
0

Testo completo

(1)

Introduzione

Java è stato utilizzato nei sistemi embedded come risposta al bisogno di un linguaggio di programmazione indipendente dalla piattaforma.

I sorgenti di Java (.java) vengono compilati in file binari (.class), chiamati file class, che contengono istruzioni codificate in un formato binario indipendente, il bytecode.

Il bytecode viene interpretato dalla Java Virtual Machine (JVM) che garantisce l’indipendenza del codice dalla particolare piattaforma hardware/software. La JVM rappresenta l’elemento centrale della tecnologia Java perché rende il bytecode portabile e perché consente di controllare la correttezza e la sicurezza del codice prima della reale esecuzione.

Le Java Cards sono sistemi embedded con un numero limitato di risorse su cui gira una versione “ridotta” della JVM, è quindi facile intuire che realizzare una verifica

“standard” on-card non sia una cosa fattibile con la tecnologia corrente, dato che il processo di verifica richiede un numero di risorse proporzionali alla complessità del metodo da verificare. Quindi, data l’impossibilità di una implementazione on-card, la verifica del bytecode viene effettuata off-card durante il processo di trasformazione delle applets in file CAP (Converted Applet).

La verifica del bytecode viene inoltre complicata dalla presenza delle subroutines.

Una subroutine è una parte di codice condiviso e rappresenta la traduzione dei blocchi finally di Java; attraverso l’uso di due istruzioni particolari, jsr (jump to subroutine) e ret (return from subroutine), il codice della subroutine diventa

“condivisibile” perché la chiamata a quel codice è parametrizzata.

In questo lavoro sono state affrontate le problematiche relative alle subroutines ed è stato implementato in Java un componente in grado di compiere una verifica delle subroutine ottimizzando la quantità di memoria richiesta durante la verifica.

(2)

INTRODUZIONE

La verifica si basa sul “concetto dell’ipd” , ovvero sul partizionamento in blocchi del bytecode e sulla dinamicità delle strutture dati.

La tesi è così strutturata:

• capitolo 1: analisi delle caratteristiche della piattaforma Java;

• capitolo 2: le Java Cards: ambiente operativo, problematiche relative alla realizzazione di un verificatore on-card e soluzioni proposte in letteratura;

• capitolo 3: analisi dell’algoritmo di verifica basato sull’ipd, caratteristiche del verificatore ipd e del BCEL;

• capitolo 4: analisi delle subroutinse e delle problematiche ad esse associate, descrizione delle regole e della soluzione adottata in questo lavoro;

• capitolo 5: implementazione di un verificatore che compie una verifica polivariante delle subroutines;

• capitolo 6: risultati ottenuti;

• capitolo 7: conclusioni e sviluppi futuri;

• appendice: descrizione formale delle regole del verificatore ipd;

• bibliografia.

viii

Riferimenti

Documenti correlati

Deduci quale segno assumono nei valori indicati a fianco e verifica sostituendo i valori nei trinomi.. LA RISOLUZIONE DELLE DISEQUAZIONI DI SECONDO

6 of the Law provided the modes of acquisition of citizenship for children whose one parent is a citizen of Macedonia and the other one of another Yugoslav republic: in this case

While we are sympathetic to the nonideal perspec- tive adopted by Feeney and colleagues ( 2018 ) and agree that it is important to address the distributive justice concerns

7-28, 9: «E che non si tratti più soltanto , per lo meno per la maggior parte degli scritti che ci sono conservati, degli occhi spirituali dei fideles, preoccupati di cogliere

Ha poi ricordato le problematiche affrontate: “dello sfruttamento del lavoro, della disoccupazione, del degrado ambientale, della disgregazione familiare, ecc.; in una parola

Pertanto, per la verifica di accuratezza della vettorializzazione della CTR5, il criterio di scelta del campione di territorio viene riformulato come segue: “viene selezionato,

Nel dettaglio, si sono individuate tre macrofasi principali (a loro volta articolate in sotto-fasi per un totale di otto) che garantiscono la continuità

Scomponi ed indica il valore di ogni cifra,