Manipolazione di Bytecode Java con la libreria ASM

Rasi, Stefano (2020) Manipolazione di Bytecode Java con la libreria ASM. [Laurea], Università di Bologna, Corso di Studio in Ingegneria e scienze informatiche [L-DM270] - Cesena, Documento full-text non disponibile
Il full-text non è disponibile per scelta dell'autore. (Contatta l'autore)

Abstract

La piattaforma Java è stata introdotta da Sun Microsystem nel 1995 con il motto "write once, run everywhere" (scrivi una volta, esegui ovunque). La macchina virtuale Java o Java Virtual Machine (JVM), insieme al linguaggio omonimo, ha permesso agli sviluppatori di scrivere programmi per dispositivi e sistemi operativi diversi senza dovere modificare il proprio codice, e compilando per tutti questi una sola volta. Questa tecnologia si è rivelata molto utile con la diffusione del web, permettendo l'esecuzione e la condivisione di programmi compilati tra diversi computer in un ottica cross-platform e con la sicurezza fornita da una macchina virtuale. La piattaforma Java permette tutto questo grazie al bytecode Java, un linguaggio intermedio simile al linguaggio macchina in cui vengono compilati i programmi Java, e che viene poi interpretato dalla macchina virtuale. La libreria ASM è un progetto open source del consorzio OW2--un organizzazione no-profit indipendente--che permette di decomporre, modificare e ricomporre bytecode Java. È una libreria orientata alla performance, pensata per essere veloce e compatta, ed usata in progetti come i compilatori dei linguaggi Groovy e Kotlin e il sistema di build Gradle, diventando di fatto lo standard per la modifica di bytecode. Lo scopo di questa libreria è l'analisi, la trasformazione e la generazione di classi Java compilate. Per fare questo fornisce due API, la core API event based. basata sugli eventi, e la tree API object based, basata sugli oggetti. La core API sfrutta il pattern Visitor, evitando di rappresentare tutta la classe come albero, permette di utilizzare molta meno memoria, ma il suo utilizzo può risultare più difficile dell'approccio ad oggetti della tree API.

Abstract
Tipologia del documento
Tesi di laurea (Laurea)
Autore della tesi
Rasi, Stefano
Relatore della tesi
Correlatore della tesi
Scuola
Corso di studio
Indirizzo
Curriculum ingegneria informatica
Ordinamento Cds
DM270
Parole chiave
Java,JVM,ASM,Bytecode,Instrumenting
Data di discussione della Tesi
19 Marzo 2020
URI

Altri metadati

Gestione del documento: Visualizza il documento

^