99 Bottles

70
Das „99 Bottles of Beer” Programm 2

description

Eine Reise durch die Welt der Programmiersprachen

Transcript of 99 Bottles

  • Das 99 Bottles of Beer Programm

    2

  • 3

    program BoB99;

    {$ifdef __GUI__}

    uses WinCRT; {+}

    {$endif} {+++++}

    var b: byte; a,

    c: string; begin

    a:= #32+#98+#111

    +#116+#116+#108+#101

    +#40+#115+#41+#32+#111

    +#102+#32+#98+#101+#101+

    #114; b:= 99; c:= #32+++

    #111+#110+#32+#116+#104+

    #101+#32+#119+#97+#108++

    #108; 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+#0);dec(b)

    ;writeln(b:2, a+c+#46+++

    #13+#10);until b=0; end.

    4

    Philipp Winterberg

    Das 99 Bottles of Beer-Programm Ein Reise durch die Welt der Programmiersprachen

  • 5

    Alle in diesem Buch enthaltenen Programme und Verfahren wurden nach

    bestem Wissen erstellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht

    ganz auszuschlieen. Aus diesem Grund ist das im vorliegenden Buch ent-

    haltene Programm-Material mit keiner Verpflichtung oder Garantie irgend-

    einer Art verbunden. Autor und Verlag bernehmen infolgedessen keine

    Verantwortung und werden keine daraus folgende oder sonstige Haftung

    bernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-

    Materials oder Teilen davon entsteht.

    Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnun-

    gen usw. In diesem Werk berechtigt auch ohne besondere Kennzeichnung

    nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen-

    und 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, reprodu-

    ziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfl-

    tigt oder verbreitet werden.

    Umschlag: Dne 45, Namib-Naukluft Park, Namibia (Titel, oben); Karibik,

    Yucatan, Mexiko (Titel, unten); 99 Bottles of Beer-Welt Textmosaik

    (Rckseite) erstellt mit Textmosaic Generator 1.00

    Fotos, Textmosaik, Umschlaggestaltung: Philipp Winterberg

    Frontispiz: Das 99 Bottles of Beer-Programm in TMT Pascal (vgl.

    Reiseziel 71)

    2. Auflage mit ergnzendem Vorwort

    Copyright 2006-2011 Philipp Winterberg

    http://www.philipp-winterberg.de

    http://www.99-bottles-of-beer.de

    6

    TO THOSE WHO UNDERSTAND BINARY

  • 7

    8

    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, ver-

    schoben 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 Beispielpro-

    gramme wie exotische Schnappschsse in einem Reisefhrer zu genieen.

    Bangkok, im November 2011 Philipp Winterberg

  • 9

    10

    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 Beer-

    Programm auf sich hat, finden Sie hier:

    http://www.drweb.de/programmierung/99bottles.shtml

    Eine erlebnisreiche Weltreise wnscht:

    Philipp Winterberg

  • 11

    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

    12

    32: GPLZ.easy ....................................................................................................47

    33: HotTEA ........................................................................................................48

    34: HQ9+ ............................................................................................................49

    35: HTA ...............................................................................................................50

    36: HTBasic.........................................................................................................50

    37: IBasic..............................................................................................................51

    38: Impacto..........................................................................................................52

    39: Irie Pascal ......................................................................................................53

    40: ISETL ............................................................................................................54

    41: JScript.............................................................................................................55

    42: Kiev ................................................................................................................56

    43: KiXtart...........................................................................................................57

    44: Liberty Basic .................................................................................................58

    45: MacroX..........................................................................................................59

    46: MoonRock ....................................................................................................60

    47: NeoBook .......................................................................................................61

    48: Numberix ......................................................................................................62

    49: O'Basic...........................................................................................................63

    50: Objective Caml.............................................................................................64

    51: PascalX ..........................................................................................................65

    52: PasScript ........................................................................................................66

    53: Port. ISO Std. Pascal...................................................................................67

    54: ProvideX .......................................................................................................68

    55: PureBasic .......................................................................................................69

    56: Py ....................................................................................................................70

    57: Quikcode .......................................................................................................71

    58: R......................................................................................................................72

    59: Rapid-Q .........................................................................................................73

    60: RapidBATCH...............................................................................................73

    61: RBASIC.........................................................................................................74

    62: REBOL/Core ..............................................................................................75

    63: ScriptBasic.....................................................................................................76

    64: ScriptEase......................................................................................................77

    65: SheerPower ...................................................................................................78

    66: ShowText ......................................................................................................79

    67: SmallBasic .....................................................................................................80

  • 13

    68: SuperEASY .................................................................................................. 81

    69: T ..................................................................................................................... 82

    70: TMMLPTEALPAITAFNFAL ................................................................ 83

    71: TMT Pascal .................................................................................................. 85

    72: Tokiwa........................................................................................................... 86

    73: TRANSCRIPT ............................................................................................ 87

    74: True Basic ..................................................................................................... 89

    75: TsrBasic......................................................................................................... 90

    76: Turbo C......................................................................................................... 91

    77: Turbo Pascal for Win. ................................................................................ 92

    78: Turbo Pascal ................................................................................................ 93

    79: Turbo PL ...................................................................................................... 94

    80: UBasic............................................................................................................ 95

    81: unbabtized .................................................................................................... 96

    82: VBA/Access ................................................................................................ 97

    83: VBScript........................................................................................................ 98

    84: Visual DialogScript ..................................................................................... 98

    85: WebL ............................................................................................................. 99

    86: WIL..............................................................................................................100

    87: WinBatch ....................................................................................................101

    88: wxBasic........................................................................................................103

    89: XBasic..........................................................................................................103

    90: XLISP-PLUS..............................................................................................104

    91: XOTcl..........................................................................................................105

    92: XPL0............................................................................................................106

    93: XS.................................................................................................................107

    94: xScript..........................................................................................................108

    95: Yabasic ........................................................................................................109

    96: Yacas............................................................................................................110

    97: Yoix..............................................................................................................111

    98: Zeno.............................................................................................................112

    99: ZT ................................................................................................................113

    Anhang ...................................................................................................................116

    A: 99 Bottles of Beer Song.......................................................................................116

    B: ZT Dokumentation....................................................................................121

    Register ...................................................................................................................137

    14

    Reiseziele

    01: 23 Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    23 Alpha-Version; 0,1MB; Interpreter

    Plattformunabhngig

    Gratis; Freeware

    Verschollen

    Unfertige Alphaversion

    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:

    23 version of 99 Bottles of beer (Bottles.23)

    Philipp Winterberg, http://www.winterbergs.de

    Only use lines between "--- cut ---" and "--- cut ---"!

    --- cut ---

    23,35,19,36,30,16,44,16,13,23,35,19,36,18,19,66,33,

    10,1,35,23,35,19,36,30,17,3,46,13,13,27,0,35,1,255,

    99,32,98,111,116,116,108,101,40,115,41,32,111,102,

    32,98,101,101,114,32,111,110,32,116,104,101,32,119,

    97,108,108,46,13,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,13

    --- cut ---

    --------------------------- *schnapp* -----------------------------

    Anschlieend klicken wir bestimmt auf den Button Interpreter

    starten! und freuen uns ber die Ausgabe des 99 Bottles of Beer-

    Songs in der Textbox mit der Beschriftung Konsole. Ein erster Erfolg.

    Im Fenster Meldungen werden alternative Quelltext-Notationen angeboten

    und genau an dieser Stelle beginnt das Abenteuer : Die Programmier-

    sprache ist eine der sogenannten esoterischen Programmiersprachen,

    was nichts mit Sex, Gurus und Gehirnwsche zut un hat, sondern lediglich

    bedeutet, dass sie sehr sehr sehr weit entfernt vom Mainstream ist. Also

    genau das, was den echten Abenteurer reizt. Unerforschtes Gelnde,

  • 15

    bizarre Gedankenwelten, kryptisch anmutender Quellcode. Hierin liegt der

    Reiz, aber leider auch oft das Problem der esoterischen Programmierspra-

    chen : Denn ist die Sprache wie im vorliegeneden Fall in einem unfer-

    tigen Zustand, existiert keine hinreichend verstndliche Dokumentation,

    gibt es weder Support noch andere User, dann ist guter Rat teuer und oft

    bleibt nur, unverrichteter Dinge wieder abzureisen. Diese Sprache ist folg-

    lich ein klares Negativbeispiel, trotz unseres Erfolges.

    Ist andererseits eine esotersiche Programmiersprache ausgereift, gibt es ei-

    nen funktionstchtigen Interpreter oder sogar Compiler und eine detaillier-

    te Dokumentation, dann ist ihre Erkundung ein Genuss, der nur schwer zu

    berbieten ist. Ein Positivbeispiel ist Zer0 Tolerance (vgl. Reiseziel 99,

    Dokumentation als Beispiel im Anhang B).

    02: Alice Pascal Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Alice Pascal SCI-1.3; 1985; 0,7MB; Interpreter

    DOS

    Gratis; Freeware

    http://www.templetons.com/brad/alice.html

    Uralt Pascal-Derivat +++ Alice Pascal strahlt den

    grob romantischen Charme einer lngst vergangenen

    ra aus +++ Auch bekannt als ALICE: The Personal

    Pascal System

    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 Stan-

    dardversion 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 Maus-

    untersttzung. Dafr ein Men mit Schnellwahltasten: Wir drcken fr

    Edit a New Program. Alice hilft bei der Eingabe des folgenden Pro-

    gramms ein wenig, frbt den frischen Quellcode sinnvoll ein und ist auch

    sonst sehr zuvorkommend...

    16

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    17:

    program Bottles(input, output);

    { Alice Pascal version of 99 Bottles of beer (Bottles.ap) }

    { Philipp Winterberg, http://www.winterbergs.de }

    var

    b : Byte;

    begin

    b := 99;

    repeat

    writeln(b:2, ' bottle(s) of beer on the wall,');

    writeln(b:2, ' bottle(s) of beer');

    writeln('Take one down, pass it around,');

    b := b - 1;

    writeln(b:2, ' bottle(s) of beer on the wall.');

    writeln('');

    until b = 0;

    end.

    --------------------------- *schnapp* -----------------------------

    Mit wird das Programm Bottles ausgefhrt. Erfolgreich? Glck-

    wunsch. Ein erhebender Moment. bringt uns zurck in den far-

    benfrohen Editor.

    Im Weiteren knnen Sie das Gelnde nach Lust und Laune erkunden. Ex-

    perimentieren Sie, aber berfordern Sie die alte Dame nicht! Hilfe bringt

    auf Wunsch .

    03: ASHE Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    ASHE 2.0; 2003; 4,8MB; Interpreter

    Windows

    $39,95; Shareware

    http://www.grandriversoftware.com/ashe.htm

    Primr als Hex Editor konzipiert +++ ASHE steht

    fr A Scripted Hex Editor

    Keine Panik. Da wir fr diese Reise keine 45 Tage bentigen, ist alles kos-

    tenlos. 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-

  • 17

    ter Start | Programme | ASHE - A Scripted Hex Editor |

    ASHE 2.0...

    ber das wenig ansprechend gestaltete ASHE Hauptfenster rmpfen wir

    kurz die Nase, schtteln den Kopf ob der unsthetischen Buttons, whlen

    dann aber unbeirrt Windows | Script Output und Windows |

    Script Editor im Men. ASHE ffnet daraufhin zwei Fenster: Ein

    schlichtes mit weiem Hintergrund fr die Ausgaben des Scripts, sowie ein

    herrlich blau gefrbtes Editorfenster, das die Programmstruktur der folgen-

    den Zeilen whrend der Eingabe gekonnt farbig betont:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    ' ASHE version of 99 Bottles of beer (Bottles.txt)

    ' Philipp Winterberg, http://www.winterbergs.de

    Number 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--

    Print b; " bottle(s) of beer on the wall."

    Print

    Wend

    --------------------------- *schnapp* -----------------------------

    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 per-

    snlichen Geschmack anzupassen, oder in der Hilfe (Help | Contents)

    die weiteren Mglichkeiten zu entdecken.

    18

    04: ASIC Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    ASIC 5.0; 1994; 0,3MB; Compiler

    DOS

    $20,00; Shareware

    http://www.programmersheaven.com/search/Download.a

    sp?FileID=15872

    Es wird keinerlei Aussage darber gemacht, wie

    lange man das Programm evaluieren darf, unser Aus-

    flug sollte aber auf jeden Fall im Rahmen des kos-

    tenlosen sein +++ ASIC Slogan: "Its Almost Basic"

    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 mch-

    te und kommt im schnsten blaugelb daher; davon abgesehen verhlt er

    sich aber freundlich, friedlich und untersttzt mit sinnvollen Defaultwer-

    ten. 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 Regen-

    bogen! 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:

    rem ASIC version of 99 Bottles of beer (Bottles.asi)

    rem Philipp Winterberg, http://www.winterbergs.de

    cls

    b = 99

    bottles:

    print b;

    print " bottle(s) of beer on the wall,"

    print b;

    print " bottle(s) of beer."

    print "Take one down, pass it around,"

    b = b - 1

    print b;

    print " bottle(s) of beer on the wall."

    print

    if B>0 then bottles:

    end

    --------------------------- *schnapp* -----------------------------

  • 19

    Zur Sicherheit speichern wir jetzt das Ergebnis. Mit . Geben Sie als

    Dateinamen Bottles ein und besttigen mit . Die Endung

    .ASI hngt ASIC umsichtig selbst an den Dateinamen.

    Der Hhepunkt des Ausflugs naht: Mit 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 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 ein. Viel besser.

    Mit Exit 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 1.52; 1993; 0,4MB; Compiler

    DOS/Windows

    $30,00; Shareware

    http://www.programmersheaven.com/search/Download.a

    sp?FileID=16394

    Diese Shareware Version erlaubt nur Programme bis

    200 Zeilen fr uns kein Problem.

    BasicBasic kommt, sobald alle Dateien entpackt sind, in zwei Geschmacks-

    richtungen: DOS (BBE.EXE) und Windows (WBBE.EXE). Wir whlen Win-

    dows. Das ist zwar eher Vanille als Schoko, hier aber verzeihlich, wenn Sie

    spter noch mutig mit der DOS-Version experimentieren.

    20

    Der Editor ist robust, altmodisch, solide. Unsere Aufmerksamkeit fngt zu-

    nchst ein kleiner Star: Der fordernd blinkende Textcursor spielte grn

    getnt in der Anfangsszene des Films Matrix mit. Respekt. In klobi-

    gen, bauchigen Buchstaben schreiben wir:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    rem BasicBasic version of 99 Bottles of beer (Bottles.bas)

    rem Philipp Winterberg, http://www.winterbergs.de

    a$=" bottle(s) of beer" : c$=" on the wall"

    for b = 99 to 1 step -1

    print b; a$; c$; ","

    print b; a$; "."

    print "Take one down, pass it around,"

    print b-1; a$; c$; "."

    print

    next b

    if ostype = 1 then

    do while inkey$=""

    loop

    end if

    --------------------------- *schnapp* -----------------------------

  • 21

    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. ;-)

    06: BBC BASIC for Windows Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    BBC BASIC for Windows 3.0d; 2004; 1,2 MB; Compiler

    Windows

    29.99; Shareware

    http://www.cix.co.uk/~rrussell/products/bbcwin/dow

    nload.html bzw. http://www.bbcbasic.com

    Bei dieser Shareware Version ist das Kommando

    Compile deaktiviert und es sind nur Programme

    bis zu einer Gre von 8kb erlaubt fr uns ist

    beides kein Problem.

    Sobald die Datei bbcwdemo.exe komplett heruntergeladen ist, starten Sie

    sie und klicken sich souvern durch den unkomplizierten Installer. Ist der

    Kopiervorgang abgeschlossen, finden Sie den Editor im Startmen unter Start | Programme | BBC BASIC for Windows | BBC BASIC

    for Windows.

    Die Speedbuttonleiste des Editors ist etwas berdimensioniert und erweckt

    den Eindruck, man habe ein Softwareprodukt fr Kinder, die mit der Maus

    noch nicht so gut zielen knnen, vor sich. Doch davon lassen wir uns nicht

    ablenken. Unbeirrt geben wir die folgenden Zeilen ein:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    REM BBC BASIC version of 99 Bottles of beer (Bottles.bbc)

    REM Philipp Winterberg, http://www.winterbergs.de

    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."

    22

    09: NEXT b

    --------------------------- *schnapp* -----------------------------

    Das farbkompositorisch vollumfnglich misslungene Syntax Colouring

    (orange, grn, rosa) weckt die lngst vergessen geglaubte Sehnsucht

    nach einem Monochrom-Monitor. Andererseits geben diese kleinen Style-

    snden BBC BASIC einen ganz eigenen, unverwechselbaren Charme.

    Unser Programm starten wir jetzt per Klick auf den Button Run (der mit

    dem Play-Symbol). Der Songtext wird in miger Geschwindigkeit in

    einem sich neu ffnenden Fenster ausgegeben. Sehr gut.

    Experimentieren Sie nun: Mit dem Renumber Button knnen Sie Zeilen-

    nummern (blau) hinzufgen und die Farbkomposition weiter verfremden,

    der Befehl Options | Set Colours... im BBC BASIC Men ermg-

    licht es Ihnen, die Farbvergabe noch weiter zu ruinieren. Rettung bringt der

    Menbefehl Options | Syntax Colouring, der den Quelltext in gn-

    diges Schwarz taucht. ffnet die ausfhrliche Hilfe.

    07: Blaster Master Pascal Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Blaster Master Pascal; 2000; 0,2MB; Interpreter

    DOS

    Gratis; Freeware

    http://www.programmersheaven.com/zone24/cat351/168

    88.htm

    Ein kleines Abenteuer! Keine IDE, kein Editor,

    Blaster Master Pascal bietet lediglich eine sehr

    basale Interpreterkonsole +++ It's almost a mix

    of the best of both C and Pascal (README.TXT)

    Entpacken Sie bpc.zip. Es werden zwei Unterverzeichnisse erzeugt: BP

    und PAS. Im Unterverzeichnis BP finden Sie die Datei BM.SRC. ffnen Sie

    diese in einem Texteditor. In der ersten Zeile finden Sie den Eintrag

    ..\bm.bpc. Lassen Sie diese Zeile unangetastet. Ersetzen Sie aber die

    Zeile defs.pas durch Bottles.pas und lschen die Zeile mit dem

    Inhalt main.pas. Speichern Sie danach die Datei und schlieen Sie sie.

    Jetzt legen Sie im Unterverzeichnis BP eine neue Datei mit dem Namen

    Bottles.pas an. ffnen Sie diese Datei in einem Texteditor und geben Sie

    folgende Zeilen ein:

  • 23

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    17:

    18:

    // Blaster Master Pascal version of 99 Bottles of beer

    (Bottles.pas)

    // Philipp Winterberg, http://www.winterbergs.de

    entity x; .float b; Function Spawn (): entity; #2;

    Procedure WriteLn (...); #254;

    Procedure Bottles ();

    Begin

    local entity h; h:= Spawn (); x:= h; x.b:= 99;

    While (x.b > 0) Do

    Begin

    WriteLn('%f bottle(s) of beer on the wall,', x.b);

    WriteLn('%f bottle(s) of beer.', x.b);

    WriteLn('Take one down, pass it around,');

    x.b:= x.b - 1;

    WriteLn('%f bottle(s) of beer on the wall.\n', x.b);

    End;

    End;

    --------------------------- *schnapp* -----------------------------

    Speichern Sie die Datei. Doppelklicken Sie im Explorer auf die Datei

    BPC.EXE. Unser Programm wird nun in eine fr den Interpreter verstnd-

    liche 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

    ein, um eine Liste der verfgbaren Funktionen angezeigt zu bekommen.

    Das Programm meldet: Available Functions: Bottles();.

    Super! Mit dem Befehl exec bottles fhren Sie die Funk-

    tion aus: [...] 0.000 bottle(s) of beer on the wall.

    Schlieen Sie die Konsole mit dem Befehl quit und atmen

    Sie tief durch. In der Datei README.TXT finden Sie noch einige

    Anmerkungen des Blaster Master Pascal Autors, die aber nicht ab-

    schlieend erhellend sind. Verweilen Sie daher nur experimentierend an

    diesem Reiseziel, wenn Ihre Frustrationstoleranz bermig stark ausge-

    prgt ist. Und sagen Sie spter nicht, Sie seien nicht gewarnt worden!

    24

    08: bwBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    bwBasic 1.10; 1992; 0,1MB; Interpreter

    DOS

    Gratis; Freeware

    http://www.programmersheaven.com/zone6/cat700/1591

    8.htm

    bwBasic steht fr Bywater Basic

    Bywater Basic wurde so die Dokumentation ursprnglich im Jahr 1982

    entwickelt; von der Gromutter des Mannes, der die Version 1.10 erstellte,

    obwohl er Historiker, nicht Programmierer, ist. Er fand den Quelltext im

    Nachlass, berarbeitete ihn leicht und verffentlichte bwBasic 1992.

    Eine Installation ist nicht erforderlich: Entpacken Sie alle Dateien aus dem

    frisch heruntergeladenen Paket BWB110E.ZIP in ein beliebiges Verzeich-

    nis und starten Sie BWBASIC.EXE.

    Sie befinden sich nun in der bwBasic Shell und knnen am bwBASIC:-

    Prompt einzelne Programmzeilen oder Kommandos eingeben. Zunchst

    tippen Sie die folgenden Zeilen, jeweils gefolgt von :

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    10 rem Bywater Basic version of 99 Bottles of beer (Bottles.bas)

    20 rem Philipp Winterberg, http://www.winterbergs.de

    30

    40 for b=99 to 1 step -1

    50 print str$(b) + " bottle(s) of beer on the wall,"

    60 print str$(b) + " bottle(s) of beer."

    70 print "Take one down, pass it around,"

    80 print str$(b-1) + " bottle(s) of beer on the wall."

    + chr$(13) + chr$(10)

    90 next b

    99 end

    --------------------------- *schnapp* -----------------------------

    Unser Programm befindet sich jetzt im Speicher und ist bereit, augenblick-

    lich ausgefhrt zu werden. Wir starten die Ausgabe des Songtextes mit dem

    Befehl run .

    In der Datei BWBASIC.DOC erlutert der Autor von Bywater Basic einige

    Besonderheiten, gibt Tipps und schildert die auergewhnliche Entsteh-

    ungsgeschichte des Programms etwas ausfhrlicher. Spannend.

  • 25

    09: C-- Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    C-- FINAL; 1996; 0,6MB; Compiler

    DOS

    Gratis; Greenware

    http://www.cs.utexas.edu/users/tbone/c--

    Auch als Sphinx C-- bekannt +++ its sort of

    like C and kinda like assembly (C--INFO.DOC)

    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 Verkehrsmit-

    tel 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

    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:

    /* C-- version of 99 Bottles of beer (Bottles.c--) */

    /* Philipp Winterberg, http://www.winterbergs.de */

    ? include "WRITE.H--"

    int b;

    main ()

    {

    b = 99;

    do {

    WRITEINT(b);

    WRITESTR(" bottle(s) of beer on the wall,\n");

    WRITEINT(b);

    WRITESTR(" bottle(s) of beer.\n");

    WRITESTR("Take one down, pass it around,\n");

    b--;

    WRITEINT(b);

    WRITESTR(" bottle(s) of beer on the wall.\n\n");

    } while (b > 0);

    }

    --------------------------- *schnapp* -----------------------------

    Schon fast am Ziel. Mit starten wir den Compiler, die sich

    ffnende Dialogbox mit der Frage, ob wir die Datei speichern mchten,

    26

    beantworten wir mit Yes. COMPILING FINISHED. Errors: 0

    Lines: 20 sagt der C-- Compiler. Super! Mikroskopische 342 Bytes ist

    die von ihm erstellte Datei gro. Das verwundert umso mehr, als der

    Quelltext 572 Bytes umfasst. BOTTLES.COM sollten wir als Reiseanden-

    ken unbedingt mitnehmen, vielleicht sogar an Freunde verschenken. Aber

    zunchst starten wir das gute Stck mit . Luft!

    Genieen Sie jetzt unbedingt noch einige Zeit die angenehme Atmosphre

    von Sphinx C--! Lesen Sie die mit aufrufbare Hilfe, sehen

    Sie sich um, programmieren Sie, freuen Sie sich ber das gelungene User

    Interface! Und dann bringen Sie das Programm zu Ihren Freunden und Ihr

    Altpapier zum Container.

    10: Chipmunk Basic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Chipmunk Basic 3.5.9; 2004; 0,1MB; Interpreter

    Windows

    Gratis; Freeware

    http://www.nicholson.com/rhn/basic/#5

    BUGS: Many. Perhaps competitive with Central Ame-

    rican rain forests. (BASIC-MANUAL.TXT)

    Nach dem Entpacken der vier Dateien, die im Paket w32cbas359b3.zip

    enthalten sind, starten wir unverzglich basicw.exe. Eine Installation

    entfllt. Zeile fr Zeile geben wir jeweils gefolgt von folgen-

    des Programm ein:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    # Chipmunk Basic version of 99 Bottles of beer (Bottles.bas)

    # Philipp Winterberg, http://www.winterbergs.de

    1

    2 FOR b=99 TO 1 STEP -1

    3 ? b;" bottle(s) of beer on the wall,"

    4 ? b;" bottle(s) of beer."

    5 ? "Take one down, pass it around,"

    6 ? b-1;" bottle(s) of beer on the wall." : ? " "

    7 NEXT

    --------------------------- *schnapp* -----------------------------

    Schon am Ziel? Aber sicher: Mit dem Befehl run starten wir

    die Ausfhrung unseres kleinen Programmes.

  • 27

    Anschlieend knnen Sie im Manual (BASIC-MANUAL.TXT) schmkern

    oder die FAQ in der Datei README.TXT lesen.

    11: COCOA Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    COCOA; 1997; 0,0MB; Interpreter

    Windows

    Gratis; Freeware

    http://www.mcmanis.com/~cmcmanis/java/javaworld/ex

    amples/BASIC.html

    COCOA ist ein simpler BASIC Interpreter in Form

    eines Java Applets

    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:

    06:

    07:

    08:

    09:

    10:

    ' COCOA version of 99 Bottles of beer (Bottles.cocoa)

    ' Philipp Winterberg, http://www.winterbergs.de

    '

    ' How to use:

    ' 1. Go to http://www.mcmanis.com/~cmcmanis/java

    /javaworld/examples/BASIC.html

    ' 2. Copy only the code line below

    ' 3. Paste it into COCOA window

    ' 4. Press enter and enjoy ;)

    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* -----------------------------

    28

    12: ComWic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    ComWic 3.2; 2002; 0,5MB; Interpreter

    DOS

    Gratis; Freeware

    http://qb4all.com/files/download.asp?fileid=372

    Niemand wei, wofr ComWic steht +++ 500 (!) Va-

    riablen statt lcherliche 30 [...] Ca. 100 (!) Be-

    fehle (readme.txt)

    Was bedeutet ComWic? Wir entpacken Comwic.zip und schauen in der

    Datei readme.txt nach. Keine Antwort. Widmen wir uns zunchst unserem

    Programm: Da ComWic sehr spartanisch ausgelegt ist, empfiehlt es sich,

    folgende Programmzeilen im Texteditor in eine frisch angelegte Datei mit

    dem Namen bottles.cwx einzugeben:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    17:

    18:

    19:

    20:

    > ComWic version of 99 Bottles of beer (Bottles.cwx)

    > Philipp Winterberg, http://www.winterbergs.de

    >

    CLS

    MOV 1,99

    *LOOP

    ECHO 1

    ECHO

    > bottle(s) of beer on the wall,

    ECHO 1

    ECHO

    > bottle(s) of beer.

    > Take one down, pass it around,

    SUB 1,1

    ECHO 1

    ECHO

    > bottle(s) of beer on the wall.

    IF NUM,$1,

    GOTO LOOP

    --------------------------- *schnapp* -----------------------------

    Speichern Sie die Datei. Per Drag & Drop ziehen wir bottles.cwx nun

    im Explorer ber die Datei COMWIC.EXE und lassen sie fallen. Der Inter-

    preter fhrt unser Programm sogleich aus. Da unser PC schnell ist, sehen

    wir nicht viel davon, denn Windows schliet das Fenster nach der Ausfh-

    rung sofort wieder. Macht aber nichts.

  • 29

    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 starten. Aber dann sollten Sie sp-

    testens abreisen. Der ComWic Interpreter ist instabil und buggy, die Da-

    teien 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:

    Curl 3.0.1; 2004; 6,0MB; Interpreter

    Windows

    Gratis; Freeware

    http://www.curl.com/html

    The Surge Runtime Environment (RTE) enables your

    Web browser to display applets written in the

    Curl Language. (load-about-curl.curl)

    Ein entspannter Spaziergang: Wir starten den Curl Installer Surge-3-0-

    1-English-Full-Installer-13.exe, sagen einige Male Ja und

    Danke und schreiben nebenbei im Texteditor unser Programm:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    || Curl version of 99 Bottles of beer (Bottles.curl)

    || Philipp Winterberg, http://www.winterbergs.de

    {curl 3.0 applet}

    {value

    let b:int=99

    let song:VBox={VBox}

    {while b > 0 do

    {song.add b & " bottle(s) of beer on the wall,"}

    {song.add b & " bottle(s) of beer."}

    {song.add "Take one down, pass it around,"}

    set b = b - 1

    {song.add b & " bottle(s) of beer on the wall."}

    }

    song

    }

    --------------------------- *schnapp* -----------------------------

    Das Programm sichern wir in einer neuen Textdatei mit dem Namen

    bottels.curl. Jetzt gengt ein Doppelklick auf diese Datei, um die Aus-

    30

    fhrung des Programms zu starten. Es ffnet sich ein Browserfenster und

    der Songtext erscheint. Kindergarten. :-)

    14: D Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    D 0.82; 2004; 5,3MB; Compiler

    DOS

    Gratis; Freeware

    http://www.digitalmars.com/d

    Auch bekannt unter dem Namen Digital Mars D +++

    "Great, just what I need.. another D in program-

    ming." (intro.html)

    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:

    // D version of 99 Bottles of beer (Bottles.d)

    // Philipp Winterberg, http://www.winterbergs.de

    int main()

    {

    for (int b = 99; b > 0; b--)

    {

    printf("%d bottle(s) of beer on the wall,\n", b);

    printf("%d bottle(s) of beer.\n", b);

    printf("Take one down, pass it around,\n");

    printf("%d bottle(s) of beer on the wall.\n\n", (b-1));

    }

    return 0;

    }

    --------------------------- *schnapp* -----------------------------

    Jetzt ffnen wir eine DOS-Box (z.B. ber Start | Ausfhren...

    cmd ) und wechseln in das Unterverzeichnis dmd\bin des

    Verzeichnisses, in das wir D entpackten. Dort erwartet uns bereits der D

    Compiler. Mit dem Aufruf dmd bottles.d starten wir ihn.

  • 31

    Er murmelt etwas erschreckend Unverstndliches wie D:\dmd\bin\..

    \..\dm\bin\link.exe bottles,,,user32+kernel32/noi; und

    schweigt dann. Daran, dass eine neue Datei mit dem Namen bottles.exe im

    Verzeichnis liegt, sehen wir, dass der Vorgang scheinbar trotz der krypti-

    schen Meldung erfolgreich war. Wir berprfen dies, indem wir unser Pro-

    gramm mit dem Befehl bottles 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!

    15: D++ Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    D++ 4.1; 2004; 0,1MB; Compiler

    Windows

    Gratis; Freeware

    http://www.pagemac.com/dpp/download.php

    Falls D++ Fehlermeldungen ausgibt, laden Sie von

    der D++ Downloadseite die in der Fehlermeldung ge-

    nannte Datei herunter (z.B. mswinsck.ocx) und

    speichern Sie diese im Windows Systemverzeichnis

    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 fol-

    genden Zeilen:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    ' D++ version of 99 Bottles of beer (Bottles.dpp)

    ' Philipp Winterberg, http://www.winterbergs.de

    title "99 Bottles of Beer";

    newvar b = 99;

    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

    11:

    12:

    13:

    14:

    b--;

    screenput b & " bottle(s) of beer on the wall."; screen;

    screen;

    doevents;

    loop

    --------------------------- *schnapp* -----------------------------

    startet unser Programm. Der Compiler erzeugt nebenbei automatisch

    die Datei D++APP1.EXE und meldet zufrieden: D++ Finished. Found 0 error(s). Compile Time: 7747812 milliseconds. Das

    die Compile Time stimmt, ist allerdings zweifelhaft.

    Eine Variationsmglichkeit: Whlen Sie Project | Use DOS Mode im

    Men, so wird eine DOS-Executable generiert. Der Menpunkt Help |

    Online Help entfhrt Sie ins Internet zur ausfhrlichen D++ Dokumen-

    tation. Gnnen Sie sich eine Weile, D++ macht Spa.

    16: DarkBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    DarkBasic 1.13; 2002; 4,9MB; Compiler

    Windows

    $49,99; Shareware

    http://darkbasic.thegamecreators.com/?f=trial

    Diese Version ist auf 30 Tage bzw. 60 Starts be-

    schrnkt, doch das strt uns kein Stck

    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 Raumschiff-

    brcke erinnert. Die DarkBasic Einleitung, die sogleich angezeigt wird, le-

    sen wir vielleicht spter. Zunchst klicken wir oben links auf Edit und

    geben unser Programm ein:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    rem DarkBasic version of 99 Bottles of beer (Bottles.dba)

    rem Philipp Winterberg, http://www.winterbergs.de

  • 33

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    a$=" bottle(s) of beer" : c$=" on the wall"

    for b=99 to 1 step -1

    print b, a$, c$, ","

    print b, a$, "."

    print "Take one down, pass it around,"

    print b-1, a$, c$, "."

    wait (1000) : cls rgb(0,0,0)

    next b : end

    --------------------------- *schnapp* -----------------------------

    Mit starten wir das Programm. Gemchlich baut sich der Songtext

    Strophe fr Strophe auf. Das brechen wir mit und ab, denn

    wir haben noch etwas vor: Mit 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 gene-

    rierte 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.

    17: Delphi Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Delphi 2005 Personal; Compiler

    Windows

    Gratis; Freeware

    http://www.borland.com/downloads/download_delphi.h

    tml

    -

    Dies ist ein richtig dicker Mainstream-Fisch der Programmiersprachenwelt.

    Support, How-Tos, Foren, Tipps und Tricks-Listen etc. finden Sie auf

    Millionen Internetseiten. Keine echte Herausforderung. Deshalb: Ab hier

    gehen Sie ganz allein!

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    // *short* Delphi version of 99 Bottles of beer (Bottles.dpr)

    // Philipp Winterberg, http://www.winterbergs.de

    34

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    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.

    --------------------------- *schnapp* -----------------------------

    18: Dialect Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Dialect

    DOS

    Gratis; Freeware

    Verschollen

    -

    Dies ist ein ganz ganz ganz winziger Off-Mainstream-Fisch der Program-

    miersprachenwelt. Support, How-Tos, Foren, Tipps und Tricks-Listen

    etc. finden Sie auf keiner einzigen Internetseite. Die Sprache scheint kom-

    plett verschollen. Eine echte Herausforderung. Deshalb: Ab hier forschen

    Sie ganz allein!

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    # Dialect version of 99 Bottles of beer (Bottles.d)

    # Philipp Winterberg, http://www.winterbergs.de

    Import "outputs"

    Output = outputs.screen()

    Output.startDoc("99 Bottles of Beer")

    for b = 1 to 99

    print (100-b), " bottle(s) of beer on the wall,", cr

    print (100-b), " bottle(s) of beer.", cr

    print "Take one down, pass it around,", cr

  • 35

    11:

    12:

    13:

    print (99-b), " bottle(s) of beer on the wall.", cr, cr

    endfor

    Output.EndDoc()

    --------------------------- *schnapp* -----------------------------

    19: DiNGS Game Basic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    DiNGS Game Basic 5.10522; 2001; 6,4MB; Compiler

    Windows

    40,00 ; Shareware

    http://www.dream-d-sign.de/DINGS/Infos/infos.html

    -

    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. fr eine neue Datei. Unser Programm freut sich ber

    dezentes Syntax Highlighting. bottles.src, Create,

    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 kann man das Programm beenden.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    // DiNGS Game Basic version of 99 Bottles of beer (Bottles.src)

    // Philipp Winterberg, http://www.winterbergs.de

    BLACKSCREEN

    FOR b=99 TO 1 STEP -1

    PRINT b, 23, 23; PRINT " bottle(s) of beer on the wall,", 23,

    23

    PRINT b, 23, 63; PRINT " bottle(s) of beer.", 23, 63

    PRINT "Take one down, pass it around,", 23, 103

    PRINT b-1, 23, 143; PRINT " bottle(s) of beer on the wall.",

    23, 143

    SHOWSCREEN; MOUSEWAIT

    NEXT; END

    --------------------------- *schnapp* -----------------------------

    36

    20: DPas Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    DPas 1.7; 2000; 0,2MB; Compiler

    DOS

    Gratis; Freeware

    http://www.geocities.com/SiliconValley/Bay/9159/dp

    as_de.html

    Dpas 1.7 wird in der Dokumentation stellenweise

    als Alpha-, dann wieder als Beta-Version bezeich-

    net, erwarten Sie also keine Wunder

    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* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    { DPas version of 99 Bottles of beer (Bottles.pas) }

    { Philipp Winterberg, http://www.winterbergs.de }

    program Bottles;

    uses crt32;

    var b: byte = 99;

    begin

    while b > 0 do

    begin

    writeln(b, ' bottle(s) of beer on the wall, ');

    writeln(b, ' bottle(s) of beer.');

    writeln('Take one down, pass it around,'); dec(b);

    writeln(b, ' bottle(s) of beer on the wall.');

    writeln(' ');

    end;

    end.

    --------------------------- *schnapp* -----------------------------

    Kommandozeile: dpas bottles BOTTLES.EXE; wird generiert

    Wieder Kommandozeile: bottles Programmausfhrung!

    Roter Songtext. Yeah! Glckwunsch!

  • 37

    21: EasyBatch Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    EasyBatch 4.3 XXL; 2003; 4,0MB; Interpreter

    Windows

    29,90; Shareware

    http://www.easybatch.de

    28 Tage Evaluation +++

    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:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    17:

    18:

    19:

    20:

    21:

    ' EasyBatch version of 99 Bottles of beer (Bottles.wsb)

    ' Philipp Winterberg, http://www.winterbergs.de

    '

    GLOBALPROZEDUR(main)

    DIM(b;99)

    CONST(@A;STRCAT(" bottle";NUM2CHAR(40);"s";NUM2CHAR

    (41);" of beer"))

    CONST(@C;STRCAT(@A;" on the wall"))

    CONST(@D;STRCAT(NUM2CHAR(13);NUM2CHAR(10)))

    CONST(@E;"Take one down, pass it around,")

    CONST(@K;",")

    CONST(@P;".")

    CONST(@T;"99 Bottles of Beer")

    DOWHILE(%b%;>;0)

    DISPLAYSHOW(@T;STRCAT(CSTR(%b%);@C;@K;@D;

    CSTR(%b%);@A;@P;@D))

    WAIT(1)

    DEC(b)

    DISPLAYSHOW(@T;STRCAT(@E;@D;CSTR(%b%);

    @C;@P;@D))

    WAIT(1)

    LOOP()

    DISPLAYCLOSE()

    ENDSUB()

    --------------------------- *schnapp* -----------------------------

    Sollten einige Zeilen rot gefrbt sein, bedeutet dies, das EasyBatch diese

    Zeile nicht versteht. Vermutlich haben Sie sich vertippt. Men: Ausfhren

    38

    | Ausfhren (oder blauer Pfeil Button in der Leiste). Im Speichern Dialog

    auf Nein klicken;

    In einem mittelschnen Dialogfenster wird nun der Songtext Stck fr

    Stck angezeigt. Viel Spa beim Mitsingen.

    22: eC Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    eC 1.14; 1996; 0,6MB; Interpreter

    DOS/Windows

    Gratis; Freeware

    http://sunset.backbone.olemiss.edu/~bobcook/eC

    The eC language grew out of a practical need for

    a general, efficiently implemented, systems

    programming language that could be used for

    education from the high-school to graduate level

    (EC.DOC)

    Gespannt entpacken wir die frisch heruntergeladene Archiv-Datei

    gold5.zip. Anschlieend erzeugen wir mit einem beliebigen Texteditor eine

    Datei, fllen sie mit unserem hbschen Quelltext und speichern sie unter

    dem Namen Bottles.ec. Jetzt starten wir C.EXE. Am Prompt in> geben

    wir bottles.ec ein.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    // eC version of 99 Bottles of beer (Bottles.ec)

    // Philipp Winterberg, http://www.winterbergs.de

    #include

    #include

    unsigned int b;

    void main () {

    for (b = 99; b > 0; b--) {

    cout

  • 39

    --------------------------- *schnapp* -----------------------------

    Es wird daraufhin unter anderem + bottle.OBJ 107 ausgegeben und eine

    Datei bottle.OBJ generiert. Danke. Weiter: Wir fhren R.EXE aus. Die

    Frage Trace y/n? beantworten wir unwillig mit n . Am Prompt

    in> geben wir souvern bottle.obj ein. Der Songtext wird

    augenblicklich ausgegeben. Schn. Weitere Infos zur Sprache in der Datei

    EC.DOC.

    23: elastiC Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    elastiC 0.0.14; 2000; 0,2MB; Interpreter

    DOS

    Gratis; Freeware

    http://www.elasticworld.org

    elastiC is a portable high-level object-oriented

    interpreted language with a C like syntax

    (elasticworld.org)

    Vorfreudig entpacken wir die frisch heruntergeladene ZIP-Datei

    elastic.zip und erzeugen mit einem reisetauglichen Texteditor eine Datei,

    fllen sie mit unserem Quelltext und speichern sie unter dem Namen

    bottles.ec. Diese Datei ziehen wir nun im Explorer per Drag & Drop auf

    ec.exe im unterverzeichnis \BIN fertig.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    // elastiC version of 99 Bottles of beer (Bottles.ec)

    // Philipp Winterberg, http://www.winterbergs.de

    package bottles;

    import basic;

    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");

    }

    --------------------------- *schnapp* -----------------------------

    40

    24: Ethos Basic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Ethos Basic 1.3; 6,8MB; Compiler

    Windows

    24.99; Shareware

    http://www.ethosbasic.com/phome.htm

    5 Trials

    Wir starten die Installation durch Ausfhren der Datei ethos_setup.exe.

    Bis zum Abschluss durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.) und

    Start | Programme | ethosBASIC | ethosBASIC Editor starten. Zunchst

    sucht ethos Basic nach Updates, dann verkndet es, nicht registriert zu sein

    und nur 5 Starts zuzulassen, bevor es sich selbst deaktiviert. Soll es doch.

    Die im nchsten Dialog verlangten Registrierinformationen besitzen wir

    nicht, also Cancel. im Fenster mit dem Titel Untitled Program geben

    wir in grner Schrift auf schwarzem Grund folgenden Code ein:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    rem 'Ethos Basic version of 99 Bottles of beer (Bottles.eto)'

    rem 'Philipp Winterberg, www.winterbergs.de'

    for b = 99 to 1 step -1

    output b;" bottle(s) of beer on the wall,"

    output b;" bottle(s) of beer."

    output "Take one down, pass it around,"

    output b-1;" bottle(s) of beer on the wall." : output " "

    next

    --------------------------- *schnapp* -----------------------------

    Okay, zugegeben: An einigen Stellen ist der eingegebene Code auch rot,

    wei, trkis oder hellgrn. macht aber nix. Mit starten wir unser

    Programm: 0,000000 bottle(s) of beer on the wall. Da ist wirklich

    gar kein Bier mehr.

  • 41

    25: Euphoria Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Euphoria 2.4; 2003; 0,9MB; Interpreter

    DOS/Windows

    Gratis; Public Domain

    http://www.rapideuphoria.com

    Simple, flexible, and easy to learn.

    Outperforms all popular interpreted

    languages. (FILE_ID.DIZ)

    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 Text-

    editor 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.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    -- Euphoria version of 99 Bottles of beer (Bottles.ex)

    -- Philipp Winterberg, http://www.winterbergs.de

    for b = 1 to 99 do

    printf(1, "%2d bottle(s) of beer on the wall,\n", 100-b)

    printf(1, "%2d bottle(s) of beer.\n", 100-b)

    puts(1, "Take one down, pass it around,\n")

    printf(1, "%2d bottle(s) of beer on the wall.\n\n", 99-b)

    end for

    --------------------------- *schnapp* -----------------------------

    Euphoria ist schnell. Ob aber der euphorische Spruch, der oben bei den

    Bemerkungen zitiert ist, tatschlich so zutrifft, bleibt fraglich.

    42

    26: FirstBasic/PowerBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    FirstBasic 1.0; 1996; 0,2MB; Compiler

    DOS

    $25,00; Shareware

    http://www.powerbasic.com/files/pub/pbdos

    bzw. http://www.powerbasic.com

    A true machine code Basic compiler. Stop using

    the QBasic interpreter and step up to the speed of

    compiled code. Leave behind 64k string

    limitations and feel the "Power" of built-in Array

    Sorting & Searching (FILE_ID.DIZ) +++ 30 Tage

    Evaluation

    Erwartungsvoll entpacken wir die frisch heruntergeladene FirstBasic

    Archiv-Datei firstbas.zip und fhren FIRSTBAS.EXE aus. Huch, sind wir

    hier bei SuperEASY (vgl. Reiseziel 68)? Oder in Bayern? Alles ist

    wei/blau. Wir geben unser Programm in gelb ein:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    ' FirstBasic/PowerBasic version of 99 Bottles of beer

    (Bottles.bas)

    ' Philipp Winterberg, http://www.winterbergs.de

    KEY OFF : COLOR 7, 0 : CLS

    FOR b% = 99 TO 1 STEP -1

    PRINT STR$(b%) + " bottle(s) of beer on the wall,"

    PRINT STR$(b%) + " bottle(s) of beer."

    PRINT "Take one down, pass it around,"

    PRINT STR$(b%-1) + " bottle(s) of beer on the wall."

    PRINT " "

    NEXT b%

    END

    --------------------------- *schnapp* -----------------------------

    Mit starten wir es. Fertig. Eine .EXE Datei erzeugen wir, indem wir

    zunchst mit das Compile Men ffnen und dann die

    Destination von Memory auf EXE file umstellen. Nun den Compiler

    mit 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

  • 43

    27: FranzBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    FranzBasic; 1989; 0,1MB; Interpreter

    DOS

    DM 99,00; Shareware

    http://mitglied.lycos.de/movaxworldhq/basic_compil

    er.htm

    einer der leistungsfhigsten Basic-

    bersetzer, die Sie am Markt finden werden

    (LIESMICH.TXT)

    Interessiert entpacken wir die soeben frisch heruntergeladene ZIP-Datei

    franzbas.zip. FranzBasic spricht wie man es erwarten sollte deutsch,

    gibt sich schwarz/blau und soll 99 DM kosten. Lustig. Wir starten

    BASIC.EXE und geben unseren Code in wei ein, dann rufen wir den

    Compiler mit auf. Das Programm starten? Mit .

    Nichts gesehen? Output anzeigen mit ; 0.000000 bottle(s)

    of beer on the wall.. Null Komma nix. Alles klar.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    ' FranzBasic version of 99 Bottles of beer (Bottles.bas)

    ' Philipp Winterberg, http://www.winterbergs.de

    colour 0, 7 : mouse off : cls

    for b = 1 to 99

    print

    print str$(100-b) + " bottle(s) of beer on the wall,"

    print str$(100-b) + " bottle(s) of beer."

    print "Take one down, pass it around,"

    print str$(99-b) + " bottle(s) of beer on the wall."

    endfor

    --------------------------- *schnapp* -----------------------------

    28: Free Pascal Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Free Pascal 1.0.10; 2003; 26,8MB; Compiler

    Windows

    Gratis; Freeware

    http://www.freepascal.org

    a freeware 32-bit pascal compiler for Intel 80386

    and compatibles as well as for Motorola 68020 and

    compatibles (readme.txt)

    44

    Neugierig entpacken wir die frisch heruntergeladene Archiv-Datei mit dem

    wenig klangvollen Namen w321010full.zip und starten die Installation

    durch Ausfhren der Datei install.exe. Jetzt durchklicken (Okay, Ja,

    Weiter, Danke, Fertig etc.) und anschlieend fp.exe im Verzeichnis

    C:\pp\bin\win32 starten; Wow! ASCII Art. File | New whlen wir

    wissend und geben ein:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    (* Free Pascal version of 99 Bottles of beer (Bottles.pp) *)

    (* Philipp Winterberg, http://www.winterbergs.de *)

    program Bottles;

    var b: byte;

    begin

    b:= 99;

    while b > 0 do

    begin

    writeln(b, ' bottle(s) of beer on the wall, ');

    writeln(b, ' bottle(s) of beer.');

    writeln('Take one down, pass it around,'); dec(b);

    writeln(b, ' bottle(s) of beer on the wall.' + #13#10)

    end

    end.

    --------------------------- *schnapp* -----------------------------

    Mit speichern wir das Programm, geben bottles als Dateinamen ein,

    klicken den grnen Button OK und fhren es mit 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.

  • 45

    29: GABasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    GABasic 0.30 Beta 2; 2000; 0,4MB; Compiler

    Windows

    Gratis; Freeware

    http://mitglied.lycos.de/movaxworldhq/basic_compil

    er.htm

    Luft nicht unter Windows 98

    Reiselustig entpacken wir die frisch heruntergeladene GABasic-Paket-Datei

    gabasic.zip und starten Gb.exe. Nachdem wir File | New whlten und

    unseren Quellcode eingaben, speichern wir ihn mit File | Save As unter

    dem Namen bottles. Jetzt GABASIC.EXE doppelklicken. Bei Basic File:

    bottles.bas eingeben. Die folgenden Meldungen (ASM/EXE File)

    besttigen wir jeweils mit . Es wird die Datei Bottles.exe (13kb)

    generiert, die meist leider nicht unter Windows XP luft. Schade.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    ' GABasic version of 99 Bottles of beer (Bottles.bas)

    ' Philipp Winterberg, http://www.winterbergs.de

    cls

    for b = 99 to 1 step -1

    temp = b - 1

    print " "

    print str$(b) + " bottle(s) of beer on the wall,"

    print str$(b) + " bottle(s) of beer."

    print "Take one down, pass it around,"

    print str$(temp) + " bottle(s) of beer on the wall."

    next

    sleep

    --------------------------- *schnapp* -----------------------------

    Eine kleine GABasic-Anleitung wartet in der Datei gabasic.txt vielleicht

    vergeblich auf Sie.

    46

    30: GBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    GBasic 1.3b; 1997; Interpreter

    DOS

    Gratis; Freeware

    http://mitglied.lycos.de/movaxworldhq/basic_compil

    er.htm

    A fast multimedia BASIC programming environment

    (README.TXT)

    Entspannt entpacken wir die frisch heruntergeladene Datei gbasic.zip.

    Eine Installation ist nicht ntig. Hallo GBasic!

    Wir erzeugen mit einem Texteditor eine Datei, fllen sie mit unserem

    Quelltext und speichern sie unter dem Namen bottles.b ab.

    Kommandozeile: gbasic bottles.b Das Programm luft: blaue

    Schrift auf schwarzem Grund. Old-School Schriftart. O-ho.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    REM GBasic version of 99 Bottles of beer (Bottles.b)

    REM Philipp Winterberg, http://www.winterbergs.de

    color(255, 0) : screen 13

    for b = 99 to 1 step -1 : print

    print str$(b) + " bottle(s) of beer on the wall,"

    print str$(b) + " bottle(s) of beer."

    print "Take one down, pass it around,"

    print str$(b-1) + " bottle(s) of beer on the wall."

    next : wait_key

    --------------------------- *schnapp* -----------------------------

    31: GFA Basic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    GFA Basic for Windows 4.38; 1995; 1,1MB; Compiler

    Windows

    Gratis; Freeware

    http://www.baphead.freeserve.co.uk/download.html

    -

    Erwartungsvoll entpacken wir die frisch heruntergeladene Archiv-Datei

    baswin_e.zip und starten die Installation durch Ausfhren der Datei

    INSTALL.EXE. Jetzt durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.).

  • 47

    Start | Programme | GFABasic | GFA Trial OK zur About-Box

    Quelltext eingeben zum Ausfhren wird in einem neuen

    Fenster ausgegeben Super!

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    // GFA Basic version of 99 Bottles of beer (Bottles.gfa)

    // Philipp Winterberg, http://www.winterbergs.de

    SCREEN 18

    CLS

    b := 99

    WHILE b > 0

    ? b; " bottle(s) of beer on the wall,"

    ? b; " bottle(s) of beer."

    ? "Take one down, pass it around,"

    b--

    ? b; " bottle(s) of beer on the wall."

    ?

    WEND

    --------------------------- *schnapp* -----------------------------

    32: GPLZ.easy Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    GPLZ.easy 1.4;

    Windows; Python

    Gratis; Freeware

    http://p-nand-

    q.com/humor/languages/gplz/gplz_easy.html

    GPLZ steht fr The Great Python Language Zoo +++

    Esoterische Programmiersprache

    Da der GPLZ-Interpreter in Python geschrieben wurde, bentigen wir

    zunchst eine aktuelle Version von http://www.python.org/download:

    Python-2.3.3.exe. Starten Sie den Installer und klicken Sie sich durch.

    Jetzt entpacken wir die GPLZ-Datei gplz.zip und erzeugen mit einem

    Texteditor eine weitere Datei, fllen sie mit unserem Quelltext und

    speichern sie unter dem Namen bottles.easy ab.

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    # GPLZ.easy version of 99 Bottles of beer (Bottles.easy)

    # Philipp Winterberg, http://www.winterbergs.de

    48

    04:

    05:

    06:

    07:

    08:

    09:

    f(x):

  • 49

    34: HQ9+ Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    HQ9+ 0.1; 0,1MB; Interpreter

    Windows; Objective Caml

    Gratis; Freeware

    http://www.cliff.biffle.org/esoterica/hq9plus.html

    Esoterische Programmiersprache

    Da der HQ9+-Interpreter in Objective Caml geschrieben wurde, bentigen

    wir zunchst eine installierte, aktuelle Version dieser Sprache. Wir starten

    die Installation durch Ausfhren der Datei ocaml-3.07pl2-win-msvc.exe.

    Jetzt durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.).

    Wir erzeugen danach mit einem Texteditor eine Datei, fllen sie mit

    unserem Mini-Quelltext und speichern sie unter dem Namen bottles.hq9+

    im Verzeichnis C:\Programme\Objective Caml\bin ab.

    Der Interpreter erlaubt brigens offiziell keine Kommentare, meckert aber

    nicht, wenn man den Kommentar hinter den letzten Befehl setzt:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    9

    // HQ9+ version of 99 Bottles of beer (Bottles.hq9+)

    // Philipp Winterberg, http://www.winterbergs.de

    --------------------------- *schnapp* -----------------------------

    Als letzte Vorbereitung kopieren wir nun die heruntergeladene

    Interpreterdatei hq9plus.ml ebenfalls ins Unterverzeichnis \bin.

    An der Kommandozeile kommandieren wir kryptisch dem Interpreter:

    ocaml hq9plus.ml bottles.hq9+ Das funktioniert!

    Die objektorientierte Nachfolgesprache ist HQ9++, dokumentiert unter

    http://www.dangermouse.net/esoteric/hq9plusplus.html. Da HQ9++

    abwrtskompatibel ist, ist unser HQ9+-Programm auch in dieser weiter

    entwickelten Sprache voll funktionstchtig. Sehr gut.

    50

    35: HTA Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    HTML Application; Interpreter

    Windows

    Gratis; Freeware

    http://msdn.microsoft.com/workshop/author/hta/over

    view/htaoverview.asp

    -

    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:

    99 Bottles of Beer

    --------------------------- *schnapp* -----------------------------

    36: HTBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    HTBasic for Windows 9.0; 2002; 14,4MB; Interpreter

    Windows

    Variabel; Demo

    http://www.techsoft.de/htbasic/german

    Einschrnkung der Demo: Eine Sitzung ist auf 30

    Minuten beschrnkt; Programme knnen nicht gespei-

    chert werden

  • 51

    Wir starten die Installation durch Ausfhren der Datei HTBasic90d.exe.

    Jetzt durchklicken (Okay, Ja, Weiter, Danke, Fertig etc.). Start | Programme

    | TransEra HTBasic 9.0 | HTBasic ausfhren fr neue

    Datei, dann fr den Edit Mode Programm eingeben:

    --------------------------- *schnipp* -----------------------------

    01:

    02:

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    13:

    14:

    ! HTBasic version of 99 Bottles of beer (Bottles.bas)

    ! Philipp Winterberg, http://www.winterbergs.de

    CLEAR SCREEN

    DISPLAY FUNCTIONS OFF

    A$=" bottle(s) of beer"

    C$=" on the wall"

    FOR B=99 TO 1 STEP -1

    PRINT B;A$;C$;","

    PRINT B;A$;"."

    PRINT "Take one down, pass it around,"

    PRINT B-1;A$;C$;".";CHR$(13);CHR$(10)

    NEXT B

    END

    --------------------------- *schnapp* -----------------------------

    Programm starten mit . Schon fertig. ber Help | Contents &

    Index bekommt man bei Bedarf sehr ausfhrlich Hilfe.

    37: IBasic Reiseziel:

    Ausrstung:

    Kosten:

    Anreise:

    Bemerkungen:

    Ibasic 2.02B; 2003; 2,7MB; Interpreter

    Windows

    $39,99; Shareware

    http://www.pyxia.com/ibasic.html

    30 Tage Trial

    Mit leuchtenden Augen entpacken wir die frisch heruntergeladene Archiv-

    Datei 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:

    02:

    REM IBasic version of 99 Bottles of beer (Bottles.iba)

    REM Philipp Winterberg, http://www.winterbergs.de

    52

    03:

    04:

    05:

    06:

    07:

    08:

    09:

    10:

    11:

    12:

    OPENCONSOLE