GFA BASIC is a
dialect
The term dialect (from Latin , , from the Ancient Greek word , 'discourse', from , 'through' and , 'I speak') can refer to either of two distinctly different types of Linguistics, linguistic phenomena:
One usage refers to a variety (linguisti ...
of the
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
, by
Frank Ostrowski Frank Ostrowski (born 1960 - died 2011) was a German programmer best known for his implementations of the BASIC programming language.
After his time with the German Federal Armed Forces, Frank Ostrowski was unemployed for three years. During this ...
. 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 Frank Ostrowski (born 1960 - died 2011) was a German programmer best known for his implementations of the BASIC programming language.
After his time with the German Federal Armed Forces, Frank Ostrowski was unemployed for three years. During this ...
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 246,243 (2021).
Kiel lies approximately north of Hamburg. Due to its geographic location in the southeast of the J ...
and
Düsseldorf
Düsseldorf ( , , ; often in English sources; Low Franconian and Ripuarian: ''Düsseldörp'' ; archaic nl, Dusseldorp ) is the capital city of North Rhine-Westphalia, the most populous state of Germany. It is the second-largest city in th ...
, 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
The Atari ST is a line of personal computers from Atari Corporation and the successor to the Atari 8-bit family. The initial model, the Atari 520ST, had limited release in April–June 1985 and was widely available in July. It was the first pers ...
home computer range, since the
Atari ST BASIC
Atari ST BASIC (or ST Basic) was the first dialect of BASIC that was produced for the Atari ST line of computers. This BASIC interpreter was bundled with all new STs in the early years of the ST's lifespan, and quickly became the standard BASIC for ...
shipped with them was more primitive. Later, ports for the
Commodore Amiga
Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphi ...
,
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
and
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
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
A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. The term is often extended to include the people subscribed to such a list, so the group of subscribers is re ...
and website in 2005. Due to missing official
support and availability of GFA BASIC the user community took over the support and an 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 extensive use of the structured control flow constructs of selection ( if/then/else) and repetition ( ...
commands —
procedures
Procedure may refer to:
* Medical procedure
* Instructions or recipes, a set of commands that show how to achieve some result, such as to prepare or make something
* Procedure (business), specifying parts of a business process
* Standard opera ...
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 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 translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
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
A gemstone (also called a fine gem, jewel, precious stone, or semiprecious stone) is a piece of mineral crystal which, in cut and polished form, is used to make jewelry or other adornments. However, certain rocks (such as lapis lazuli, opal, a ...
and
TOS, the
Atari ST
The Atari ST is a line of personal computers from Atari Corporation and the successor to the Atari 8-bit family. The initial model, the Atari 520ST, had limited release in April–June 1985 and was widely available in July. It was the first pers ...
's
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
, providing menus, dialog boxes, and mouse control. (See
WIMP
Wimp, WIMP, or Wimps may refer to:
Science and technology
* Weakly interacting massive particle, a hypothetical particle of dark matter
* WIMP (computing), the "window, icon, menu, pointer" paradigm
* WIMP (software bundle), the web stack of Wind ...
interface.)
Although the source code was usually stored in a
tokenized
In computer science, lexical analysis, lexing or tokenization is the process of converting a sequence of characters (such as in a computer program or web page) into a sequence of ''lexical tokens'' ( strings with an assigned and thus identified ...
version to save room on disk, pieces of code could also be saved in
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
form, and as such made it possible to set up reusable
libraries
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
. 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 technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
and
Borland 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 (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (cl ...
. 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
Dynamic-link library (DLL) is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension DLL, OCX (for libraries containing ActiveX controls), or ...
(.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
Éric Chahi is a French computer game designer and programmer, best known as the creator of '' Another World'' (also known as ''Out of This World'' in North America) and ''Heart of Darkness''.
Career
Éric Chahi started programming on Oric Atm ...
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 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
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