# GFA-BASIC

GFA-BASIC ist ein Dialekt der Programmiersprache BASIC, entwickelt von Frank Ostrowski. Die erste Version wurde 1986 vollendet und für den Atari ST herausgebracht. Mitte und Ende der 1980er Jahre wurde die Programmiersprache für diesen Heimcomputer sehr populär, auch weil das ST BASIC, das bei den Computern mitgeliefert wurde, recht fehlerhaft und beschränkt war. Später wurden auch Portierungen für den Commodore Amiga, DOS und Windows vermarktet.
Offiziell sind Interpreter und zugehöriger Compiler, wie sie seinerzeit von der Firma GFA-Systemtechnik vertrieben wurden, heute nicht mehr verfügbar. Von kleinen Entwicklergemeinden gepflegt, existieren jedoch Weiterentwicklungen unter dem Namen GFA-Basic.

## Eigenschaften

Die Sprache übernimmt wie viele andere moderne BASIC-Dialekte die Kontrollstrukturen von Pascal und C. Damit erlaubt GFA-BASIC strukturiertes Programmieren und zum Beispiel den Verzicht auf den Sprungbefehl „Goto“.
Es fehlen gänzlich die klassischen Zeilennummern, und anfangs war pro Zeile nur ein Befehl erlaubt. In späteren Versionen gab es einen Befehlsseparator, um mehrere Befehle in einer Zeile unterzubringen. Als Sprungmarken dienen analog zu den meisten anderen Programmiersprachen „Labels“, also Zeilen, die einen Sprungmarkennamen enthalten.
Unterprogramme werden analog zu Pascal als Prozeduren und Funktionen definiert, wobei Funktionen im Gegensatz zu Prozeduren einen Rückgabewert haben. Beide akzeptieren Parameter, wahlweise per Wert- oder auch per Referenz-Übergabe. Lokale Variablen sind ebenfalls möglich.
Die Datentypen umfassen bei GFA-Basic für Windows 32-Bit die einfachen Typen: Boolean, Byte, Short, Card, Integer, Long, Handle, Large, Float, Single, Pointer, Currency, Date, String, Fixed-Length-String, Variant; Strukturen (= Types) sind ebenfalls definierbar.
Editor und Interpreter sind ein einziges Programm, welches bereits bei der Programmierung Fehler meldet und Befehle vervollständigt. Ein Run-Only-Interpreter kann den Quellcode unabhängig vom eingebauten Interpreter ausführen. Der GFA-Compiler für das GFA-Basic erzeugt aus dem Quellcode schnellere, ausführbare Programme.

## Trivia

* Die Version 3.x für Windows ermöglicht auch einzeilige Fallunterscheidungen und die Definition von mehrzeiligen Funktionen.
* Eine kostenfreie Version für Projekte bis zu 1000 Zeilen war u. a. über die „Goldene Serie“ von Data Becker zumindest in Deutschland verfügbar.
* Durch Zugriff auf das Windows-API lassen sich mit der 16-Bit-Variante für Windows 3.x noch heute Programme schreiben und kompilieren, die auf alten 32-Bit-Windows-Systemen lauffähig sind.

## Geschichte

Seit 1986 existieren auch Versionen für MS-DOS, Windows und Amiga-Betriebssysteme. Für Windows ab Windows 3.0 existieren ein 16-Bit-Interpreter und Compiler sowie ein 32-Bit-Interpreter und Compiler, womit kompakte ausführbare Dateien erzeugt werden können.
GFA-Basic war in den erfolgreichsten Jahren des Atari ST sehr verbreitet, nicht zuletzt wegen des für die damalige Zeit komfortablen Editors, der Neuerungen wie etwa Code-Faltung einführte. Wegen der aus Betriebssystem-Sicht unsauberen Systembibliotheken sowie der nicht in die übliche GEM-Benutzeroberfläche integrierten Entwicklungsumgebung verlor GFA-Basic in den Mittneunzigern an Popularität zugunsten von Turbo C, Pure C und Modula-2.
Die Entwicklung auf der ATARI-Seite wurde von offizieller Seite nach Version 3.6 TT eingestellt, jedoch von engagierten Programmierern ohne Kenntnis des Quelltexts weitergeführt, indem nach und nach die Module der Bibliothek ausgetauscht wurden und der Interpreter und die IDE binär gepatcht wurden. Die inoffizielle und letzte eigenständige Weiterentwicklung des GFA-Entwicklungspaketes stellen die RUN!Lib, der RUN!Only-Interpreter von RUN! Software sowie GBE von Lonny Pursell dar, letzteres wird Stand 2022 noch gepflegt.
GFA-Basic wurde als 16-Bit- (letzte Version: 4.38) und als 32-Bit-Version (letzte Version: 2.30 vom 25. Juli 2001) für die Programmierung unter Windows bereitgestellt.
Seit Ende 2002 reagiert GFA Software Technologies nicht mehr auf Bestellungen und Kundenanfragen, im Sommer 2005 wurde die offizielle Mailingliste ohne Vorankündigung abgeschaltet.
Seit Ende 2006 führt eine kleine Gruppe die Weiterentwicklung der Windows-Version (32-bit) durch. Bei Google entstanden neue Seiten speziell für GFA-BASIC 32 und GFA-BASIC 16.