0. Inleiding

Computerprogramma's bestaan uit machinetaal. Machinetaal is de taal die het computersysteem zelf 'begrijpt' en kan uitvoeren. Zoals een draaiorgel kartonnen boeken draait, zo voert een computer machinetaal uit.

Hieronder zie je een stukje assembler-programma:

MOV AH, 01
INT 21
SUB AL, 30
CMP AL, 09
JLE 010C
SUB AL, 07
INT 20

Deze regels zul je misschien niet onmiddellijk begrijpen. Het zijn zogenaamde machine-instructies. maar ze moeten nog wel in machinetaal worden omgezet. Machinetaal-programma's kun je maken met een programma, dat 'assembler' heet.

Machinetaal en assembler-taal worden 'lagere' programmeertalen genoemd omdat ze dicht bij de machine staan.

Het omzetten van 'hogere' programmeertalen (met namen als Pascal, Basic of C) in machinetaal is een stuk ingewikkelder. Deze hogere talen staan verder af van machinetaal. Programma's die geschreven zijn in dit soort hogere talen zien er 'menselijker' uit. Kijk maar eens naar het volgende fragment, waarin een prijs berekend wordt die lager is naarmate men grotere aantallen koopt:

if (aantal >= 100)
    prijsperstuk = 20;
else if (aantal >= 10)
    prijsperstuk = 30;
else
    prijsperstuk = 50; 

De betekenis is niet zo moeilijk te vatten: als je er 100 of meer koopt, betaal je 20. Wie geen 100 wil, maar er wel minstens 10 wil afnemen, betaalt 30 per stuk. Maar als je minder dan 10 exemplaren koopt, kost je dat 50 per stuk.)

Bij hogere talen is een ingewikkelder soort omzetting nodig dan bij een assembler. Ook hogere talen worden omgezet in machinetaal door een programma dat compiler heet. Zo'n compiler vertaalt de programmatekst (ook wel sourcecode genoemd) in een uitvoerbaar programma - dus in machinetaal. Bij DOS en Windows eindigt de naam van zulke uitvoerbare programma's meestal in .exe. Dat laatste stukje van een bestandsnaam (zoals .doc of .jpg) wordt extensie genoemd.

Het machinetaal-programma (de executable) is natuurlijk afhankelijk van het soort systeem waarop we het willen draaien: het bevat instructies voor één bepaalde processor en het roept één specifiek besturingssysteem aan.

Zulke programma's draaien slechts op één systeem; een programma dat probleemloos draait onder Windows is nutteloos onder andere systemen, zoals Unix of MacOS.

Het zou ook heel lastig zijn dit soort programma's te laten uitvoeren op het Internet. Het Internet wordt immers bezocht door allerlei computersystemen. Wie zo'n (conventioneel) programma op z'n homepage zou willen zetten, zou versies moeten neerzetten voor Linux, Windows en allerlei andere systemen.

Er is nog een tweede probleem: Internet-gebruikers kunnen niet riskeren onbekende programma's op hun systeem te laten uitvoeren. Een programma dat je via het Internet binnenhaalt, kan wel vrolijk de harde schijf beginnen te formatteren.

Voor beide problemen biedt Java de oplossing:

  • Java-programma's zijn platform-onafhankelijk - dat wil zeggen: ze kunnen draaien op diverse systemen, zolang er voor het betreffende systeem maar een Java Virtual Machine bestaat.
  • met Java kunnen speciale programmaatjes voor het Internet (zogenaamde applets) worden geschreven, die zo goed beveiligd zijn dat een Internet-gebruiker zich over deze programmaatjes geen zorgen hoeft te maken.
   

Hoe werkt Java?

Zoals je hierboven kunt lezen, moet bij veel programmeertalen de source-code (de programmatekst in Pascal, C++ of andere taal) eerst worden omgezet in machinetaal voor we er iets mee kunnen.

Ook een Java-programma moet eerst worden omgezet, maar niet naar machinetaal. Een Java-programma (dus de source-code, met de extensie .java) moet ook met een compiler worden vertaald. Een Java-compiler produceert echter geen machinetaal, maar zogenaamde byte-code (met de extensie .class).

Deze byte-code wordt "begrepen" door ieder systeem dat een Java Virtual Machine heeft.

De Java-compiler heet javac.exe en is onderdeel van de Java Development Kit.

Willen we de source-code Hello.java omzetten in de byte-code Hello.class, dan kan dat onder DOS met het volgende commando:

    javac Hello.java

De javac-compiler produceert het bestand Hello.class (de applet). Dit bestand kan niet rechtstreeks door het computersysteem worden uitgevoerd. Het kan alleen worden uitgevoerd door de Java Virtual Machine (JVM). Deze JVM is een softwarematige omgeving, die vergelijkbaar is met een interpreter, zoals we die kennen van sommige oudere dialecten van Basic.

Er zijn twee soorten Java-programma's, namelijk applications en applets.

   

1. applets

Applets zijn de programma's die we in deze cursus gaan bekijken. De meeste populaire Internet-browsers hebben programmatuur aan boord om applets uit te voeren . Als je browser geen Java aan boord heeft, is de JRE te downloaden bij Sun )de makers van Java. Een applet kan alleen worden uitgevoerd als hij wordt aangeroepen vanuit een html-bestand . Zo'n html-bestand kan er heel simpel uitzien, bij voorbeeld zo:

<applet code = Hello.class
width = 320 height = 240> 
    </applet>

Dit betekent dat de browser de applet Hello.class moet uitvoeren in een venster van 320 pixels breed en 240 pixels hoog.

Wil je met een eenvoudige versie van Java beginnen, dan kun je de hier een Java Development Kit (JDK) downloaden. Deze ontwikkelomgeving bevat onder andere het programma appletviewer.exe. Hiermee kan men (via een html-bestand) een applet laten uitvoeren, dus zo:

        appletviewer Hello.html

2. applications

Een application wordt ook als source-code met de extensie

.java

aangemaakt en wordt ook met javac.exe naar byte-code gecompileerd.

Een application is echter niet bedoeld voor het Internet, maar is (het woord zegt het eigenlijk al) vergelijkbaar met elk willekeurig ander soort programma. Dus tekstverwerkers, spreadsheets, Internet browsers, spelletjes en vrijwel elk ander soort programma is te maken als Java-application. 

Het belangrijke verschil met de 'normale' programma's is echter dat de Java application (net zoals een applet) geen machinetaal-bestand is, maar bestaat uit byte-code, die wordt uitgevoerd door de Java Virtual Machine.

Java-applications zijn te verkiezen boven conventionele programma's in situaties waarin verschillende systemen hetzelfde programma moeten draaien.

In deze cursus kijken we alleen naar applets. Met applications zullen we ons hier niet bezighouden.

Heb je nog geen editor?

Als je nog editor hebt, kun je kiezen voor NEWT. Dit is een klein programmaatje waarmee je bliksemsnel kunt editen en compileren. NEWT compileert en edit overigens niet zelf, maar produceert zogenaamde batchfiles, waarmee snel de editor compiler en appletviewer kunnen worden aangeroepen.

(c) 2003-2008, Thomas J.H.Luif