Java är ett programmeringsspråk. Java är en virtuell maskin. Java är bytekod. Java är flyttbart. Java är Internet.
Man blir lätt förvirrad av Java innan man lyckats reda ut begreppen. Java står nämligen för mer än en sak - kaffe oräknat.
Java är dels ett programmeringsspråk, dels en virtuell dator som ofta kallas JVM - Java Virtual Machine. Båda delarna har utvecklats av Sun Microsystems.
Programmeringsspråket Java är objektorienterat och påminner om C++. Men det är lättare att koda och riskfriare att använda jämfört med C++.
Syntaxen är förenklad och pekarna, som ligger bakom så många kraschande program i C++, saknas exempelvis helt. Användaren behöver inte heller bekymra sig om minneshanteringen, man slipper exempelvis reservera och släppa minne.
Java är ett generellt språk och kan alltså användas för i princip alla typer av tillämpningar. Den största styrkan ligger i att program skrivna i Java kan flyttas mellan olika processorer - de är helt plattformsoberoende.
Språket är därför väl lämpat för distribuerad databehandling. En del av programmet kan exempelvis exekveras i en avlägsen server, medan resten kanske laddas hem via Internet för att exekveras lokalt i den egna klienten.
Mellanformat kan flyttasJavakod kompileras inte direkt till maskinkod på vanligt manér, i så fall skulle den ju inte vara flyttbar. Istället kompileras den till bytekod, ett maskinoberoende mellanformat som kan exekveras på valfri processor. Och det är här den virtuella Javamaskinen kommer in i bilden.
Detta påfund är en mjukvarubaserad datorarkitektur som emulerar en Javaprocessor.
Den viktigaste delen är en så kallad Javatolk som översätter bytekoden till mikroinstruktioner som är specifika för den aktuella målprocessorn. Detta sker i realtid under körningen. Dessutom innehåller "mjukdatorn" även exempelvis automatisk skräpsamling - för att samla ihop minne som inte längre används - och funktioner för felsökning.
Haken med att tolka kod under körningen är den klena prestan-dan - programexekveringen slöas ner rejält. Ett Javaprogram är oftast mellan 10 och 20 gånger långsammare jämfört med ett program i C++ som kompileras direkt till maskinkod.
Det är visserligen snabbare än många andra interpreterande språk, men för beräkningstunga tillämpningar blir det ändå ohållbart.
Så gott som alla virtuella Javamaskiner innehåller därför så kallade Just-In- Time-kompilatorer - eller JIT-kompilatorer - som med hjälp av kvalificerade gissningar kompilerar valda delar av bytekoden till maskinkod strax innan de behövs. Hastigheten ökar då i bästa fall med en faktor tio.
Ett färskare angreppssätt är så kallade flash-kompilatorer, som i princip kompilerar hela bytekoden till maskinkod. Javatolken är då helt överflödig. Prestandan förbättras upp till 20 gånger jämfört med en tolkande virtuell maskin.
Javakisel på vägDet allra snabbaste alternativet vore naturligtvis en processor som exekverar Javas bytekod direkt. Då slipper man ju såväl Javatolk som specialkompilatorer. Och just en sådan skapelse, Picojava, har Sun Microsystems knåpat ihop.
Och visst exekverar nykomlingen Javakod mycket snabbt, upp till 20 gånger snabbare jämfört med en virtuell Javamaskin med JIT-kompilator.
Men att exekvera Javakod är också det enda den kan. Picojava och liknande kretsar lär därför främst finna sin plats i dedicerade Javasystem, gärna för Internet- eller Intranettillämpningar. Många Javakretsar kan även få rollen som hjälpprocessor eller kanske som inbyggd kärna i en asic.
Suns Picojava väntas nå marknaden första kvartalet 1997. Två efterföljare, Microjava och Ultrajava, skall släppas längre fram. Microjava, bygger på lillebror Picodito, men har fått extra funktioner för exempelvis kommunikation samt in- och utmatning. Kretsen är tänkt för telekom- och industritilllämpningar plus konsumentprodukter.
Kronan på verket blir Ultrajava, en vassare variant som bland annat skall klara multimediatillämpningar. Den väntas finnas tillgänglig först 1999.
Nya produkterMen Sun har ju inte monopol på Javakretsar, liknande produkter av andra fabrikat är också på väg ut på marknaden. Tyska Temic lanserade exempelvis hösten 1996 en version av sin Sparcletprocessor med Javafunktioner. Kretsen, som döpts till TSC711, exekverar exempelvis Javabytekod. Temic vill gärna se nykomlingen ta plats i framtida digital-TV-mottagare och nätverksdatorer. Därmed verkar Sun ha fått en direkt konkurrent i den marknadsnischen.
SGS-Thomson är en annan kiselleverantör med Javaplaner. Företaget lär utveckla en Javaorienterad acceleratorkrets.
Även Patriot Scientifics mikroprocessor PSC1000 påminner om en Javamaskin, och kommer kanske kunna exekvera bytekod på ett effektivt sätt.
Charlotta von Schultz