GWBasic
aus Wikipedia, der freien Enzyklopädie
GWBasic war zwischen 1983 und 1991 eine BASIC-Version der Firma Microsoft für die ersten IBM-kompatiblen PC. Sie war der Vorläufer von QBasic, bzw. QuickBasic.
BASIC war die erste Programmiersprache für den 1981 erschienenen IBM-PC. Dies war allerdings eine Version, die Microsoft exklusiv für IBM lizenzierte, die BASICA genannt wurde und sich im ROM befand. Als später andere Firmen PC-Klone herstellten, verkaufte Microsoft eine wesentlich erweiterte, aber zum BASICA kompatible BASIC-Version auf Diskette, das GW-BASIC. Woher der Name kommt, bleibt im Dunkeln, Microsoft selbst behauptet, es komme von "Ghee Wiz!", (zu deutsch so ähnlich wie "Potz Blitz!"). Die Initialen "GW" könnten nach Greg Whitten, einem frühen Angestellten von Microsoft, der für die Standards bei den Microsoft Basic Compilern zuständig war, benannt sein. Andere vermuten aber stark, dass der Name GWBasic nicht zufällig die Initialen des Microsoft-Gründers, BASIC-Förderers und -Fans William "Bill" Gates enthält, der einen Vorläufer von GWBasic noch eigenhändig programmiert hatte. Eine weitere Erklärung geht davon aus, dass es sich bei den Initialen GW um die Bezeichnung für "Graphics Workshop" handelt, da GW-BASIC neue Befehle für Zeichen- und Grafikroutinen mitbrachte (CIRCLE, COLOR, DRAW, PAINT, WINDOW).
Für die damaligen Verhältnisse war es ziemlich umfangreich (ca. 60K), bestand aber lediglich aus einer exe-Datei. Es musste noch mit Zeilennummern programmiert werden, war auf die Adressierung von 64K-RAM beschränkt, konnte aber alle aktuellen Standard-Grafikkarten (bis EGA) ansteuern. Die letzte erschienene Version ist die 3.23.
Schon bald begann Microsoft, GWBASIC mit jeder Kopie von MS-DOS mitzuliefern. Unter anderem durch diese allgemeine Verfügbarkeit ohne weitere Anschaffungskosten spielte es bis Mitte der 80er-Jahre eine nicht unwichtige Rolle in kleinen Unternehmen, da viel Betriebssoftware von angestellten Programmierern in GWBASIC geschrieben wurde - bis hin zu "ausgewachsenen" Datenbanksystemen, ähnlich, wie heute kleinere Applikationen in Visual Basic geschrieben werden. Ab 1985 wurde es in seiner Bedeutung allerdings zunehmend von Turbo Pascal der Firma Borland verdrängt.
GW-BASIC hat wie das original BASIC aus dem Dartmouth College eine kommandobasierte Entwicklungsumgebung. Alle Programmzeilen müssen mit Zeilennummern beginnen. Eingaben ohne Zeilennummer werden direkt ausgeführt. Außer einigen Befehlen die mit Funktionstasten ausgelöst werden, ist die Benutzerschnittstelle völlig kommandobasiert. Dateien werden normalerweise in einem komprimiertem GW-BASIC Binärformat, bei dem Befehle mit Bytes verschlüsselt werden, gespeichert. Es gibt aber auch die Möglichkeit Programme im ASCII Format zu speichern. In der GW-BASIC IDE gibt es die Befehle RUN,LOAD,SAVE,LIST,SYSTEM
, wobei SYSTEM
zur Rückkehr ins Betriebssystem verwendet wird. Obwohl alle diese Befehle auch als Anweisungen in einem Programm verwendet werden können, wird dies mit Ausnahme von SYSTEM
nur selten gemacht.
In GW-BASIC gibt es wenig Unterstützung für strukturiertes Programmieren. Deshalb liegt es in der Verantwortung der Programmierer für eine gute Programmstruktur zu sorgen. Alle bedingten Anweisungen wie IF/THEN/ELSE müssen in einer Zeile geschrieben werden. WHILE/WEND Anweisungen können über mehrere Programmzeilen gehen. Definitionen von Funktionen müssen in einer einzige Zeile passen. Dazu dient die DEF FNf(x)=<Funktion von x> Anweisung (z.B.: DEF FNLOG(basis,nummer)=LOG(nummer)/LOG(basis)). Der Typ einer Variablen kann meist am letzten Zeichen des Namens erkannt werden: A$ ist eine Zeichenkette (string), A% ist eine ganze Zahl (integer), usw. Durch DEFINT, DEFSTR, usw. Anweisungen kann der Typ einer Variablen abhängig vom ersten Zeichen des Variablennamens zugeordnet werden. Der Standardtyp von nicht deklarierten Variablen, die keinen Typ durch solche Anweisungen erhalten haben, ist eine einfach genaue Gleitkommazahl.
Weil viele GW-BASIC Programmierer keine Programmierausbildung hatten, sahen sie nicht die Notwendigkeit einer Strukturierung. Deshalb wurden GOTOs
nicht als Ersatz für fehlende Kontrollstrukturen, sondern zahlreich und in undisziplinierter Weise verwendet. Siehe unter Spagetticode.
GW-BASIC konnte mit den damaligen Joysticks und Stifteingabegeräten umgehen, jedoch nicht mit einer Maus. (Es ist zwar möglich eine Maus als Stifteingabegerät zu betreiben, jedoch ist die Zuverlässigkeit der Maus dabei schlecht.) GW-BASIC kann Dateien, LPT Ports und COM Ports lesen und schreiben. Mit der PLAY
Anweisung kann einfache Musik gespielt werden, wobei die Noten als Zeichenkette eingegeben werden (z.B. PLAY "edcdeee2dfedc4"
). Ein Zugriff auf niedrigerer Ebene ist mit der SOUND
Anweisung möglich. Dabei wird die Frequenz in Hertz und die Länge in 'clock ticks' für den Systemlautsprecher angegeben.
Der Platz von GW-BASIC in der MS-DOS Distribution wurde später von QBasic, einer abgemagerten Version des getrennt verkauften QuickBasic, übernommen.
[Bearbeiten] Weblinks
- http://www.gwbasic.at Informationen zu GW-BASIC, Downloadarchiv und Online-Tutorial
- http://www.antonis.de/qbebooks/index.htm#gwbasman GW-BASIC Manual als E-Book
- http://www.geocities.com/KindlyRat/GWBASIC.html GW-BASIC, Programm und Tutorials