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