Neutralitatea arhitecturală
În mod ideal, un program sub forma de cod de octeți (bytecode) ar
trebui să poată fi executat pe orice tip de calculator, indiferent de arhitectura
acestuia, tipul procesorului, capacitatea de memorie etc, deci să fie independent
de platformă. În realitate, calculatorul trebuie să aibă o memorie
disponibilă suficient de mare pentru a conține cel puțin mașina virtuală
Java (JVM). Apare deci o contradicție: pentru a executa programe mari,
JVM trebuie să aiba o memorie mare, deci și calculatorul gazdă trebuie
să aibă o memorie mare. Pe de altă parte, pentru a putea executa programe
Java pe calculatoare de capacitate foarte mică (cum sunt cele încorporate
în diverse aparate electrocasnice, aparate de automatizare etc) este necesară
o JVM cu memorie mică. Un program destinat unui calculator mic poate fi
executat și pe unul cu memorie mare, dar nu și invers. Aceasta a condus
la necesitatea de a avea mai multe "medii de execuție Java", în funcție
de dimensiunile și destinația calculatorului pe care se instalează, iar
între caracteristicile programelor Java nu se mai mentioneaza "independența
de platformă" ci "neutralitatea față de arhitectură".
Neutralitatea față de arhitectură înseamnă, de fapt, că arhitectura
mașinii virtuale Java, care este ea însăși un calculator
abstract (organizarea memoriei, convențiile de reprezentare a datelor
în memorie, setul de instrucțiuni al procesorului etc) nu depinde de arhitectura
calculatorului pe care aceasta se instaleaza. Întrucat codul de octeți
obținut din compilarea programului Java nu se execută nemijlocit pe calculatorul
gazdă, ci pe mașina virtuală Java, el poate fi același pe orice calculator
pe care este instalata o astfel de mașină, deci este neutru față de arhitectura
calculatorului gazda.
Este însa necesar să precizăm că mașina virtuală Java însăși este un
produs software, care este instalat și funcționează direct pe calculatorul
gazdă, deci respectă convențiile arhitecturale ale acestuia. În consecință,
pe fiecare tip de calculator trebuie instalată o mașină virtuală Java corespunzătoare.
Se poate, deci, vorbi de neutralitatea față de arhitectura a programelor
Java, dar nu și a mașinii virtuale Java.
© Copyright 2000
- Severin BUMBARU, Universitatea "Dunărea de Jos" din Galați