GFA BASIC is a
dialect
A dialect is a Variety (linguistics), variety of language spoken by a particular group of people. This may include dominant and standard language, standardized varieties as well as Vernacular language, vernacular, unwritten, or non-standardize ...
of the
BASIC
Basic or BASIC may refer to:
Science and technology
* BASIC, a computer programming language
* Basic (chemistry), having the properties of a base
* Basic access authentication, in HTTP
Entertainment
* Basic (film), ''Basic'' (film), a 2003 film
...
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
, by
Frank Ostrowski. The name is derived from the company ("GFA Systemtechnik GmbH"), which distributed the software. In the mid-1980s to the 1990s it enjoyed popularity as an advanced BASIC dialect, but has been mostly superseded by several other programming languages. Official support ended in the early 2000s.
History
GFA BASIC was developed by
Frank Ostrowski at "GFA Systemtechnik GmbH" (later "GFA Software"), a German company in
Kiel
Kiel ( ; ) is the capital and most populous city in the northern Germany, German state of Schleswig-Holstein. With a population of around 250,000, it is Germany's largest city on the Baltic Sea. It is located on the Kieler Förde inlet of the Ba ...
and
Düsseldorf
Düsseldorf is the capital city of North Rhine-Westphalia, the most populous state of Germany. It is the second-largest city in the state after Cologne and the List of cities in Germany with more than 100,000 inhabitants, seventh-largest city ...
, as a proprietary version of his free BASIC implementation,
Turbo-Basic XL. GFA is an acronym for "Gesellschaft für Automatisierung" ("Company for Automation"), which gave name to the software. The first GFA BASIC version was released in 1986. In the mid and late 1980s it became very popular for the
Atari ST
Atari ST is a line of personal computers from Atari Corporation and the successor to the company's Atari 8-bit computers, 8-bit computers. The initial model, the Atari 520ST, had limited release in April–June 1985, and was widely available i ...
home computer range, since the
Atari ST BASIC shipped with them was more primitive. Later, ports for the
Commodore Amiga
Amiga is a family of personal computers produced by Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-bit or 16/32-bit processo ...
,
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
were marketed. Version 2.0 was the most popular release of GFA BASIC as it offered then many more advanced features compared to alternatives. GFA BASIC 3.0 included further improvements like support for user-defined structures and other agglomerated data types. The final released version was 3.6. Around 2002 GFA software
ceased all GFA BASIC activities and shut down the
mailinglist and website in 2005. Due to official support of GFA BASIC having ceased the user community took over the support and installed an own communication infrastructure.
Features and functionality
As of version 2.0, the most popular release, GFA BASIC was a very modern programming language for its time. Line numbers were not used and one line was equivalent to one command. To greatly simplify maintenance of long listings, the IDE later even allowed for
code folding
Code or text folding, or less commonly holophrasting, is a feature of some graphical user interfaces that allows the user to selectively hide ("fold") or display ("unfold") parts of a document. This allows the user to manage large amounts of text ...
. It had a reasonable range of
structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making specific disciplined use of the structured control flow constructs of selection ( if/then/else) and repet ...
commands —
procedures with local variables and parameter passing by value or reference, loop constructs, etc. Modularization was only rudimentary, making GFA BASIC 2.0 best suited for small and medium-sized projects.
The GFA BASIC
interpreter
Interpreting is translation from a spoken or signed language into another language, usually in real time to facilitate live communication. It is distinguished from the translation of a written text, which can be more deliberative and make use o ...
is compact and reasonably fast, and was shipped with a runtime that could be distributed freely with one's programs. When a
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
was made available, execution speed could be increased by approximately a factor of 2. GFA BASIC allowed extreme optimisations for execution speed, supporting some direct assembler-level calls, and even the ability to embed sections of assembler code directly within the BASIC source code. GFA BASIC integrated neatly into
GEM and
TOS, the
Atari ST
Atari ST is a line of personal computers from Atari Corporation and the successor to the company's Atari 8-bit computers, 8-bit computers. The initial model, the Atari 520ST, had limited release in April–June 1985, and was widely available i ...
's
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
, providing menus, dialog boxes, and mouse control. (See
WIMP
WiMP is a music streaming service available on mobile devices, tablets, network players and computers. WiMP, standing for "Wireless Music Player," was a music streaming service that emphasized high-quality audio. WiMP offered music and podcast ...
interface.)
Although the source code was usually stored in a
tokenized
Lexical tokenization is conversion of a text into (semantically or syntactically) meaningful ''lexical tokens'' belonging to categories defined by a "lexer" program. In case of a natural language, those categories include nouns, verbs, adjectives ...
version to save room on disk, pieces of code could also be saved in
ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
form, and as such made it possible to set up reusable
libraries
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
. The tokenized source files were a benefit in other ways too — for instance, GFA BASIC allowed users to include binary data in their BASIC code via an "INLINE" statement, and could even be integrated with the GFA Assembler to allow users to develop machine code programs inside INLINE statements in order to accelerate particular areas of a program. It also meant that the BASIC interpreter (and later the compiler) didn't need to tokenise a program when it was loaded, which would have been a significant load-time overhead for some of the larger GFA BASIC programs that were written.
Manual
Some editions of the GFA manual were printed with black ink on red paper, in an attempt to thwart photocopying and bootlegging. The effectiveness of this tactic was questionable, and the manual returned to the usual black-on-white format after complaints from colour blind users and the proliferation of re-typed copies on the Internet.
Windows version
GFA BASIC for Microsoft Windows included a thorough implementation of the Windows API calls. Although the product had a number of technical advantages over some of the more popular products (the combination of an "easy" language with robust architecture and fast, compiled, reliable code), it didn't achieve great success in the Windows market. Software professionals who wanted high-performance code tended to stay with the more "technical" languages, and to regard BASICs as inferior. For professionals who didn't have a problem with BASIC, a number of well-established software tool vendors such as
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
and
Borland
Borland Software Corporation was a computing technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad, and Philippe Kahn. Its main business was developing and selling software development and software deployment products. B ...
were actively promoting new "visual" programming systems such as
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic (.NET), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (classic), the original Visual Basic suppo ...
. These allowed users to create windows and dialog boxes populated by standard components (text, buttons, frame outlines) with the help of a drag-and-drop interface and object-oriented editing.
One of the advantages of GFA BASIC for Windows was that the compiler (sold separately) could create stand-alone .exe files, and also included a relatively easy option for creating
Dynamic Link Library
A dynamic-link library (DLL) is a shared library in the Microsoft Windows or OS/2 operating system. A DLL can contain executable code (functions), data, and resources.
A DLL file often has file extension .dll even though this is not require ...
(.DLL) files for Windows. This allowed a user to write and test routines within GFA Basic, export them as functions to a Windows .DLL file, and then access those pre-compiled functions from within other tools or programs, such as Visual Basic 3.0, which was unable to produce compiled code. This feature allowed GFA BASIC to be used as a "number-crunching" add-on product for Visual Basic, for writing high-speed routines for applications such as database sorting or media signal processing that would have been impractical under the then-current version of Visual Basic.
In the United States at least, GFA BASIC did not have the same brand recognition enjoyed by products from companies such as Microsoft and Borland. As a simple text-based code creation system, it also lacked the exciting new "visual" user interfaces of its better-known competitors. Although GFA BASIC for Windows was developed further to include support for Visual Basic's components, their use under GFA was more technical than under Visual Basic. Without a large marketing budget, or a clear reason why journalists should write about it, GFA BASIC for Windows remained a comparatively obscure product.
Applications
Éric Chahi wrote a game editor in GFA basic to create his game ''
Another World'', including scene design and game scripting; only the game engine (polygon rendering and music) was done in assembler. This editor was used to make all ports of the game, including for consoles and the Collector Edition for Windows released in 2006.
Karsten Köper of Thalion software wrote all the basic game editing software for the "Amberstar" series using GFA Basic.
The
Dashboard of Sustainability
The ''Dashboard of Sustainability'' is a free-of-charge, non-commercial software package configured to convey the complex relationships among economic, social, and environmental issues.
The software is designed to help developing countries achieve ...
is coded mostly in GFA Basic. The source is about 500kB, plus about 100kB of assembly mainly for accessing 32-bit Windows functions.
References
External links
*
GFA-Basic editor- GFA-Basic support for Atari ST, GEM editor for GFA applications, patches for compiler+linker
GFA-BASIC 32 for Windowsnbsp;— Free Community version
GFA-BASIC 32 (FAN-SITE) on YouTubenbsp;— A fan hosted YouTube channel to promote the fun of coding.
X11-Basic— a free cross-platform BASIC with very similar syntax, including GUI functionality
RUN! Softwarenbsp;— comprehensive IDE, application builder, run-only interpreter, library with new features and bugfixes (site German, documents English)
*https://web.archive.org/web/20170304121818/http://www.vistoso.de/jh/programmer.html Code and Downloads for Windows 16-bit and 32-bit (German)
*https://github.com/codeprof/GFA-Basic-to-VB.Net-converter Converter program to convert GFA-WIN 16-Bit sources to VB.Net
{{DEFAULTSORT:Gfa Basic
BASIC interpreters
BASIC compilers
Amiga development software
Atari ST software
Discontinued BASICs
BASIC programming language family