Philipp Winterberg
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. In diesem Werk berechtigt auch ohne besondere Kennzeichnung
nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichenund Markenschutz-Gesetzgebung als frei zu betrachten wren und daher
von jedermann benutzt werden drften.
Alle Rechte vorbehalten. Nachdruck, auch auszugsweise, verboten. Kein
Teil des Werkes darf ohne schriftliche Einwilligung des Autors in
irgendeiner Form, auer fr Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfltigt oder verbreitet werden.
Vorwort
zur 2. Auflage
Als ich vor rund 10 Jahren begeistert und aufgeregt mit dem Schreiben
meines ersten 99 Bottles of Beer-Beispielprogramms begann, ahnte ich
weder, dass daraus einmal ein Buch werden wrde, noch, dass dieses Buch
weit ber 100.000 Menschen erreichen wrde meinen herzlichen Dank an
alle abenteuerlustigen Leser!
Wie bei Reisefhrern blich, verliert auch dieses Buch mit den Jahren
immer mehr an Aktualitt: Programmiersprachen werden aktualisiert, verschoben oder gelscht und die Beispiele werden so pltzlich zu raren Fotos
aus einer lngst vergangenen Zeit Und nicht nur Programmiersprachen
verndern sich: Heute wrde man dieses Buch wahrscheinlich eher Die
99 Bottles of Beer-App nennen, denn heutzutage heissen Programme
nicht mehr einfach nur Programme, sondern Apps!
Bevor ich aber den Titel und ca. 99 Listings aktualisiere oder entferne,
belasse ich es lieber dabei, den geneigten Leser auf den rapide gestiegenen
Abenteuerfaktor des Buches hinzuweisen und empfehle, die Beispielprogramme wie exotische Schnappschsse in einem Reisefhrer zu genieen.
Philipp Winterberg
Vorwort
Ursprnglich war dieses Buch als Buch aus Papier fr 23,55 geplant. Jetzt
ist es ein Buch aus Bits und geschenkt. Warum? Weil das besser passt.
Warum? Weil man einen Reisefhrer aus Papier nur in der Welt mit Wetter
braucht. Ein digitaler Wegbegleiter, aus dem man Codefragmente und
Links herauskopieren kann, ist fr eine Reise durch die Welt der
Programmiersprachen weitaus praktischer
So sind denn auch die Anekdoten und Wegbeschreibungen im
vorliegenden Buch deutlich krzer gehalten als anfangs geplant. Der
Lesekomfort ist mithin abenteuerlich, aber echte Abenteurer wollen
schlielich nicht lesen sondern selbst erleben. Umwege und Anekdoten
ergeben sich da von ganz alleine
Warum gibt es dieses Buch berhaupt? Nun, eine der grten
Schwierigkeiten bei unbekannteren Programmiersprachen ist der Einstieg:
Wo finde ich einen Compiler/Interpreter? Wie installiere ich ihn? Wie
bekomme ich das erste Programm zum Laufen? Dieser Reisefhrer gibt
Ihnen in aller Krze genau diesen Einstieg in 99 Programmiersprachen,
bringt sie so ans Ziel, dass Sie auf sicherem Boden stehen, orientiert sind
und eigene Erkundungen mutig wagen knnen.
Sollten Sie noch nie programmiert haben, nehmen Sie sich bitte Google,
die Wikipedia und eine etwas grere Portion Zeit zur Hand, bevor Sie
aufbrechen.
Eine kurze Erluterung zur Frage, was es mit dem 99 Bottles of BeerProgramm auf sich hat, finden Sie hier:
http://www.drweb.de/programmierung/99bottles.shtml
Eine erlebnisreiche Weltreise wnscht:
Philipp Winterberg
10
Inhalt
Vorwort zur 2. Auflage ........................................................................................... 8
Vorwort .................................................................................................................... 10
Reiseziele .................................................................................................................. 14
01: 23 .................................................................................................................... 14
02: Alice Pascal................................................................................................... 15
03: ASHE ............................................................................................................ 16
04: ASIC .............................................................................................................. 18
05: BasicBasic ..................................................................................................... 19
06: BBC BASIC for Windows......................................................................... 21
07: Blaster Master Pascal .................................................................................. 22
08: bwBasic ......................................................................................................... 24
09: C-- .................................................................................................................. 25
10: Chipmunk Basic .......................................................................................... 26
11: COCOA........................................................................................................ 27
12: ComWic ........................................................................................................ 28
13: Curl ................................................................................................................ 29
14: D..................................................................................................................... 30
15: D++............................................................................................................... 31
16: DarkBasic...................................................................................................... 32
17: Delphi............................................................................................................ 33
18: Dialect ........................................................................................................... 34
19: DiNGS Game Basic ................................................................................... 35
20: DPas............................................................................................................... 36
21: EasyBatch ..................................................................................................... 37
22: eC ................................................................................................................... 38
23: elastiC ............................................................................................................ 39
24: Ethos Basic................................................................................................... 40
25: Euphoria ....................................................................................................... 41
26: FirstBasic/PowerBasic ............................................................................... 42
27: FranzBasic .................................................................................................... 43
28: Free Pascal.................................................................................................... 43
29: GABasic ........................................................................................................ 45
30: GBasic ........................................................................................................... 46
31: GFA Basic .................................................................................................... 46
11
12
13
Reiseziele
01: 23
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Die Weltreise beginnt mild: Keine Installation, keine wilden Packete. Wir
surfen mit einem Browser Ihrer Wahl zur Anreise-URL und sind bereits
am Ziel. Glckwunsch! Das war einfach.
Wir lschen den Inhalt der Textbox mit der Beschriftung Quelltext und
fgen dort folgende Zeilen ein:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
14
Dies ist nicht nur ein kleiner Ausflug, es ist eine Zeitreise ins Jahr 1985:
ALICE: The Personal Pascal System, frher kommerziell, jetzt kostenlos.
Ein echter Dinosaurier. Kein Support. Spannend. Nach dem Download
entpacken wir die ZIP-Datei und starten alice.exe (alternativ zur Standardversion gibt es auch noch eine in LARGE im Unterverzeichnis
/large, falls man Programme mit mehr als 128k ausfhren mchte).
Willkommen in der Vergangenheit! Textmodus mit 16 Farben, keine Mausuntersttzung. Dafr ein Men mit Schnellwahltasten: Wir drcken <A> fr
Edit a New Program. Alice hilft bei der Eingabe des folgenden Programms ein wenig, frbt den frischen Quellcode sinnvoll ein und ist auch
sonst sehr zuvorkommend...
15
Mit <F1> wird das Programm Bottles ausgefhrt. Erfolgreich? Glckwunsch. Ein erhebender Moment. <Space> bringt uns zurck in den farbenfrohen Editor.
Im Weiteren knnen Sie das Gelnde nach Lust und Laune erkunden. Experimentieren Sie, aber berfordern Sie die alte Dame nicht! Hilfe bringt
auf Wunsch <F9>.
03: ASHE
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Keine Panik. Da wir fr diese Reise keine 45 Tage bentigen, ist alles kostenlos. Sollten Sie ASHE darber hinaus benutzen, seien Sie fair und
kaufen Sie eine Lizenz. Und los: Die Installationsroutine ashesetup.exe
starten Sie per Doppelklick. Das Programm befindet sich anschlieend un-
16
> 0
b; " bottle(s) of beer on the wall,"
b; " bottle(s) of beer."
"Take one down, pass it around, "
b; "
Befehl fr Befehl arbeitet ASHE das Script ab, wenn Sie mehrmals auf den
Step-Button klicken. Mhsame Sache. Schneller geht es mit einem einzigen
Klick auf den Button mit dem roten Ausrufezeichen (Run Script): Im
Script Output Fenster erscheint der komplette Songtext, gefolgt von der
zufriedenen Meldung Script Terminated on line: 13 with no
errors. Super.
Nun ist es an Ihnen, den Inhalt des Output Fensters als Reiseandenken per
Klick auf den Print-Button zu drucken, die ASHE Syntaxfarben Ihrem persnlichen Geschmack anzupassen, oder in der Hilfe (Help | Contents)
die weiteren Mglichkeiten zu entdecken.
04: ASIC
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Auch wenn ASIC offensichtlich das B fehlt: Alles halb so wild. Der
Installer (install.exe) erfragt zwar einige Verzeichnisse, lsst einem die
Freiheit, zu whlen, ob man kleine Beispiele mitgeliefert bekommen mchte und kommt im schnsten blaugelb daher; davon abgesehen verhlt er
sich aber freundlich, friedlich und untersttzt mit sinnvollen Defaultwerten. ndert man diese nicht, findet sich im Verzeichnis c:\asic die Datei
asic.exe, die wir nun starten. Nebenbei: Die in der Dokumentation
geforderten 425k Available Memory haben wir. Garantiert.
ASICs Oberflche ist blau, gelb, grn, rot... Wir sind mitten im Regenbogen! Und erhhen dessen Gelbanteil mit folgenden Zeilen:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
17
18
Zur Sicherheit speichern wir jetzt das Ergebnis. Mit <F2>. Geben Sie als
Dateinamen Bottles ein und besttigen mit <Enter>. Die Endung
.ASI hngt ASIC umsichtig selbst an den Dateinamen.
Der Hhepunkt des Ausflugs naht: Mit <F10> starten wir den Compiler.
Der meldet sogleich: No Compiler Errors. Gut. So erwarteten wir
das. Im Verzeichnis c:\asic liegt die frisch erschaffene Datei Bottles
.com, die wir mit <F5> ausfhren. War da was? ASIC sagt: Program
Terminated Normally (0). Danke. Der PC ist wohl zu schnell. Um
etwas mehr von der Ausfhrung zu sehen, whlen wir File | Dos
shell und geben Bottles gefolgt von <Enter> ein. Viel besser.
Mit Exit <Enter> gelangen Sie sicher zurck in den Editor. Erkunden
Sie nun die Feinheiten, legen Sie z.B. fest, dass der Compiler eine .EXE
statt einer .COM Datei erzeugt.
In der Dokumentation (asic.doc) finden Sie ein Tutorial, dass Sie in die
Tiefen des Regenbogens entfhrt. Nicht vergessen: Am Ende steht meist
ein Topf voll Gold.
05: BasicBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
BasicBasic kommt, sobald alle Dateien entpackt sind, in zwei Geschmacksrichtungen: DOS (BBE.EXE) und Windows (WBBE.EXE). Wir whlen Windows. Das ist zwar eher Vanille als Schoko, hier aber verzeihlich, wenn Sie
spter noch mutig mit der DOS-Version experimentieren.
Der Editor ist robust, altmodisch, solide. Unsere Aufmerksamkeit fngt zunchst ein kleiner Star: Der fordernd blinkende Textcursor spielte grn
getnt in der Anfangsszene des Films Matrix mit. Respekt. In klobigen, bauchigen Buchstaben schreiben wir:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
19
20
Whlen Sie vorsichtig File | Save As, geben Sie Bottles ein und
klicken Sie auf den Button OK. ber Make | Run fhren Sie das
Programm aus eine ausfhrbare Version (Bottles.exe) wird vom
BasicBasic Compiler automatisch im Hintergrund erzeugt. 0 Warnings,
0 Errors. Sehr gut.
Probieren Sie jetzt kurz den integrierten Icon Editor aus oder machen Sie
ein Foto von sich und dem berhmten Textcursor. Das glaubt Ihnen ja
sonst spter niemand. ;-)
09: NEXT b
--------------------------- *schnapp* -----------------------------
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
21
22
Speichern Sie die Datei. Doppelklicken Sie im Explorer auf die Datei
BPC.EXE. Unser Programm wird nun in eine fr den Interpreter verstndliche Form gebracht und in der Datei BM.BPC im Blaster Master Pascal
Hauptverzeichnis abgelegt. Davon sehen Sie allenfalls ein kurzes Aufblitzen
einer DOS-Box, aber das ist in Ordnung. Richtig interessant wird es jetzt:
Wechseln Sie in das Hauptverzeichnis und starten Sie das Programm
EXEC.EXE per Doppelklick. In einem DOS-Fenster sehen Sie das Men
der Blaster Master Pascal Konsole. Geben Sie func_list <Enter>
ein, um eine Liste der verfgbaren Funktionen angezeigt zu bekommen.
Das Programm meldet: Available Functions: Bottles();.
Super! Mit dem Befehl exec bottles <Enter> fhren Sie die Funktion aus: [...] 0.000 bottle(s) of beer on the wall.
Schlieen Sie die Konsole mit dem Befehl quit <Enter> und atmen
Sie tief durch. In der Datei README.TXT finden Sie noch einige
Anmerkungen des Blaster Master Pascal Autors, die aber nicht abschlieend erhellend sind. Verweilen Sie daher nur experimentierend an
diesem Reiseziel, wenn Ihre Frustrationstoleranz bermig stark ausgeprgt ist. Und sagen Sie spter nicht, Sie seien nicht gewarnt worden!
23
08: bwBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
01:
02:
03:
04:
05:
06:
07:
08:
Unser Programm befindet sich jetzt im Speicher und ist bereit, augenblicklich ausgefhrt zu werden. Wir starten die Ausgabe des Songtextes mit dem
Befehl run <Enter>.
In der Datei BWBASIC.DOC erlutert der Autor von Bywater Basic einige
Besonderheiten, gibt Tipps und schildert die auergewhnliche Entstehungsgeschichte des Programms etwas ausfhrlicher. Spannend.
24
09: C-Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
C-- ist Greenware. Was ist Greenware? Der Autor fordert, dass Anwender
von C-- jeden Tag einen kleinen Beitrag zum Umweltschutz leisten: Papier
und Flaschen recyclen, Greenpeace untersttzen, ffentliche Verkehrsmittel benutzen etc. (siehe README.DOC). Machen wir. Gerne.
Entzippen Sie c--final.zip in ein Verzeichnis Ihrer Wahl. Starten Sie
hiernach WB.COM, die C-- Work Bench. Herrlich: Der Autor beweist ein
feineres Gefhl fr gelungene Farbkombinationen als z.B. die Schpfer
von BBC BASIC (siehe Reiseziel 06). Die Work Bench ist stimmigen grn
und gelbtnen gehalten. Hier fhlen wir uns wohl, ffnen mit <Shift>
<F3> eine neue Datei und geben unser Programm ein:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#
#
1
2
3
4
5
6
7
Schon fast am Ziel. Mit <Shift><F5> starten wir den Compiler, die sich
ffnende Dialogbox mit der Frage, ob wir die Datei speichern mchten,
Schon am Ziel? Aber sicher: Mit dem Befehl run <Enter> starten wir
die Ausfhrung unseres kleinen Programmes.
25
26
11: COCOA
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Es ist kein Download erforderlich. Prima. Reisen wir also mit Ihrem
Browser zur oben angegebenen COCOA-URL und folgen den im
COCOA-Quelltext-Kommentar enthaltenen Anweisungen:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
'
'
'
'
'
How to use:
1. Go to http://www.mcmanis.com/~cmcmanis/java
/javaworld/examples/BASIC.html
06: ' 2. Copy only the code line below
07: ' 3. Paste it into COCOA window
08: ' 4. Press enter and enjoy ;)
09:
10: for b=99 to 1 step -1:print b;" bottle(s) of beer on the
wall,":print b;" bottle(s) of beer.":print "Take one down,
pass it around,":print (b-1);" bottle(s) of beer
on the wall.":print " ":next b
--------------------------- *schnapp* -----------------------------
12: ComWic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Speichern Sie die Datei. Per Drag & Drop ziehen wir bottles.cwx nun
im Explorer ber die Datei COMWIC.EXE und lassen sie fallen. Der Interpreter fhrt unser Programm sogleich aus. Da unser PC schnell ist, sehen
wir nicht viel davon, denn Windows schliet das Fenster nach der Ausfhrung sofort wieder. Macht aber nichts.
27
28
Sollten Sie sehr daran interessiert sein, die Ausgaben lnger zu betrachten,
knnen Sie eine DOS-Box ffnen und dort den Interpreter mit dem Aufruf
comwic bottles.cwx <Enter> starten. Aber dann sollten Sie sptestens abreisen. Der ComWic Interpreter ist instabil und buggy, die Dateien Kurs.txt und readme.txt sind voller Fehler. Dort beschriebene
Befehle funktionieren nicht so wie erklrt. Entsetzlich. Schnell weg! Was
ComWic bedeutet ist uns inzwischen auch vllig egal.
13: Curl
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Ein entspannter Spaziergang: Wir starten den Curl Installer Surge-3-01-English-Full-Installer-13.exe, sagen einige Male Ja und
Das Programm sichern wir in einer neuen Textdatei mit dem Namen
bottels.curl. Jetzt gengt ein Doppelklick auf diese Datei, um die Aus-
29
14: D
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir laden zunchst den D Compiler (dmd.zip), sowie den D Linker und
die Utilities (dmc.zip) herunter und entpacken beide Pakete in das gleiche
Verzeichnis. D ist nun bereit, eine Installation ist nicht erforderlich.
Unser Programm schreiben wir mit einem Texteditor in eine neue Datei
mit dem Namen bottles.d und speichern diese im bereits bestehenden
Unterverzeichnis dmd\bin.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
30
schweigt dann. Daran, dass eine neue Datei mit dem Namen bottles.exe im
Verzeichnis liegt, sehen wir, dass der Vorgang scheinbar trotz der kryptischen Meldung erfolgreich war. Wir berprfen dies, indem wir unser Programm mit dem Befehl bottles <Enter> starten. Prchtig!
Jetzt sind Sie an der Reihe: Lesen Sie die Dokumentation und zaubern Sie
ein wenig. Programmieren Sie z.B. eine Version von 99 Bottles of Beer,
bei der hexadezimal gezhlt wird. Kleiner Tipp zum Einstieg: Hexadezimal
ist 99 63. Und los!
11:
12:
b--;
screenput
screen;
13:
doevents;
14: loop
&
"
bottle(s)
of
beer
on
the
wall.";
screen;
15: D++
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
D++ luft ohne Installation. In weniger als zehn Sekunden sind wir am
Ziel: dpp41_binaries.zip entpacken und hiernach schnell D++ SDE
.exe starten... Herzlich willkommen in der D++ Simple Development
Enviroment.
In der ansprechend gestalteten Entwicklungsumgebung tippen wir die folgenden Zeilen:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
31
16: DarkBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
DarkBasic macht es uns fast zu leicht: Nach dem Download und Start von
dbdemo113.exe fhrt uns die Installroutine direkt bis zum Ziel Lauch
DarkBasic. Danke.
DarkBasic ist zur Spieleprogrammierung gedacht und dazu passend ist auch
das GUI: An der Seite rankt sich sinnlos aber hbsch ein Kabel um den
dreidimensionalen Scrollbalken. Man fhlt sich leicht an eine Raumschiffbrcke erinnert. Die DarkBasic Einleitung, die sogleich angezeigt wird, lesen wir vielleicht spter. Zunchst klicken wir oben links auf Edit und
geben unser Programm ein:
--------------------------- *schnipp* -----------------------------
do until b = 0;
screenput b & " bottle(s) of beer on the wall,"; screen;
screenput b & " bottle(s) of beer."; screen;
screenput "Take one down, pass it around,"; screen;
32
03:
04:
05:
06:
07:
08:
09:
Mit <F5> starten wir das Programm. Gemchlich baut sich der Songtext
Strophe fr Strophe auf. Das brechen wir mit <ESC> und <F12> ab, denn
wir haben noch etwas vor: Mit <F6> starten wir den Compiler, der eine
.EXE Datei erzeugt. Im sich ffnenden Dialog geben wir bottles als
Dateinamen ein und klicken auf Build. Die jetzt von DarkBasic generierte Datei ist monstrse 1.573.517 Bytes gro. Himmel! Das geht doch
auch mit 342 Bytes (siehe Reise 09)...
Lesen Sie nun die umfangreiche Hilfe, die Tutorials und versuchen Sie sich
ein wenig in 3D- und Spieleprogrammierung schlielich haben Sie noch
59 DarkBasic Programmstarts brig.
11:
12:
13:
14:
program Bottles;
uses windows, sysutils;
var b: integer;
begin
for b:= 99 downto 1 do
if MessageBox(0, Pchar(IntToStr(b) + ' bottle(s) of beer
on the wall, ' + #13#10 +
IntToStr(b) + ' bottle(s) of beer.'
+ #13#10#13#10 +
'Take one down, pass it around,'
+ #13#10 +
IntToStr(b-1) + ' bottle(s) of beer
on the wall.' + #13#10),
PChar('99 Bottles of Beer'), 65) = 2
then exit
end.
18: Dialect
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
17: Delphi
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
33
Dialect
DOS
Gratis; Freeware
Verschollen
-
Dies ist ein ganz ganz ganz winziger Off-Mainstream-Fisch der Programmiersprachenwelt. Support, How-Tos, Foren, Tipps und Tricks-Listen
etc. finden Sie auf keiner einzigen Internetseite. Die Sprache scheint komplett verschollen. Eine echte Herausforderung. Deshalb: Ab hier forschen
Sie ganz allein!
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
34
11:
print (99-b), " bottle(s) of beer on the wall.", cr, cr
12: endfor
13: Output.EndDoc()
--------------------------- *schnapp* -----------------------------
20: DPas
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir entpacken die Datei dpas17.zip. Eine Installation ist nicht ntig. Im
Unterverzeichnis \BIN erstellen wir mit einem Texteditor eine Datei mit
unserem Quelltext und speichern sie unter dem Namen bottles.pas ab.
--------------------------- *schnipp* -----------------------------
Die langen Beschreibungen sind nicht ntig? Sie verstehen das alles auch
so? Nun denn: Wir knnen auch kurz: dings_e.exe Sagen Sie Ja zur
program group Start | Programme | DiNGS | Editor Demo
OK. <Strg><N> fr eine neue Datei. Unser Programm freut sich ber
dezentes Syntax Highlighting. <Strg><S> bottles.src, <F8> Create, <F5>
run. Owei, hngt das System? Warum kann man den Mauscursor nicht
mehr bewegen? Keine Panik. Mit jedem Mausklick unsererseits springt der
Songtext eine Strophe weiter. Mit <Esc> kann man das Programm beenden.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
35
36
21: EasyBatch
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir starten die Installation durch Ausfhren der Datei esb4sw.exe. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.). Achtung: die
Installationsroutine versucht, die Dokumentation und Beispiele aus dem
Internet herunterzuladen. Entscheiden Sie selbst, ob Ihnen das genehm ist.
Unter Start | Programme | EasyBatch XXL | EasyBatch XXL klicken wir
erst auf EasyBatch testen und dann im nchsten Dialog den Neu
Button. Ersetzen Sie das von EasyBatch gelieferte Programmgerst durch
unseren Code:
22: eC
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Sollten einige Zeilen rot gefrbt sein, bedeutet dies, das EasyBatch diese
Zeile nicht versteht. Vermutlich haben Sie sich vertippt. Men: Ausfhren
37
38
23: elastiC
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
99 to 1 step -1
b;" bottle(s) of beer on the wall,"
b;" bottle(s) of beer."
"Take one down, pass it around,"
b-1;" bottle(s) of beer on the wall." : output " "
Okay, zugegeben: An einigen Stellen ist der eingegebene Code auch rot,
wei, trkis oder hellgrn. macht aber nix. Mit <F10> starten wir unser
Programm: 0,000000 bottle(s) of beer on the wall. Da ist wirklich
gar kein Bier mehr.
local b = 99;
while (b > 0)
{
basic.print(b, " bottle(s) of beer on the wall,\n",
b, " bottle(s) of beer.\n");
b = b - 1;
basic.print("Take one down, pass it around,\n",
b, " bottle(s) of beer on the wall.\n\n");
}
39
40
25: Euphoria
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
26: FirstBasic/PowerBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir starten zunchst wie so oft die Installation durch Ausfhren der
Datei e24setup.exe und durchklicken den Euphoria-Installationsprozess
(Okay, Ja, Weiter, Danke, Fertig etc.). Sodann erzeugen wir mit einem Texteditor eine frische Datei, fllen sie mit unserem kleinen Quelltext und
speichern sie unter dem Namen bottles.ex im verzeichnis
C:\EUPHORIA\BIN jetzt nur noch diese Datei im Windows-Explorer galant
doppelklicken. Bravo.
01:
02:
03:
04:
05:
06:
07:
08:
09:
Euphoria ist schnell. Ob aber der euphorische Spruch, der oben bei den
Bemerkungen zitiert ist, tatschlich so zutrifft, bleibt fraglich.
Mit <F9> starten wir es. Fertig. Eine .EXE Datei erzeugen wir, indem wir
zunchst mit <Alt><C> das Compile Men ffnen und dann die
Destination von Memory auf EXE file umstellen. Nun den Compiler
mit <Alt><F9> starten. NONAME.EXE wurde generiert. Nicht der schnste
Name, den man sich als Datei wnschen wrde. Nennen Sie sie lieber
99Bottles.exe oder FirstBasicBottles.exe oder BeerSong.exe oder
41
42
27: FranzBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
43
Mit <F2> speichern wir das Programm, geben bottles als Dateinamen ein,
klicken den grnen Button OK und fhren es mit <Strg><F9> aus. Im
Hintergrund wurde bottles.exe erzeugt (53kb). Gut. Danke. Free Pascal
ist brigens beeindruckend verfgbar:
Free Pascal is currently available for the following platforms:
- DOS, via the DJ Delorie's GO32V2 Dos extenders
- Linux (i386 and m68k), ELF format
- OS/2 & DOS, via the EMX extender
- Win32 (Win32s, Win95/98/Me/XP/2000 and WinNT)
- Sun Solaris i386
- BeOS i386
- QNX i386
- FreeBSD i386
- NetBSD i386
- Commodore Amiga classic
More platforms will be supported in the future.
44
29: GABasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
30: GBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
gabasic.txt
vielleicht
45
46
32: GPLZ.easy
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
GPLZ.easy 1.4;
Windows; Python
Gratis; Freeware
http://p-nandq.com/humor/languages/gplz/gplz_easy.html
GPLZ steht fr The Great Python Language Zoo +++
Esoterische Programmiersprache
04:
05:
06:
07:
08:
09:
Kommandozeile: c:\python23\python
gplz.py bottles.easy
Fertig!
33: HotTEA
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
47
48
34: HQ9+
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
35: HTA
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen bottles.hta ab. Gestartet
wird die HTA-Version nun einfach per Doppelklick.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
36: HTBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
49
50
03:
04: OPENCONSOLE
05: FOR B = 99 TO 1 #-1
PRINT B, " bottle(s) of beer on the wall,"
06:
PRINT B, " bottle(s) of beer."
07:
PRINT "Take one down, pass it around,"
08:
PRINT B-1, " bottle(s) of beer on the wall." + chr$(13)
09:
+ chr$(10)
10: NEXT B
11: INPUT B
12: CLOSECONSOLE
--------------------------- *schnapp* -----------------------------
| Contents &
37: IBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
38: Impacto
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Mit leuchtenden Augen entpacken wir die frisch heruntergeladene ArchivDatei ibasic.zip und starten die Installation durch Ausfhren der Datei
SETUP.EXE. Jetzt durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.). Start
| Programme | IBasic | IBasic starten Beide Shareware-Reminder mit
OK wegklicken Code eingeben:
--------------------------- *schnipp* ----------------------------01: REM IBasic version of 99 Bottles of beer (Bottles.iba)
02: REM Philipp Winterberg, http://www.winterbergs.de
51
Immerhin erfahren wir auf der Website einige Details zur Sprache, so dass
unseren erfahrenen Hnden im Nu ein Meisterwerk entfliet:
52
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Meisterwerk und speichern sie unter dem Namen bottles.imp ab. Per Drag
& Drop schleudern wir bottles.imp auf IMPACTO.EXE. Meisterhaft!
Wir starten die Installation durch Ausfhren der Datei ipw-eval.exe. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.). Irie Pascal wird
automatisch gestartet. Super. Wir berschreiben die Hello World-Vorlage
mit unserem Programm, speichern mit <Strg><S> und fhren es aus mit
<Strg><F9>: 20 lines compiled in 0.015 seconds. Compilation speed
1333 lines/sec., 79980 lines/min. Wow!
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
53
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#111+#102+#32+#98+#101+#101+#114;
c:= #32+#111+#110+#32+#116+#104+#101+#32+#119+#97+#108+#108;
b:= 99;
repeat
writeln(b:2, a, c, #44, #13, #10, b:2, a, #46, #13, #10,
#84, #97, #107, #101, #32,
#111, #110, #101, #32, #100, #111, #119, #110,
#44, #32, #112, #97, #115,
#115, #32, #105, #116, #32, #97, #114, #111,
#117, #110, #100, #44);
dec(b);
writeln(b:2, a, c, #46, #13, #10);
until b = 0;
end.
40: ISETL
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
54
42: Kiev
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
41: JScript
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen Bottles.js ab. Per
Doppelklick kann die Datei nun mit dem Windows Script Host (WSH)
ausgefhrt werden.
--------------------------- *schnipp* ----------------------------// *short* JScript/WSH version of 99 Bottles of beer (Bottles.js)
// Philipp Winterberg, http://www.winterbergs.de
var beerShell = WScript.CreateObject("WScript.Shell");
for (b = 99 ; b > 0 ; b--) {
beerShell.Popup(b + " bottle(s) of beer on the wall, " + b
+ " bottle(s) of beer.", 2, "99 Bottles of Beer");
beerShell.Popup("Take one down, pass it around, " + (b
06:
- 1) + "bottle(s) of beer on the wall.", 2, "99 Bottles
of Beer");
07: }
01:
02:
03:
04:
05:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Schade. rgerlich. Zum Trost finden Sie im Anhang A den Songtext. Wie
gut, dass Sie das nicht alleine erleben. Also: Weiterreisen. Auf zu neuen
Horizonten!
55
56
43: KiXtart
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
29:
30:
31:
32:
33:
Drag & Drop von Bottles.kix auf KIX32.EXE. Es ffnet sich ein
Konsolenfenster, in dem der Songtext ausgegeben wird. Super.
Achtung: drcken Sie jetzt einfach nur eine beliebige Taste, das Programm
wird dann beendet. Wenn Sie auf den X-Schlieenbutton klicken, werden
Sie abgemeldet.
KIX2001.DOC enthlt alles Weitere: Installationshinweise, eine Kommandound Funktionsreferenz etc.
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26: color r+/n+
27: sleep 1
28:
57
Programme
Liberty
BASIC
v4.0
since
lb400win.exe.
Liberty
BASIC
Jetzt
v4.0
58
09: next b
--------------------------- *schnapp* -----------------------------
45: MacroX
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir starten die Installation durch Ausfhren der Datei macrox.exe. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.).
Start | Programme | MacroX | MacroX starten Willkommen-Dialog
wegklicken Unser Programm eingeben
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
und mit <F5> starten Wie von Geisterhand ffnet sich eine Instanz
des Notepads und der Songtext wird ausgegeben. Wow. Magic.
59
46: MoonRock
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Drag & Drop von bottles.moo auf MRC.EXE BOTTLES.ASM wird generiert
ASM.EXE starten (Doppelklick), als Input File geben wir BOTTLES.ASM
<Enter> ein; die nchsten drei Eingabemglichkeiten besttigen wir einfach
mit <Enter> BOTTLES.OBJ wird erzeugt Drag & Drop von
BOTTLES.OBJ auf MRLINK.COM Endlich! BOTTLES.COM (1.770 Bytes) wird
erzeugt BOTTLES.COM starten (Doppelklick) Und nicht vergessen:
Unbedingt BOTTLES.COM als kleines Andenken einpacken!
60
47: NeoBook
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
48: Numberix
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
01: 50009950010B57001150000A55000193000155800157002200000000000000
0000000000000000
02: 502300502300502300002300000000FF000000000000000000000000000000
0000000000000000
03: 00230050230059012F59003059092059096259096F59097459097459096C59
0965590928570013
04: 00230000230059097359092959092059096F59096659092059096259096559
0965590972570013
05: 00230000230059092059096F59096E59092059097459096859096559092059
0977590961570013
06: 00230000230059096C59096C59092C59090A59090D57001300000000000000
0000000000000000
07: 00230000230059012F59003059092059096259096F59097459097459096C59
0965590928570013
08: 00230000230059097359092959092059096F59096659092059096259096559
0965590972570013
09: 00230000230059092E59090A59090D57001300000000000000000000000000
0000000000000000
10: 00230000230059095459096159096B59096559092059096F59096E59096559
0920590964570013
11: 00230000230059096F59097759096E59092C59092059097059096159097359
0973590920570013
12: 00230000230059096959097459092059096159097259096F59097559096E59
096459092C570013
13: 00230000230059090A59090D57001300000000000000000000000000000000
0000000000000000
14: 00230000230059012F59002F59092059096259096F59097459097459096C59
0965590928570013
15: 00230000230059097359092959092059096F59096659092059096259096559
0965590972570013
16: 00230000230059092059096F59096E59092059097459096859096559092059
0977590961570013
17: 00230000230059096C59096C59092E59090A59090D59090A59090D57001300
0000000000000000
18: 00230000230093000157001200000000000000000000000000000000000000
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
.
.
.
.
.
.
.
61
<F9>
62
0000000000000000
19: 002300002300570001
20:
21: Numberix version of 99 Bottles of beer (Bottles.num)
22: Philipp Winterberg, http://www.winterbergs.de
07:
print
08:
print
print
09:
print
10:
11: endfor
<Enter>)
Form1.Show(fsModal@)
63
Wir starten die Installation durch Ausfhren der Datei ocaml-3.07pl2-winmsvc.exe. Durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.). Sehr gut.
Jetzt erzeugen wir mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen bottles.ml im verzeichnis
C:\Programme\Objective Caml\bin:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
lschen und
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
07:
08:
09:
10:
11:
bottle(s) of beer on
bottle(s) of beer.\n";
pass it around,\n";
bottle(s) of beer on
64
51: PascalX
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir fhren unser Programm daraufhin mit <F9> aus. Der Compiler meldet
frhlich: Tab: 6.48%[198,1] Cod: 1.82%[37]. 12 compiled lines in
0.03 second. Executed in 1.01 second.
Sehen Sie sich nun weiter um, Hilfe gibt es notfalls im Men unter
Documentation | PascalX.
Das ganze geht brigens auch auf portugisisch: PascalX [Portuguese]Version. Im Editor stellen Sie unter Options | Language die Keywords auf
Portuguese, dann geben Sie folgende Zeilen ein:
--------------------------- *schnipp* -----------------------------
(Bottles.pas) }
02: { Philipp Winterberg, http://www.winterbergs.de
}
03:
04: PROGRAMA Bottles;
05: VAR b: BIGINT; a, c: STRING[20];
06: INICIO
a:= ' bottle(s) of beer'; c:= ' on the wall';
07:
PARA b:=99 PARAMENOS 1 FACA
08:
GRAVELN(b, a, c, ', '+chr(13)+chr(10), b, a, '.'+
09:
chr(13)+chr(10)+'Take one down, pass it around,'+
10:
chr(13)+chr(10),(b-1),a,c,'.'+chr(13)+chr(10))
11:
12: FIM.
--------------------------- *schnapp* ----------------------------<F9>
bottles.pas
52: PasScript
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
65
66
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
WordApp:= CreateOleObject('Word.Application');
WordApp.Visible:= true;
WordApp.Documents.Add;
Range:= WordApp.Documents.Item(1).Range;
for b:=99 downto 1 do
begin
Strophe:= inttostr(b) + ' bottle(s) of beer on the
wall,' +#13#10+
inttostr(b) + ' bottle(s) of beer.' +#13#10+
'Take one down, pass it around,' +#13#10+
inttostr(b-1) + ' bottle(s) of beer on the
wall.' +#13#10;
Range.Text:= Range.Text + Strophe
end
finally
CoUninitialize
end
end.
03:
04: program Bottles(output); var b: integer; {$c+,t+}
05: begin
for b:= 99 downto 1 do
06:
writeln(b, ' bottle(s) of beer on the wall,', #13#10,
07:
b, ' bottle(s) of beer.', #13#10,
08:
'Take one down, pass it around,', #13#10,
09:
(b-1), ' bottle(s) of beer on the wall.', #13#10)
10:
11: end.
--------------------------- *schnapp* -----------------------------
Kommandozeile:
translat
bottles.pas
bottles.pcd
Kommandozeile: interpre bottles.pcd Fertig. READ.ME enthlt
weitere Infos.
--------------------------- *schnapp* ----------------------------File | Save bottles.pas<Enter> Mit <F9> das Programm starten Es
wird ein Word-Dokument geffnet und der Songtext darin ausgegeben.
67
54: ProvideX
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
0010
0020
0030
0040
0042
0050
0060
0070
0080
0090
0099
68
Mit list<Enter> kann man sich eine gefrbte Variante ausgeben lassen, mit
run<Enter> wird das Programm ausgefhrt. In den vielfach verschachtelten,
unbersichtlichen Mens herumzutauchen, ist waghalsiger, als sich bei
schlechter Sicht in einer Unterwassergrotte mit starker Strmung
aufzuhalten:
Mit <F5> starten wir das Programm. Es wird in einem sich neu ffnenden
Fenster ausgefhrt. Super. Die im Hintergrund erzeugte Datei heit
PureBasic7969953.exe o.. und ist ca. 25kb gro. Ein hbsches Andenken.
Lassen Sie sich nicht locken von grellbunten Fenstern und lustig antik
anmutenden Funktionen Sie werden sich sonst spter grimmig auf die
Lippe beien und wnschen, Sie htten gleich die einzig richtige
Entscheidung gefllt: Auf das rote Feld mit dem X klicken und abreisen.
Wir
starten
die
PureBasic_Demo.exe.
69
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
55: PureBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
56: Py
der
Datei
Danke, Fertig
01:
02:
03:
04:
05:
06:
07:
70
(b - 1), a, c)
08: end for
--------------------------- *schnapp* -----------------------------
57: Quikcode
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir fhren das Programm anschlieend aus per Drag & Drop von
bottles.q auf QUIKCODE.EXE. Weitere Informationen zu Quikcode enthlt
die Referenz in der Datei quikcode.txt.
58: R
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir starten die Installation durch Ausfhren der Datei rw1090.exe. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.).
Start | Programme | R | R 1.9.0 starten Im Fenster mit dem Titel R
Console folgende Zeilen eingeben:
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
In dem Moment, in dem wir die letzte geschweifte Klammer schlieen und
<Enter> drcken, wird unser Programm auch schon ausgefhrt. In Blau.
71
72
59: Rapid-Q
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Mit <F5> starten Ein Fenster blitzt auf, der Songtext flitzt vorbei. RapidQ erzeugt darber hinaus im Hintergrund die Datei $noname.exe mit einer
Gre von stolzen 307kb. Danke Rapid-Q.
60: RapidBATCH
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
RapidBatch 1.1;
DOS
Gratis; Freeware
http://www.rapidbatch.com
-
Wir starten die Installation durch Ausfhren der Datei SETUP.EXE, die wir
vorfinden, nachdem wir das Archiv rbatch.zip entpackten. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.).
73
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen bottles.rb im Verzeichnis
C:\jmksf\RBATCH.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
RBI.EXE
oder Kom-
61: RBASIC
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
74
06:
disp str$(b)+a$+c$+","+d$+str$(b)+a$+"."
07:
print "Take one down, pass it around, "
print str$(b-1)+a$+c$+"."+d$+d$
08:
09: next b
10: rpower=0:end
--------------------------- *schnapp* -----------------------------
Ein Lob den Entwicklern! Wre alles so einfach, bruchte die Welt ohne
Wetter keine Reisefhrer wie diesen
62: REBOL/Core
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
63: ScriptBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Gespannt entpacken wir die frisch heruntergeladene Archiv-Datei scribav1.0b29-bin.zip. Im Verzeichnis ScriptBasic\bin befindet sich der
Interpreter scriba.exe. Wir erzeugen mit einem Texteditor eine Datei,
fllen sie mit unserem Quelltext und speichern sie unter dem Namen
bottles.bas ab.
--------------------------- *schnipp* ----------------------------01: ' ScriptBasic version of 99 Bottles of beer (Bottles.bas)
02: ' Philipp Winterberg, http://www.winterbergs.de
03:
04: a$ = " \98\111\116\116\108\101\40\115\41\32\111\102\32\98\1
01\101\114"
05: c$ = " \111\110\32\116\104\101\32\119\97\108\108\99\32\32\8
\8\8\8\108"
06: for b = 99 to 1 step -1
07:
print "\13\10",b,a$,c$,"\44\n",b,a$,"\46\n\84\97\107\101\
32\111\110"
08:
print "\101\32\100\111\119\110", ",\32\112\97\115\115\32\
105\116\32"
09:
print "\97\114\111\117\110\100\44\13\10",(b-1),a$,c$,"\46
\32 \13\10"
10: next b
11: end
--------------------------- *schnapp* -----------------------------
Nun fhren wir unser Programm lssig per Drag & Drop von bottles.bas
auf den Interpreter scriba.exe oder per Kommandozeile scriba
bottles.bas aus. Sehr gut. Prchtig.
Drag & Drop der Datei bottles.r auf rebol031.exe Ein Fenster ffnet
sich, der Songtext wird ausgegeben, das Fenster schliet sich wieder.
Schn. Danke, REBOL/Core.
75
76
64: ScriptEase
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir starten die Installation durch Ausfhren der Datei seset32b.exe. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.) und beliebigen
Usernamen eingeben.
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen bottles.jsa im Verzeichnis
c:\SEdesk ab.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13: PauseForWin('');
14: Clib.exit(EXIT_SUCCESS);
--------------------------- *schnapp* -----------------------------
Drag & Drop von bottles.jsa auf SEwin32.exe. Schon fertig. Die Datei
sedesk.chm enthlt das umfangreiche Manual.
65: SheerPower
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
--------------------------- *schnapp* ----------------------------<Alt><R> und das Programm wird in einem neuen Fenster ausgefhrt. In
grn. Wie nett. Mchtig, auch.
77
78
Doppelklick. Die Datei SHOWTEXT.DOC enthlt das Manual. Mit dem Aufruf
von ALL2EXE.BAT kann man alle Beispiele in einem Rutsch kompilieren.
F0CE-2E43-7583-3130-3030-3030-3131-0003-873F-000A
non-commercial
non-commercial
67: SmallBasic
Reiseziel:
66: ShowText
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
2001;
0,5MB;
01:
02:
03:
04:
05:
06:
DONE *
79
80
68: SuperEASY
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
69: T
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Im Men whlen wir EASY | Make EXE File NONAME.EXE wird generiert.
Okay. Mit <F5> starten wir das Programm. Funktioniert. Herrlich. Inzwischen bringt <F1> auch jederzeit Hilfe. Beruhigend.
81
Diese Datei mit File | Save As speichern unter bottles.t. Nun erzeugen
wir noch eine weitere neue Datei (<Strg><N>) in die wir nur eine einzige
Zeile schreiben bottles.t. Diese Datei mit dem Menbefehl File |
Save As speichern unter bottles.prt (im Speichern-Dialog als Dateityp
Projekt Files (*.prt) whlen).
Jetzt im Men Project | Load Project whlen und bottles.prt als
Dateinamen eingeben. Danach ist es mglich, das Projekt mit <F9> zu
82
70: TMMLPTEALPAITAFNFAL
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
83
16:
17:
18: LINE 100:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40: LINE 200:
41:
42:
TO CELL 0
TO CELL 0
TO CELL 0
TO CELL 0
Stellen Sie das System-Datum Ihres PCs unbedingt vor dem Ausfhren des
Programms auf 2002-06-28, denn TMMLPTEALPAITAFNFAL ("The
Multi-Million Language Project To End All Language Projects And Isn't
That A Fine Name For A Language") is not a single language, it is
approximately 100.000.000.000.000. 000.000.000.000.000.000 languages
und deshalb gibt es jeden Tag unterschiedliche Befehle, Variablenrume
etc. Wow! An einem anderen Tag wrde das Programm also wahrscheinlich
gar nicht funktionieren.
Unbeirrter Drag & Drop von Bottles.TMMLPTEALPAITAFNFAL auf
TMMLPTEALPAITAFNFAL.exe oder Kommandozeile TMMLPTEALPAITAFNFAL
Bottles. TMMLPTEALPAITAFNFAL. Luft. Klasse.
84
Windows Hilfedatei
Pascal zu finden ist.
85
72: Tokiwa
Reiseziel:
Ausrstung:
Kosten:
Anreise:
TMTHELP.HLP,
Bemerkungen:
86
73: TRANSCRIPT
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
87
27: Dominik agrees, but Peter also wants to sing that line
and freaks out.
28:
29: >PETER, Shut up!
30: He calms down...
31:
32: >JULIET, +BEER bottle(s) of beer on the wall.
33: She looks so sweet. I think she likes you.
34:
35: >KISS JULIET
36: Now everything is ready for the beer song. Really everything?
37:
38: >LIFT BOTTLES
39: Good job.
40:
41: >ATTACH BOTTLES TO WALL
42: All bottels are save now.
43:
44: >EXAMINE JOE
45: Joe sings his part and takes a sip.
46:
47: >EXAMINE TILL
48: Till looks funny.
49:
50: >EXAMINE DOMINIK
51: Dominik is tall and soon to be drunk.
52:
53: >DROP BEER
54: First one done. Some more to come.
55:
56: >EXAMINE JULIET
57: She sings her line, walks over to you and kisses you.
58:
59: >DETACH BOTTLES FROM WALL
60: You empty the other 97 bottles in just about no time.
61: Now you might want to leave this place and find a party.
62:
63: >QUIT
64: You have left the building.
--------------------------- *schnapp* -----------------------------
88
75: TsrBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen bottles.tru ab. Die
Installation von True Basic starten wir durch Ausfhren der Datei
BrDemSetup.exe. Dann durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.).
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
FOR b = 99 TO 1 STEP -1
--------------------------- *schnipp* ----------------------------PRINT
PRINT
PRINT
PRINT
PRINT
NEXT b
END
89
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
10
20
30
40
42
50
60
70
80
90
99
90
76: Turbo C
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
main() {
for (b = 99; b > 0; b--)
printf("%d bottle(s) of beer on the wall,\n%d %s\n%s
\n%d %s", b, b,
"bottle(s) of beer.", "Take one down, pass
11:
12: it around,", (b-1),
"bottle(s) of beer on the wall.\n\n");
13: }
--------------------------- *schnapp* -----------------------------
Mit <Strg><F9> kompilieren und starten wir das Programm. 8.541 Bytes hat
die im Hintergrund generierte Datei NONAME.EXE. Wenn Sie sie mitnehmen
wollen, sollten Sie die Datei umbenennen. :-)
91
92
21:
22:
23:
24:
25:
79: Turbo PL
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
var b: byte;
--------------------------- *schnipp* ----------------------------function plural(anz_flaschen: byte): string;
begin
if anz_flaschen <> 1
then plural:= 's'
else plural:= ''
end; {plural}
begin
b:= 99;
repeat
writeln(b, ' bottle' + plural(b) + ' of beer on the
wall, ');
19:
writeln(b, ' bottle' + plural(b) + ' of beer.');
20:
writeln('Take one down, pass it around,');
93
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
94
81: unbabtized
15:
Pout "".
16: Endloop.
17: Sec '1'.
--------------------------- *schnapp* -----------------------------
Mit Datei | Speichern sichern wir die Datei, dann Datei | Beenden.
Zurck in der PE befehlen wir sogleich run <Enter> zum Starten des
Programms. Luft. Herrlich. Schnell noch eine .EXE-Datei erzeugen?
Geben Sie compile <Enter> ein. File was compiled sucessfully!
Super. BOTTLES.EXE (72kb) wurde generiert. Kostenlos. In der Datei
MANUAL.MAN im Unterverzeichnis MANUALS finden Sie eine ausfhrliche
deutsche Anleitung.
80: UBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
95
<Enter>.
Bemerkungen:
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Luft. Wie in
96
82: VBA/Access
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
83: VBScript
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
VBScript
Windows
Variabel; Software
http://www.microsoft.com
-
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen Bottles.vbs ab.
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22: Bottles_Exit:
23:
Exit Function
24:
25: Bottles_Err:
26:
MsgBox Error$
27:
Resume Bottles_Exit
28:
29: End Function
Wie das geht erkunden Sie ausnahmsweise wieder selbst. Das schaffen Sie.
Ich vertraue. Viel Erfolg.
97
Per Doppelklick kann die Datei nun mit dem Windows Script Host (WSH)
ausgefhrt werden. Dabei empfiehlt es sich, CScript.exe zum Ausfhren
zu benutzen, da WScript.exe die Echo-Standardausgabe in einer Dialogbox
macht, was etwas nerven kann...
Wir starten die Installation durch Ausfhren der Datei vds501en.exe. Jetzt
durchklicken (Okay, Ja, Weiter, Danke, Fertig etc. Visual DialogScript wird
von Installer gestartet. Danke.
Den Tipp des Tages klicken wir weg, legen eine neue Datei mit
<Strg><N> an und geben folgenden Source Code ein:
98
while b > 0 do
PrintLn(b, " bottle(s) of beer on the wall,\n",
b, " bottle(s) of beer.\n", "Take one down,
pass it around,\n",
(b - 1), " bottle(s) of beer on the wall.\n");
09:
b = b - 1
10:
11: end
Kommandozeile java
luft gar nicht...
Schade: WebL
Ausfhren knnen wir das Programm mit <F9>: ein Dialogfenster ffnet
sich, in dem das Lied Strophe fr Strophe ausgegeben wird. Wenn Sie aktiv
mitsingen mchten, passen Sie den Befehl wait 2 einfach Ihrer
persnlichen Singgeschwindigkeit an.
86: WIL
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
85: WebL
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
99
Entpacken Sie vorsichtig die Datei eb44i06c.zip und starten Sie behutsam
die Installationsroutine ber Setup.exe. Klicken Sie sich weise bis zum
Ende durch und geben Sie den Evaluationskey ein, den Sie per E-Mail
erhalten haben (siehe Bemerkungen). Unter Start | Programme | Webbatch
wartet das Abenteuer! Wo ist WIL versteckt? Wohin mit dem Programm?
Wo wird es gefhrlich? Fragen, auf die Sie ausnahmsweise keine Antwort
erhalten. Auer dieser: Alles ist da. Sogar noch mehr. Umwege erhhen die
Ortskenntnis. Sie schaffen das. Und los!
--------------------------- *schnipp* ----------------------------01: ; WIL version of 99 Bottles of beer (Bottles.wbt)
02: ; Philipp Winterberg, http://www.winterbergs.de
100
03:
04:
05:
06:
07:
08:
Geheimtipp: WIL ist auch in WinBatch versteckt. Sie knnen also auch mit
obigem Code die nchste Reise antreten. Zwar haben Sie dann keine
hbsche Eule im Fenster, aber angekommen ist angekommen:
87: WinBatch
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
101
102
88: wxBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Drag & Drop von bottles.wx auf wxbasic.exe Es ffnet sich ein
kleines Konsolenfenster (Titel: Console), in dem das Programm
ausgefhrt wird. Fertig.
Die ber 100seitige Dokumentation wxbasic.pdf, die auf der Website
erhltlich ist, sei wxBasic-Interessenten ans Herz gelegt.
89: XBasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
103
In XBasic whlen wir mit der Maus den Menbefehl file | load. Im
Dialog doppelklicken wir dann auf unsere Datei Bottles.x. Mit run |
start fhren wir unser Programm aus. Der Songtext wird im Fenster mit
dem Titel Console ausgegeben. XBasic meldet zufrieden: compiled 14
lines -> 1040 bytes. Zufrieden sind auch wir.
90: XLISP-PLUS
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
104
92: XPL0
91: XOTcl
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
XOTcl bentigt eine installierte Version von Tcl 8.4, also herunterladen
(http://www.activestate.com/Products/Download/Download.plex?id=Acti
veTcl) und die Installation durch Ausfhren der Datei ActiveTcl8.4.6.0win32-ix86-93230.exe starten. Jetzt durchklicken (Okay, Ja, Weiter, Danke,
Fertig etc.) und standardmig ins Verzeichnis c:\tcl installieren.
Gespannt entpacken wir anschlieend die ebenfalls frisch heruntergeladene
Archiv-Datei xotcl-1.2.0-win32-tcl8.4.5.zip und installieren XOTcl mit:
Kommandozeile: c:\tcl\bin\tclsh84 installwin.tcl c:/tcl <Enter>.
Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen c:\tcl\bottles.xotcl ab.
105
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Gespannt entpacken wir die frisch heruntergeladene Archiv-Datei XPL0245.ZIP und erzeugen mit einem Texteditor eine Datei, fllen sie mit
unserem Quelltext und speichern sie unter dem Namen bottles.xpl ab.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
106
11:
12:
13:
14:
94: xScript
93: XS
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
107
<for
c1 = "XS version of 99 Bottles of beer (Bottles.xs)"
c2 = "Philipp Winterberg, http://www.winterbergs.de"
var = "n" from = "99" to = "0" step = "-1">
<print>n, " bottle(s) of beer on the wall,\n", n,
" bottle(s) of beer.\nTake one down, and pass it
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
108
95: Yabasic
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Wir starten die Installation durch Ausfhren der Datei yabasic2.744.bin.exe. Jetzt durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.). Wir
erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem Quelltext
und speichern sie unter dem Namen Bottles.yab ab.
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
b = 99
while (b > 0)
print b, " bottle(s) of beer on the wall,"
print b, " bottle(s) of beer."
print "Take one down, pass it around,"
b = b - 1
print b, " bottle(s) of beer on the wall." + chr$(13)
+ chr$(10)
11: wend
96: Yacas
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Algebra
109
110
97: Yoix
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
98: Zeno
Ein Name wie ein Sterbe- oder Wrgegerusch aus einem Comic. Vielleicht
auch ein Laut der verblfften Ratlosigkeit? Entscheiden Sie. Da der YoixInterpreter in Java programmiert wurde, bentigen wir fr unsere
Unternehmung zunchst eine gewaltige und mchtige virtuelle Maschine,
eine Java Virtual Machine (http://www.java.com/de/download/manual.jsp
Download Installieren).
Kommandozeile: java Yoix1_1_0a im Verzeichnis, in das
Yoix1_1_0a.class heruntergeladen wurde Yoix Installer durchklicken.
Wir erzeugen nun mit einem Texteditor eine Datei, fllen sie mit unserem
Quelltext und speichern sie unter dem Namen bottles.yx im
unterverzeichnis \bin des Verzeichnisses, in das Yoix installiert wurde
Drag & Drop der Datei bottles.yx auf yoix.bat oder Kommandozeile
yoix bottles.yx Fertig!
--------------------------- *schnipp* ----------------------------01:
02:
03:
04:
05:
06:
07:
Die
Dokumentation gibt
es
als
Download
oder
online
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
Clear the output window fragt Zeno, Ja sagen wir. Der Songtext wird
korrekt ausgegeben, dann meldet Zeno militrisch --- All done! ---.
Okay! Danke! Wegtreten!
unter
http://www.research.att.com/sw/tools/yoix/doc/index.html
111
112
99: ZT
Reiseziel:
Ausrstung:
Kosten:
Anreise:
Bemerkungen:
und
wird
Hier schliet sich der Kreis: Die Weltreise endet wie sie begann
vergleichsweise mild: Keine Installation, keine wilden Packete. Wir surfen
mit
einem
Browser
Ihrer
Wahl
zur
Interpreter-URL
(http://www.78.de/software/ztint.php) und sind bereits am Ziel. ZT.
Glckwunsch! Das war einfach.
Wir lschen den Inhalt der Textbox mit der Beschriftung Quelltext und
fgen dort folgende Zeilen ein:
--------------------------- *schnipp* ----------------------------01: ZT<>..........................................................
..............
02: <>ZT.....ZT version of 99 Bottles of beer (Bottles.zt)........
..............
03: ...>ZT>..Philipp Winterberg, http://www.winterbergs.de........
..............
04: .<63<.........................................................
..............
05: ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT
<>ZT<>ZT<>....
06: <>0<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>
ZT<>ZT<>ZT<>..
07: ZT<>20<>62<>6F<>74<>74<>74<>6C<>65<>28<>73<>29<>20<>6F<>66<>20
<>62<>65<>65<>
08: ><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><
ZT><ZT><ZT<<ZT
09: ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
>>ZT>>ZT>>ZT>>
10: <>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
ZT>>ZT>>ZT>>ZT
11: ZT<>72<>20<>6F<>6E<>20<>74<>68<>65<>20<>77<>61<>6C<>6C<>2C<>0D
<>0A<>ZT<>ZT<>
12: ><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><
ZT><ZT><ZT<<ZT
13: ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
>>ZT>>ZT>>ZT>>
14: <>0>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
ZT>>ZT>>ZT>>ZT
113
15: ZT<>20<>62<>6F<>74<>74<>74<>6C<>65<>28<>73<>29<>20<>6F<>66<>20
<>62<>65<>65<>
16: ><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><
ZT><ZT><ZT<<ZT
17: ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
>>ZT>>ZT>>ZT>>
18: <>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
ZT>>ZT>>ZT>>ZT
19: ZT<>72<>2E<>0D<>0A<>54<>61<>6B<<65<>20<>6F<>6E<>65<>20<>64<>6F
<>77<>6E<>2C<>
20: ><ZT><ZT><ZT><ZT><ZT>XXX><ZT><JF><ZT><ZT><ZT><ZT>XXX><ZT><ZT><
ZT><ZT><ZT<<ZT
21: ZT<>ZT>>ZT>>ZT>>ZT>>XXXXXT>>ZT<<ZT>>ZT>>ZT>>ZT>>XXXXXT>>ZT>>ZT
>>ZT>>ZT>>ZT<>
22: <>ZT>>ZT>>ZT>>ZT>>ZTXXXXX>ZT><ZT<>ZT>>ZT>>ZT>>ZTXXXXX>ZT>>ZT>>
ZT>>ZT>>ZT<<ZT
23: ZT<>ZT<>ZT<>ZT<>ZT<>ZXX>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZXX>ZT<>ZT<>ZT
<>ZT<>ZT<>ZT<>
24: ><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><
ZT><ZT><ZT<<ZT
25: ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
>>ZT>>ZT>>ZT>>
26: <>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
ZT>>ZT>>ZT>>ZT
27: ZT<>20<>70<>61<>73<>73<>20<>69<>74<>20<>61<>72<>6F<>75<>6E<>64
<>2C<>0D<>0A<>
28: ><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><
ZT><ZT><-1<<ZT
29: ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
>>ZT>>ZT>>ZT>>
30: <>0>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
ZT>>ZT>>ZT>>ZT
31: ZT<>20<>62<>6F<>74<>74<>74<>6C<>65<>28<>73<>29<>20<>6F<>66<>20
<>62<>65<>65<>
32: ><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT><
ZT><ZT><ZT<<ZT
33: ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
>>ZT>>ZT>>ZT>>
34: <>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
ZT>>ZT>>ZT>>ZT
35: ZT<>72<>20<>6F<>6E<>20<>74<>68<>65<>20<>77<>61<>6C<>6C<>2E<>0D
<>0A<<0D<>0A<>
36: ><ZT><ZT><ZT><ZT>XXX><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT>XXX><ZT><
ZT><JF><ZT<<ZT
37: ZT<>ZT>>ZT>>ZT>>ZTXXXT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>XXX>ZT>>ZT
><CMP>ZT>>ZT>>
38: <>ZT<>ZT<>ZT<>ZT<>XXXXZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZXXXXT<>ZT<>
ZT<<ZT<<ZT<<ZT
39: ZT<>ZT>>ZT<>ZT<>ZT<XXXXXZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZXXXXX<>ZT<>ZT
114
<<EX<>ZT>>ZT<>
40: <>ZT<>ZT<>ZT<>ZT<>ZTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>ZT<>ZT><
ZT<<ZT<<ZT<>ZT
41: ZT<>ZT>>ZT<>ZT<>ZT<>ZTXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>ZT<>ZT<>ZT
<>ZT><ZT<>ZT<>
42: <>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>
ZT><ZT<>ZT<>ZT
--------------------------- *schnapp* -----------------------------
115
Anhang
A: 99 Bottles of Beer Song
99 bottle(s) of beer on the wall,
99 bottle(s) of beer.
Take one down, pass it around,
98 bottle(s) of beer on the wall.
116
117
118
4 bottle(s) of
4 bottle(s) of
Take one down,
3 bottle(s) of
3 bottle(s) of
3 bottle(s) of
Take one down,
2 bottle(s) of
2 bottle(s) of
2 bottle(s) of
Take one down,
1 bottle(s) of
1 bottle(s) of
1 bottle(s) of
Take one down,
0 bottle(s) of
9 bottle(s) of
9 bottle(s) of
Take one down,
8 bottle(s) of
8 bottle(s) of
8 bottle(s) of
Take one down,
7 bottle(s) of
7 bottle(s) of
7 bottle(s) of
Take one down,
6 bottle(s) of
6 bottle(s) of
6 bottle(s) of
Take one down,
5 bottle(s) of
5 bottle(s) of
5 bottle(s) of
Take one down,
4 bottle(s) of
119
120
B: ZT Dokumentation
_____________
/zZzZzZzZzZzZz/
/zZ/
/Zz/
/Zz/
/zZ/
/zZ/
/Zz/
/Zz/________
/ZzZzZzZzZzZz/
_____________
/tTtTtTtTtTtTt/
/tT/
/Tt/
/tT/
/Tt/
/tT/
/Tt/
/tT/
/Tt/
Grundlagen
---------ZT Programmiersprache - Dokumentation
<--<--<--<---
head
body
body
feet
Einfhrung
---------Willkommen zu ZT. Sie haben sich entschieden, eine der biestigsten
Programmiersprachen des Planeten zu lernen. Obwohl die Syntax von ZT
leicht zu erlernen ist, ist es ein kleines Abenteuer, darin zu
programmieren.
Einige strukturelle berlegungen in ZT sind inspiriert von 4DL, Numberix
und unbabtized.
ZT hat sich umarmende Datenpaare und Kommandos, die allein durch den
Programmfluss definiert werden. Um die Sache nicht zu einfach zu machen,
ist der Programmfluss brigens diagonal. All diese Features dienen dazu,
121
_
_
|\
/|
\
/
+---------------+
| Programmfluss |
+---------------+
/
\
|/_
_\|
Weil Romeo und Juliet sich lieben, umarmen sie einander oft und gerne.
Wie Sie wahrscheinlich schon vermuteten, tun sie es permanent in ZT
Programmen. Das sieht in etwa folgendermaen aus:
122
xyfH
hFXY
Daten ("ZT"). Ihr Kopf ("<") und ihre Fe ("<") sagen dem ZT
Interpreter, wo es weitergeht. Die verschiedenen mglichen Richtungen,
die Juliet einschlagen kann, sind (um die bersichtlichkeit zu
verbessern, wurde Romeo komplett durch Punkte ersetzt):
Weil sie sich sehr sehr lieben, strt es Romeo und Juliet nicht einmal,
dass sie einander die Fe in dieser ungewhnlichen 69er Stellung kssen.
Dies machen sie speziell fr Sie, damit der ZT Quelltext kompakter wird.
brigens, Juliet ist oben. :-)
Juliets Fe
Juliets Kops
ZT<.
<...
ZT>.
<...
/
|/_
ZT>.
>...
_
|\
\
______
v
xyfH <-- Romeos Kopf
--> hFXY
^------ Romeos Fe
\
_\| (weiter beim nchsten Romeo in Richtung rechts unten)
_
/|
/
(weiter beim nchsten Romeo in Richtung rechts oben)
ZT<.
>...
Abbildung 4: Romeo ksst Juliets Fe
Wenn sie sich so umarmen, bilden Romeo und Juliet ein gut stapelbares
Packet. Jede Menge dieser Pakete knnen in Zeilen und Spalten angeordnet
werden. Wir verlassen nun die Welt der langweiligen HXYF-Abbildungen und
werfen einen Blick auf ein echtes ZT Program:
ZT<>
<<2A
XX<>
<>ZT
\
_\| (weiter bei der nchsten Juliet in Richtung rechts u.)
Wir knnen schneller vorangehen? Okay, sehr gut, im Folgenden sehen Sie
das gleiche ZT Programm wie in Abbildung 5, aber mit sehr viel mehr
Prchen:
ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>
<<2A<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT
XX<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>
<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT
<--<--<--<---
7
7
7
7
Juliets
Romeos
Juliets
Romeos
Jetzt im Detail: Ein ZT Programm beginnt in der linken oberen Ecke mit
Juliet (Ladies first!). Wie Sie sich erinnern, beinhaltet Juliets Krper
123
...>
.<ZT
/
|/_
...<
.<ZT
_
|\
\
...<
.>ZT
_
/|
/
124
Romeo und Juliet knnen beide "TALK", "JUMP", "MATH" und "SET" Kommandos
verstehen. Aber es gibt da diese kleinen Unterschiede: Romeo redet nur
ber Zahlen, Juliet kann nicht sehr weit springen... Deshalb whlt der
erfahrene ZT Programmierer sorgfltig die Person aus, die die Aufgabe am
besten bewltigen kann.
ZT erlaubt Romeo und Juliet etwas, wovon echte Paare sehr oft trumen zumindest in den ersten zwei Wochen der Beziehung -, sie drfen ihre
Gedanken miteinander teilen (ihren Speicher bzw. ihr Memory, um exakt zu
sein).
Aber wie sagt man Romeo, dass er springen soll? Oder Juliet, sie mge
reden? Es ist ganz simpel: Sie sagen es ihnen durch den Programmfluss!
Jeder Romeo und jede Juliet hat einen Datenkrper, der normalerweise
Hexadezimaldaten enthlt. Wenn nun beispielsweise der Programmfluss von
links oben kommt, dann benutzt Juliet die hex-Daten, um darber zu reden
(sprich: sie gibt die hex-Daten als ASCII Zeichen auf dem Bildschirm
aus).
+---------------+
| Programmfluss |
+---------------+
\
_\|
4A<.
<...
+---------------+
| Programmfluss |
+---------------+
\
_\|
ZT<.
<...
TALK: XY als ASCII Zeichen auf dem Bildschirm ausgeben (XY: hex-Wert),
dann MOVE in Richtung HF (definiert durch H und F. Siehe Abbildung 7).
Beispiel: 5A<.
<...
0<.
>...
dann
\
_\|
_
/|
Abbildung 10: Mit "ZT" in ihrem Datenkrper muss Juliet still sein,
obwohl der Programmfluss sie zum Reden auffordert
125
126
XYF.
F...
--> JUMP
_
/|
/ , wenn memory[index] <> 0,
sonst JUMP _\|
_
/|
???.
?...
ZT<.
>...
/
+---------------+
| Programmfluss |
+---------------+
???.
?...
ZT<.
>...
--> jump
_
/|
/ , wenn memory[index] <> 0, sonst JUMP
\
_\|
--> jump
_
/|
/ , wenn memory[index] <> 0, sonst JUMP
\
_\|
\
_\|
SET: All SET? Go party! (XY <> "ZT"). Dieses Kommando ignoriert alle
HXYF Werte, schreiben Sie also hinein, was Sie wollen (auer "ZT").
127
Beispiel: 01<.
<...
_
/|
Beispiel: UIT.
Q...
MATH: index = (index + XY) mod 16 (X: '-' oder hex-Wert, Y: hex-Wert),
dann MOVE in Richtung HF (definiert durch H und F. Siehe Abbildung 7).
-2<.
>...
_
/|
--> index = index - 2, dann
TALK: XY als Dezimalzahl auf dem Bildschirm ausgeben (XY: hex-Wert), dann
MOVE in Richtung HF (definiert durch H und F. Siehe Abbildung 8).
--> Quit ZT Programm
128
Beispiel: ...>
.>63
...<
.>0
\
_\|
Beispiel: ...>
.>63
_
/|
/
...<
.>0
...>
.>-3
\
_\|
...H
.FXY
_
/|
dann
/
+---------------+
| Programmfluss |
+---------------+
Abbildung 16: Programmfluss fordert Romeo zum Springen auf
Beispiel: ...>
.>63
...<
.>0
\
_\|
dann
\
_\|
_
/|
, dann
MATH: Memory[index] = memory[index] + XY (X: '-' oder hex-Wert, Y: hexWert), dann MOVE in Richtung HF (definiert durch H und F. Siehe
Abbildung 8).
_
/|
[aber nicht mehr als
16]
Abbildung 17: Programmfluss fordert Romeo zum Setzen eines Wertes auf
129
Beispiel: ...>
.>63
dann
\
_\|
_
/|
...<
.>0
...>
.>-3
\
_\|
dann
Eingaben
-------Ich folge in diesem Punkt der 'unbabtized'-Input-Philosophie von Gerson
Kurz: "There is no input. There is a philosophy behind this, you know! To
my view, there are two kinds of input, user input and hardcoded input.
User input sucks, and hardcoded input rules, so there." (2002-07-02,
http://www.p-nand-q.com/unbabtized.htm)
130
Beispiele
--------ZT bietet eine gigantische Welt voller Mglichkeiten, die Sie jetzt
selbststndig erforschen drfen. Um Ihnen dabei ein wenig Hilfe und einen
abschlieenden berblick zu geben, sehen Sie hier noch einige kleine ZT
Beispielprogramme:
5A<>........
<>ZT........
....65<>....
....<>ZT....
........72<>
...Zer0.<<00
.Tolerance..
48<>>>>>ZT<>ZT<> Hello |
<>ZT>>ZT<>ZT<>ZT World!|
<<<<65<>6F<>6F<>6C<>>>>>
>>>2<>ZT<>ZT<>ZT<>ZT<<<8
ZT<<<<<<6C<>20<>72<>64<<
><ZT<<<<<>ZT<>ZT<>ZT><<5
>>>>ZT><<<<<6C<>57<>ZT<<
>>ZT><ZT><<<<<ZT<<ZT><<7
ZT<<21<>ZT><ZT>>ZT<<<<<|
><ZT<>ZT><42<<<<<>ZT by|
>>>>ZT><21<>>>> Philipp|
>>>>><ZT<<ZT Winterberg|
-------EXIT--[ ZT ]----|
-[www.winterbergs.de]-/
47<>.....................
<>ZT.....................
...>6F>>.................
.>FF<>ZT.................
....ZT<.21<>...>ZT><.....
....>...<>ZT.<ZT<<-1.....
............ZT<>....ZT><.
............<>0....><ZT.
................20<<CMP>.
................<>ZT<<ZT.
....................EXIT.
.[ loop counting 255-0 ].
Abbildung 20: ZT Programm, dass von 255-0 runterzhlt und die Zahlen
ausgibt
131
132
ZT<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>
<>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT
ZT<>72<>20<>6F<>6E<>20<>74<>68<>65<>20<>77<>61<>6C<>6C<>2E<>0D<>0A<<0D<>0A<>
><ZT><ZT><ZT><ZT>XXX><ZT><ZT><ZT><ZT><ZT><ZT><ZT><ZT>XXX><ZT><ZT><JF><ZT<<ZT
ZT<>ZT>>ZT>>ZT>>ZTXXXT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>ZT>>XXX>ZT>>ZT><CMP>ZT>>ZT>>
<>ZT<>ZT<>ZT<>ZT<>XXXXZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZXXXXT<>ZT<>ZT<<ZT<<ZT<<ZT
ZT<>ZT>>ZT<>ZT<>ZT<XXXXXZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZXXXXX<>ZT<>ZT<<EX<>ZT>>ZT<>
<>ZT<>ZT<>ZT<>ZT<>ZTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>ZT<>ZT><ZT<<ZT<<ZT<>ZT
ZT<>ZT>>ZT<>ZT<>ZT<>ZTXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>ZT<>ZT<>ZT<>ZT><ZT<>ZT<>
<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT<>ZT><ZT<>ZT<>ZT
Abbildung 23: Schlechte "99 Bottles of Beer" Version in ZT, die zeigt,
dass ZT Quelltext lcheln kann
Ziel
---Yeah! Cool! Sie haben es den ganzen Weg durch diese Dokumentation
geschafft - und das in Rekordzeit. Die romantische Welt von ZT liegt nun
wie ein offenes Buch vor Ihnen. Zgern Sie nicht, mir Ihre ZT
Meisterwerke zu schicken: p(at)p78(punkt)[d]e, subject:
"ZT Killer Application"
Der ZT Interpreter ist open source und darf unter GNU GPL vertrieben
werden. Falls Sie einen weiteren ZT Interpreter/Compiler schreiben,
schicken Sie mir doch eine Kopie. Danke.
Dieses schlechte "99 Bottles of Beer" ZT Program zeigt, dass, obwohl die
Sprache ZT designed wurde, Wiederverwendbarkeit von Quelltext zu
verhindern, es - mit Hilfe hsslicher Techniken - immer noch mglich ist,
wiederverwertbaren Quelltext zu schreiben. Aber der Quelltext wird
dadurch unntig aufgeblasen und verliert seine Eleganz. Falls Sie die
Zeit haben, schreiben Sie eine bessere Version!
Anhang A
--------
ZT<>...........>...>...>...>...>pF>>...>...>p1>>...>p1<>...>pE<>...>...>
<>ZT.........>-1.>+1.>ZT.>ZT.>ZT<>ZT.>ZT.>ZT<>ZT.>-1<>ZT.>+1<>ZT.>-1.<JD
pD<>ZT><ZT<>...>6C<>66<.20<>62<>2E<.0D<<0A<>6E<>65<>20<>70<>20<>20<>72<<
><63<>ZT<>*0.>ZT<>ZT>...>>ZT<>ZT>...><J3<<ZT>>ZT<>ZT<>ZT<>ZT<>ZT<>ZT><J2
ZT<<IF*>...>20<>62<>65<<IF*>73>>65><IF*>ZT<<IF*>54<>20<>61<>61<>69<>61<<
<>ZT*>ZT.>J4><J3<>ZT<>ZT*>ZT<>ZT<>ZT*>ZT<>ZT*>ZT<>ZT<>ZT<>ZT<>ZT<>ZT><J5
...>ZT><ZT<>ZT<<ZT>>6F<>...>20><65<>p1><20<>...>47>>61<>64<>6E<>73<>74<<
.>+1><ZT>>ZT><ZT<>JA<>ZT.>ZT<<J6<>ZT><ZT<>ZT.>ZT<<JC<>ZT<>ZT<>ZT<>ZT><J6
p1<>6D<>ZT>>65<>p1<<...>74<>6F<<....72<>ZT><6F<>6F<>p1<>6B<>6F<>64<>73<<
<>ZT<>ZT>>ZT<>ZT><ZT.>ZT<>ZT><J8....><ZT<<ZT<>ZT>>ZT<>ZT<>ZT<>ZT<>ZT><J9
...>64<>65<>20>>2C><...>65<>74<<...>Fin<IF*>...>6E<>20<>77<>65<>77<>20<<
.>+1<>ZT>>ZT<>ZT<<J9.>ZT<>ZT><J8.>ZT*>ZT*>ZT.>ZT>>J3<>ZT<>ZT<>ZT<>ZT><JA
...>6F>>20>>6D<>20<>...>6F<>20<<pE<>0A<....>0D<>0A<....>74<>61<>20<>6E<<
.>ZT<>ZT<>ZT<>ZT>>J5.>ZT<>ZT><J4<>ZT>....<J6>>ZT>....<JA<>ZT<>ZT<>ZT><JD
...>20>>62<>75>>6F<>....20<>72<<pE<>4E<<ZT<>ZT<>64<>pF<<ZT>>68<>6C<>6F<>
.>ZT<>ZT>>ZT<>ZT>>ZT....<>ZT><J4<>ZT<>ZT><J3<>ZT<>ZT><ZT<<J7<>ZT<>ZT><J6
...>74>>6F>>79<>20<>73><....6D<<pF<<6E<<IF*>...>6F<>2C<>ZT<<pF><65<>6C<<
.>ZT<>ZT<>ZT>>ZT>>ZT<<JA....><JA><ZT>>ZT*>ZT.>J3<>ZT<>ZT><ZT<<+1<>ZT><J9
...>68>>72<>65<>20>>6F<<...>72<>...<ZT>....<ZT<<...>75<>20<<...>pF>>20<>
.>ZT<>ZT>>ZT>>ZT<>ZT><JB.>ZT>>ZT.<J6>....<J5><J7.<J4<>ZT><J6.>ZT>>ZT><J4
....65<.20<.73<>61<<6E<<...>20>.6F<<...<IF*<ZT<<p1<<ZT><6E<<IF*>2E<>0D<<
....>...>...<>ZT><J6><JA.>ZT<...><JF.>ZT*>ZT><JF><ZT<<JA>>ZT*>ZT>>ZT><J3
.. 99 bottles ..74<.p1<<p1><74>.pE<<....ZT><ZT<.....ZT<<ZT><p1><2C<.20<.
.. by Mebius. ..>...><00<<ZT<...><00....><ZT>.......><ZT<<ZT<<ZT>...>...
133
Nach ersten Reaktionen wird deutlich, dass ein FAQ (frequently asked
questions) nicht schaden kann. Deshalb:
A: Nein. Das ist bei einigen Beispielen missverstndlich, weil ich '//'
aus Gewohnheit einfach geschrieben habe. Entschuldigung. Dass Kommentare
nicht als solche gekennzeichnet werden mssen, wird deutlich, wenn man
sich die Programmverarbeitung durch den ZT Interpreter verdeutlicht: Der
Interpreter startet links oben und folgt dann Romeos und Juliets
Richtungsangaben. Er luft also von Person zu Person und wo er nicht
hinkommt, kann man Kommentare unterbringen (Denn merke: Was der
Interpreter nicht wei, macht den Interpreter nicht hei).
ZT' bei Romeo bewirkt das Gleiche wie 'JUMP 01': HF geben die
an, XY die Sprungweite. Bei '01' wird ein normaler Schritt
bei 'ZT' wird der JUMP Befehl komplett ignoriert, was aber im
auch in einem normalen Schritt mndet.
134
2010-08-24
2004-11-10
2002-07-29
2002-07-07
2002-07-05
A: Guter Punkt. Specs und Interpreter wurden erweitert: statt "" darf
auch "^", "*" oder sogar "?" verwendet werden. Die sind alle ASCII und
hoffentlich auch auf einer finnischen Tastatur vorhanden.
Anhang B
-------+
+
+
| Juliet
| Romeo
|
|
|
|
+-----+------------------+------------------+
TALK | Datenkrper oder | Datenkrper oder |
| memory[index]als | memory[index]als |
| ASCII ausgeben
| Zahl ausgeben
|
+-----+------------------+------------------+
JUMP | Bedingter Sprung | Normaler Sprung |
| memory[index]=0? | in Richtung HF
|
+-----+------------------+------------------+
SET | ZT Programm
| Wert setzen:
|
| beenden
| memory[index]
|
+-----+------------------+------------------+
MATH | Wert des Index
| Wert ndern:
|
| Pointers ndern | memory[index]
|
+-----+------------------+------------------+
135
136
Register
23 14
Alice Pascal 15
ASHE 16
ASIC 18
Basic 70
BasicBasic 19
BBC BASIC for Windows 21
Blaster Master Pascal 22
bwBasic 24
C 70
C-- 25
Careware 57
Chipmunk Basic 26
COCOA 27
ComWic 28
Curl 29
D 30
D++ 31
DarkBasic 32
Delphi 33
Dialect 34
DiNGS Game Basic 35
DPas 36
EasyBatch 37
eC 38
elastiC 39
Euphoria 41, 70
FirstBasic 42
FranzBasic 43
Free Pascal 43
GABasic 45
GBasic 46
137
GFA Basic 46
GPLZ.easy 47
Greenware 25
Hello World 132
HotTEA 48
HQ9+ 49
HTA 50
HTBasic 50
IBasic 51
Impacto 52
Input-Philosophie 130
Irie Pascal 53
ISETL 54
Java 56, 99, 111
JavaScript 70
JScript 55
Juliet 123, 135
Kiev 56
KiXtart 57
Liberty Basic 58
MacroX 59
MoonRock 60
NeoBook 61
Numberix 62, 121
O'Basic 63
Objective Caml 49, 64
PascalX 65
PasScript 66
Perl 87
Portable ISO Standard Pascal
67
PowerBasic 42
ProvideX 68
PureBasic 69
Py 70
Python 47, 49, 70, 96, 107
Quikcode 71
R 72
RapidBATCH 73
Rapid-Q 73
RBASIC 74
REBOL/Core 75
Romeo 123, 135
ScriptBasic 76
ScriptEase 77
SheerPower 78
ShowText 79
SmallBasic 80
Sphinx C-- 25
SuperEASY 81
T 82
Tcl/Tk 105
TMMLPTEALPAITAFNFAL
83
TMT Pascal 5, 85
Tokiwa 86
TRANSCRIPT 87
True Basic 89
TsrBasic 90
Turbo C 91
Turbo Pascal 93
Turbo Pascal for Windows 92
Turbo PL 94
UBasic 95
Umweltschutz 25
unbabtized 96, 121, 130
VBA 97
VBScript 98
Virtual Machine 56, 99, 111
Visual DialogScript 98
WebL 99
WIL 100
WinBatch 101
wxBasic 103
XBasic 103
xComposer 108
XLISP-PLUS 104
XOTcl 105
XPL0 106
XS 107
xScript 108
Yabasic 109
Yacas 110
Yoix 111
Zeno 112
Zer0 Tolerance 113
ZT 113, 121
138
139
140