SCHEME + JAVA = JSCHEME
LANGAGE DE PROGRAMMATION :
--> LISIBLE PAR UN ÊTRE HUMAIN
"LANGAGE MACHINE" :
-->
(+ A 2)POUR CALCULER CETTE EXPRESSION, LA MACHINE SE SERT :
ASSEMBLEUR :
MOV A, R1 ADD #2, R1 MOV R1, VAL 0001 01 00 00000000 0011 01 10 00000010 0010 01 00 00000100OPÉRATIONS:
0001 = LOAD
0011 = ADD
0010 = STORE
01 = REGISTRE DE CALCUL : R1
00 = ADRESSE, 10 = LITTÉRAL
INTERPRÈTE :
COMPILATEUR :
--> SAUVE LES INSTRUCTIONS MACHINE
DANS UN FICHIER "EXÉCUTABLE"
GAIN D'EFFICACITÉ COMPILATEUR / INTERPRÈTE :
COMPILATION PROGRAMME JAVA :
--> FICHIER NON EXÉCUTABLE (.CLASS)
= LANGAGE DE "MACHINE VIRTUELLE"
EXÉCUTION ???
--> IL FAUT INTERPRÉTER LE FICHIER .CLASS
. . . AVEC UN NAVIGATEUR !!!
FICHIER .CLASS :
UN NAVIGATEUR (NETSCAPE, EXPLORER)
EUH. . . NON, IL INTERPRÈTE DES PROGRAMMES JAVA
MAIS SI !
JSCHEME : INTERPRÈTE SCHEME ÉCRIT EN JAVA
--> ARCHIVE JSCHEME.ZIP = 65 Ko
FICHIER PRINCIPAL : JSCHEME.POPUPEVAL.CLASS
==> IL PEUT ÊTRE CHARGÉ COMME APPLET DANS UNE PAGE WEB
<APPLET CODE = "jscheme.PopupEval.class" ARCHIVE = "jscheme.zip" HEIGHT = 300 WIDTH = 300> <PARAM NAME="prog" VALUE="spiro.s"> Navigateur non compatible Java... </APPLET>--> DANS LA PAGE WEB :
DANS JSCHEME, ON A :
VARIABLE "APPLETWIN"
(DEFINE B (BUTTON "Vas-y!")) (ADD B APPLETWIN)
(DEFINE SAM (TURTLE 100 100 APPLETWIN)) (GOTO X Y SAM) (TURN D SAM) (GOTO X SAM) (PENUP SAM) (PENDOWN SAM)
(DEFINE (DRAW-SPIROGRAPH N ANGLE X TORTUE)
(SLEEP 100) (GO X TORTUE)
(TURN ANGLE TORTUE)
(IF (<= N 0) 'FIN
(DRAW-SPIROGRAPH (- N 1) ANGLE X TORTUE)))
(DEFINE (BACTION)
(PENUP SAM)
(GOTO (+ 100 (* (RANDOM) 150))
(+ 100 (* (RANDOM) 150)) SAM)
(PENDOWN SAM)
(DRAW-SPIROGRAPH 30 (+ 50 (* (RANDOM) 130))
100 SAM))
(REFRESH APPLETWIN)
(ADDCALLBACK B BACTION APPLETWIN)