System do manipulacji bajtkodem języka Java

W celu zapewnienia przenośności programów napisanych w języku Java, firma Sun postanowiła, że język ten nie będzie kompilowany do języka maszynowego, tylko do języka pośredniego zwanego bajtkodem, wykonywanym przez maszynę wirtualną.

Projekt niniejszy ma na celu stworzenie narzędzia do analizowania bajtkodu wygenerowanego przez kompilator Javy.  Narzędzie to ma służyć nauce lepszego zrozumienia sposobu działania kompilatora Javy poprzez eksperymenty z różnym stylem programowania. Powinno także umożliwiać ręczną optymalizację małych fragmentów plików bajtkodu (np. najbardziej kluczowych z punktu widzenia efektywności). Narzędzie to będzie (znacznie) uproszczoną wersją środowiska Soot.

Narzędzie powinno być zrealizowane jako plugin platformy Eclipse.

Uzyskane doświadczenie:

Po przejściu przez ten projekt studenci, oprócz znajomości przebiegu wieloosobowego projektu informatycznego, powinni dysponować:

Wymagania funkcjonalne:

Wymagania techniczne:

Kod programu powinien być napisany w języku Java i anotowany częściową specyfikacją w języku JML, pozwalającą na poprawną weryfikację poprzez
narzędzie analizy statycznej ESC/Java2.

Źródła wiedzy:


Ostatnia modyfikacja: 14.09.2004