![]() |
Pràctica 1: Presentació del llenguatge ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Què és Java? | ||
|
![]() |
||
James Gosling, l'enginyer creador del nucli de Java
|
||
Sun va crear un equip d'enginyers al voltant de James Gosling, que estava treballant en la creació d'un llenguatge alternatiu a C++ . Es va optar dirigir-lo a objectes i fer-lo multitasca, seguint el model del C++ i, per a fer-lo portable entre dispositius van fer, per primer cop, un llenguatge alhora interpretat i compil·lat. Desgraciadament per a Sun Microsystems, l'electrònica no va evolucionar exactament en la direcció que havien previst i tot l'esforç de creació de Java va quedar força compromés, just quan acabava de dissenyar-se. Afortunadament, a mitjans dels anys noranta, va trobar una escletxa en el mercat amb la programació de la web del costat del client; els famosos applets o miniaplicacions, que només precisen per ser executats que el navegador tingui incorporada la màquina virtual de Java. A partir d'aquí, Java ha anat guanyant terreny poc a poc fins a esdevenir, a hores d'ara, el llenguatge més polivalent del mercat i el més utilitzat en entorns empresarials. Per a gairebé qualsevol necessitat de programació Java té una API (Application Programming Interface); per a les principals arquitectures d'ordinadors, Java té una màquina virtual disponible. El lema de Java és write once, run anywhere. Si escrius
un programa en Java podrà córrer en practicament qualsevol
tipus d'ordinador. |
||
Com funciona Java? | ||
Una de les claus de l'èxit de Java són les seves capacitats multiplataforma, que expliquen la peculiar arquitectura del llenguatge Java no funciona com la major part de llenguatges de programació compilats, on el compilador passa el codi font al llenguatge màquina concret del processador i l'enllaçador construeix els fitxers executables. Java és compilat i interpretat simultàniament. Vegem-ho: El procés comença com a qualsevol llenguatge: començarem
per escriure els fitxers font (que han de tenir l'extensió .java
) amb el codi que volem. A continuació, compilarem aquests fitxers
i obtindrem els fitxers compilats amb l'extensió .class
, els quals ja poden ser distribuïts. No hi ha, doncs, enllaçat
(linkage). |
||
|
||
Ara bé, aquests fitxers *.class , resultat de la compilació , no són pas codi màquina ni res que pugui ser entès per cap sistema operatiu, sinó que contenen bytecodes : una mena de codi de baix nivell que serà interpretat per la Màquina Virtual de Java, una màquina abstracta (que només és programari); aquesta haurà de ser instal·lada a la màquina "real" en la qual es vulgui executar l'aplicació continguda als fitxers *.class |
||
![]() |
||
Això fa que el codi de bytecodes que distribuïm
sigui independent del maquinari i del sistema operatiu de la màquina
en la qual calgui executar-lo. Evidentment, qui executa el codi (la Màquina
Virtual de Java), sí que ho és de dependent . |
||
![]() |
||
|
||
![]() |
||
Així doncs, resumint, amb Java compil·lem de codi font a bytecodes, un llenguatge que entenen totes les màquines virtuals de Java. Quan executem un programa, la màquina virtual específica de cada sistema operatiu passa els bytecodes al llenguatge màquina del sistema corresponent. Aquesta és la idea fonamental que permet dir que Java és un llenguatge multiplataforma. |
|
![]() |