BASIC ist eine imperative Programmiersprache, die 1964 vom John George Kemeny und Thomas Eugene Kurtz am Dartmouth College entwickelt wurde.
Der Name BASIC steht für Beginner's All-purpose Symbolic Instruction Code = Vielseitige, symbolische Programmiersprache für Anfänger. Außerdem heißt das englische Wort basic "grundlegend".
Allgemeines
Die Sprache wurde aufgrund von acht Entwurfsprinzipien entworfen:
- Für Anfänger einfach zu lernen
- Als Allzweck-Computersprache einsetzbar
- Erweiterbarkeit der Sprache für Experten
- Interaktivität
- Klare Fehlermeldungen
- Rasche Antwortzeiten
- Hardwareunabhängigkeit
- Betriebssystemunabhängigkeit
BASIC war einst weltweit die populärste Programmiersprache, obwohl sie oft von Informatikern gering geschätzt wird.
Viele Dialekte wurden entwickelt und die neuesten weisen alle professionellen Elemente für höhere Programmiersprachen auf. Ein Nachteil der vielen Versionen ist, dass Programme meist nicht ohne weiteres zwischen diesen Versionen ausgetauscht werden können.
Geschichte
1964 wurde BASIC von John George Kemeny und Thomas Eugene Kurtz am Dartmouth College entwickelt, um den Elektrotechnikstudenten den Einstieg in die Pascal-Programmierung zu erleichtern.
Seinen Höhepunkt erlebte BASIC mit den ersten Heimcomputern Ende der 1970er Jahre, die alle als Benutzeroberfläche und Programmierumgebung ein BASIC besaßen, z.B. Sinclairs ZX-81 oder der Commodore C64.
Praktisch alle Besitzer von Heimcomputern beherrschten zu dieser Zeit ein wenig BASIC.
Auch als Mitte der 1980er Jahre grafische Benutzeroberflächen Einzug mit dem Macintosh, Amiga, Atari ST hielten, wurden bei diesen weiter BASIC-Interpreter mitgeliefert, und es gab zusätzliche käufliche Versionen von BASIC-Dialekten.
Einige BASIC-Dialekte konnten nun sogar deutlich schnellere Maschinenprogramme aus BASIC-Code erzeugen.
Das parallel verbreitete MS-DOS enthielt ebenfalls einen BASIC-Interpreter, welcher meist eine Rolle im Informatikunterricht an vielen Schulen spielte.
Zu dieser Zeit setzte aber ein Wandel ein, weil andere Programmiersprachen wie C und Assembler für die Heimcomputer verfügbar wurden.
Nach und nach nahm außerdem der Anteil Menschen zu, die einen Computer nur bedienen, aber nicht programmieren konnten.
Hauptgrund dafür, dass BASIC zwischenzeitlich fast in Vergessenheit geriet, war aber, dass nach dem Zusammenbruch von Atari und Amiga der Markt von Windows-PCs dominiert wurde. Bei diesen war kein BASIC-Interpreter inbegriffen, mit dem man Windows-Programme hätte schreiben können.
Microsoft führte allerdings das kommerzielle Visual Basic für die schnelle Entwicklungen von Windows-basierten Anwendungen ein.
Der Code wurde nicht mehr zur Laufzeit interpretiert, sondern von einem Compiler während der Programmentwicklung in maschinennahen Pseudocode bzw. in späteren Versionen sogar in Maschinen-Code (native code) übersetzt. Durch diese Maßnahme konnte die Geschwindigkeit und die Stabilität der Programmausführung deutlich gesteigert werden.
Da auch die Geschwindigkeit der Computer immer mehr zunahm, wurde Visual Basic ausserdem für professionelle Entwicklungen immer interessanter.
Mit Einführung von objektorientierten Sprachelementen wurde der Versuch unternommen, VisualBasic mit anderen objektorientierten Programmiersprachen wie C++ gleichziehen zu lassen.
Besonders in Europa hat sich Visual Basic in der Entwicklergemeinschaft nur in begrenztem Maße behaupten können. Es bot zwar eine bessere und viel einfachere Anbindung an Windows als jede andere Programmiersprache, war aber langsamer.
Erst mit der Implementierung von Visual Basic innerhalb des .NET-Frameworks ist es gelungen, die strukturellen Schwächen von BASIC zu überwinden.
Gleichzeitig aber bedeutete dieser Schritt das Ende von Visual Basic als eigenständiger Programmiersprache. Innerhalb des .NET-Framework handelt es sich bei VB.Net nur noch um eine Sprach-Implementierung neben anderen, die auf einem Java-ähnlichen Kern aufsetzt.
Das Ziel einer plattformunabhängigen Programmiersprache hat sich nie erfüllt. Im Gegensatz zum gut standardisierten C entstanden von BASIC hunderte Dialekte, die alle, bis auf Ähnlichkeiten, inkompatibel zueinander sind.
Ausserdem ist BASIC deutlich langsamer als die meisten anderen Hochsprachen. Dies macht es besonders für zeitkritische Anwendungen unattraktiver.
Beispiele
Das Beispiel 1 zeigt ein Programm, das in einer frühen unstrukturierten Fassung geschrieben wurde, während das Beispiel 2 das gleiche Programm in einem moderneren Dialekt zeigt.
Beispiel 1: Unstrukturierter BASIC-Code
10 INPUT "Geben Sie bitte Ihren Namen ein"; A$ 20 PRINT "Guten Tag "; A$ 30 INPUT "Wieviele Sterne möchten Sie?"; S 40 FOR I = 1 TO S 50 S$ = S$ + "*" 55 NEXT I 60 PRINT S$ 70 INPUT "Möchten Sie noch mehr Sterne?"; Q$ 80 IF LEN(Q$) = 0 GOTO 70 90 L$ = LEFT$(Q$, 1) 100 IF (L$ = "J") OR (L$ = "j") THEN GOTO 30 110 PRINT "Auf Wiedersehen"; 120 FOR I = 1 TO 200 130 PRINT A$; " "; 140 NEXT I 150 PRINT
Beispiel 2: Strukturierter BASIC-Code
INPUT "Geben Sie bitte Ihren Namen ein"; UserName$ PRINT "Guten Tag "; UserName$ DO INPUT "Wie viele Sterne möchten Sie? "; NumStars Stars$ = "" Stars$ = REPEAT$("*", NumStars) '<-ANSI BASIC 'Stars$ = STRING(NumStars, "*") '<-MS BASIC PRINT Stars$ DO INPUT "Möchten Sie noch mehr Sterne?"; Answer$ LOOP UNTIL Answer$ <> "" LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "J" PRINT "Auf Wiedersehen "; FOR A = 1 TO 200 PRINT UserName$; " "; NEXT A PRINT
(Einige) BASIC Implementationen
Basic ist heute auf nahezu allen Computer-Plattformen in verschiedenen Basicdialekten erhältlich.
- BlitzBasic
- BwBASIC
- Gambas: Eine Visuelle Programmierumgebung für BASIC unter Linux KDE von Benoit Minisini.
- GfA-Basic wurde ursprünglich für den Atari ST konzipiert, später für Windows umgesetzt.
- GWBasic wurde in den MS-DOS Versionen vor 5.0 ausgeliefert.
- Omikron BASIC wurde lange Zeit mit neuen Atari STs ausgeliefert
- PureBasic plattformübergreifendes BASIC für Windows, Linux und AmigaOS
- Real BASIC plattformübergreifendes BASIC für Mac, Linux und Windows
- QBasic wurde in den MS-DOS Versionen 5.0 - 6.22 ausgeliefert.
- Basic V2: Im Commodore 64 eingebauter ROM-Basic-Interpreter
- sdlBasic: Ein freies Basic das auf die Grafikbibliothek von SDL aufbaut
- Simon's BASIC: Ein verbessertes BASIC für den C64, das per ROM-Modul installiert wurde.
- SmallBasic: Ein GPL-ed BASIC das auf PALM, Linux etc. läuft
- Turbo Basic ein Public Domain Basic (um Klassen schneller als das fest eingebaute ATARI Basic) für den ATARI XL/XE, Autor war der spätere Entwickler von GFA Basic
- PowerBasic: Leistungsfähiger kommerzieller Basic-Compiler für DOS und Windows
- Visual Basic: Eine Visuelle Programmierumgebung für BASIC von Microsoft.
- VB.Net: Implementierung innerhalb des .NET-Frameworks von Microsoft.
- wxBasic ist ein Open Source Basic auf Basis des plattformübergreifendes Toolkits wxWidgets
- XBasic ist eine Open Source Version
Dokumente, die BASIC definieren
Die meisten real existierenden Interpreter und Compiler halten sich leider nicht an diese Standards.
- ANSI Standard for Minimal BASIC (ANSI X3.60-1978 "FOR MINIMAL BASIC")
- ISO Standard for Minimal BASIC (ISO/IEC 6373:1984 "DATA PROCESSING - PROGRAMMING LANGUAGES - MINIMAL BASIC")
- ANSI Standard for Full BASIC (ANSI X3.113-1987 "PROGRAMMING LANGUAGES FULL BASIC")
- ISO Standard for Full BASIC (ISO/IEC 10279:1991 "INFORMATION TECHNOLOGY - PROGRAMMING LANGUAGES - FULL BASIC")
- ANSI Addendum Defining Modules (X3.113 INTERPRETATIONS-1992 "BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987")
- ISO Addendum Defining Modules (ISO/IEC 10279:1991/ Amd 1:1994 "MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT")