GW-BASIC
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!"), andere vermuten aber stark, dass es nicht zufällig die Initialien 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.
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 integrierte Entwicklungsumgebung. Alle Programmzeilen müssen mit Zeilennummern beginnen. Eingaben ohne Zeilennummer werden direkt ausgeführt. Ausser 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. Funktionsdefinitionen 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 einer Gruppe von Variablen ein Typ abhängig vom ersten Zeichen des Namens zugewiesen 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.
Weblinks
- http://www.geocities.com/KindlyRat/GWBASIC.html GW-BASIC, Programm und Tutorials