BASIC
aus Wikipedia, der freien Enzyklopädie
BASIC ist eine der verbreitetsten Programmiersprachen. BASIC wurde 1964 von John George Kemeny und Thomas Eugene Kurtz am Dartmouth College entwickelt und war in seiner damaligen Form eine so genannte imperative Programmiersprache. Mittlerweile gibt es eine Vielzahl verschiedenster BASIC-Dialekte, von denen einige der jüngeren alle Elemente höherer Programmiersprachen aufweisen, so etwa Objektorientierung.
Der Name „BASIC“ steht für „Beginner’s All-purpose Symbolic Instruction Code“, was so viel bedeutet wie „symbolische Allzweck-Programmiersprache für Anfänger“. Die Abkürzung als Wort gesehen bedeutet außerdem „grundlegend“. Dies zeigt das Design-Ziel klar: Eine einfache, für Anfänger geeignete Programmiersprache zu erschaffen. Außer in manchen Produktnamen wird das Wort „BASIC“ grundsätzlich in Großbuchstaben geschrieben.
Inhaltsverzeichnis |
[Bearbeiten] Allgemeines
Die Sprache wurde aufgrund von acht Entwurfsprinzipien entworfen:
- Für Anfänger einfach zu erlernen
- universell einsetzbar
- Erweiterbarkeit der Sprache für Experten
- Interaktivität
- Klare Fehlermeldungen
- Rasche Antwortzeiten
- Hardwareunabhängigkeit
- Betriebssystemunabhängigkeit
[Bearbeiten] Geschichte
BASIC wurde 1964 von John George Kemeny und Thomas Eugene Kurtz am Dartmouth College entwickelt, um den Elektrotechnikstudenten den Einstieg in die Programmierung mit Algol und Fortran zu erleichtern. Am 1. Mai 1964 um vier Uhr Ortszeit, New Hampshire, liefen die ersten beiden BASIC-Programme simultan auf einem GE-225-Computer von General Electric im Keller des Dartmouth College. BASIC wurde dann viele Jahre lang von immer neuen Informatikstudenten an diesem College weiterentwickelt, zudem propagierten Kemeny und Kurtz es ab den späten 1960er Jahren an mehreren Schulen der Gegend, die erstmals Computerkurse in ihr Unterrichtsprogramm aufnehmen wollten. BASIC war entsprechend dem Wunsch seiner „Väter“ für die Schulen kostenlos, im Gegensatz zu fast allen anderen damals üblichen Programmiersprachen, die meist mehrere tausend Dollar kosteten. Viele der damaligen großen Computerhersteller (wie etwa DEC) boten wegen der leichten Erlernbarkeit der Sprache und ihrer lizenzgebührfreien Verwendbarkeit bald BASIC-Interpreter für ihre neuen Minicomputer an; viele mittelständische Unternehmen, die damals erstmalig in größerer Zahl Computer anschafften, kamen so mit BASIC in Berührung.
Einige der so mit BASIC vertrauten Schüler, Studenten und im Mittelstand tätigen Programmierer waren etwas später in der kurzlebigen Bastelcomputer-Szene Mitte der 1970er-Jahre aktiv, die den kommerziellen Microcomputern vorausging, und machten BASIC dort bekannt; kaum eine andere damals verbreitete Hochsprache eignete sich so gut wie (ein abgespecktes) BASIC für den extrem beschränkten Speicherplatz dieser ersten Microcomputer. Seinen Höhepunkt erlebte BASIC mit den aus den Bastelcomputern hervorgehenden ersten Heimcomputern Ende der 1970er- und Anfang der 1980er-Jahre, die nahezu alle als Benutzeroberfläche und Programmierumgebung einen BASIC-Interpreter besaßen. Prominente Beispiele sind Sinclair ZX81, der TRS 80, der Amstrad CPC bzw. Schneider CPC oder der meistverkaufte Heimcomputer aller Zeiten, der Commodore C64. Aber auch die Vorläufer der Personalcomputer, wie zum Beispiel von Philips, konnten mit CP/M-BASIC interpretierend oder kompiliert arbeiten. Die weitaus meisten dieser BASICs stammten von Microsoft. BASIC war Microsofts erstes und in den frühen Jahren wichtigstes Produkt, mehrere Jahre bevor mit MS-DOS das erste Betriebssystem dieser Firma auf den Markt kam.
Praktisch alle Besitzer von Heimcomputern hatten damals zumindest Grundkenntnisse in BASIC. Auch als Mitte der 1980er Jahre grafische Benutzeroberflächen mit dem Macintosh, Amiga und dem Atari ST Einzug hielten, wurden bei diesen weiter BASIC-Interpreter mitgeliefert. Auch gab es zusätzliche käufliche Versionen von BASIC-Dialekten. Mittels Compilern konnten einige BASIC-Dialekte direkt in deutlich schnellere Maschinenprogramme übersetzt bzw. unter Umgehung des Interpreters direkt in Aufruflisten der zugrundeliegenden Interpreter-Funktionen übersetzt werden. Das seit 1981 verbreitete MS-DOS enthielt ebenfalls einen BASIC-Interpreter – zunächst BASICA bzw. GW-BASIC, später QBasic – der in Deutschland an vielen Schulen eine Rolle im Unterricht der Informatik spielte. Zu dieser Zeit setzte aber ein Wandel ein, weil andere Hochsprachen wie beispielsweise C für die Heimcomputer verfügbar wurden oder die Ressourcen des jeweiligen Systems vom mitgelieferten BASIC-Interpreter nur unzulänglich unterstützt wurden und den Programmierer dazu zwang, sich mit Assembler vertraut zu machen.
Durch die Umsetzung als Interpreter-Sprache waren die frühen BASIC-Dialekte außerdem deutlich langsamer als die meisten anderen, in der Regel Compiler-basierten Hochsprachen. Dies machte es besonders für zeitkritische Anwendungen unattraktiv bzw. führte zur Verwendung von Unterprogrammen in Maschinensprache die oft mit POKE Anweisungen von BASIC aus in den Hauptspeicher geschrieben wurden. Solche Programme waren natürlich nicht portabel. Deshalb und wegen der Zersplitterung in unzählige Dialekte gilt BASIC als fast nicht portabel. Mit Einführung von Visual Basic ab Version 5 erzielte Microsoft deutliche Erfolge in Bezug auf die Verarbeitungsgeschwindigkeit, die aber den zuvor verlorenen Boden nicht wieder gutmachen konnten.
Mit der Zeit nahm der Anteil der Menschen zu, die einen Computer nur bedienen, aber nicht programmieren konnten. Hauptgrund dafür, dass BASIC zwischenzeitlich fast in Vergessenheit geraten war aber, dass nach dem Zusammenbruch der großen Heim- und Bürocomputer-Hersteller Atari und Commodore 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 besann sich allerdings auf die eigene Tradition und führte das kommerzielle Visual Basic für die schnelle Entwicklung von Windows-basierten Anwendungen ein. Der Code wurde nicht mehr zur Laufzeit interpretiert, sondern von einem Compiler während der Programmentwicklung in maschinennahen Pseudocode beziehungsweise in späteren Versionen sogar in nativen Maschinencode ü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 außerdem für professionelle Entwicklungen immer interessanter. Mit Einführung von objektorientierten Sprachelementen wurde der Versuch unternommen, Visual Basic mit anderen objektorientierten Programmiersprachen wie C++ gleichziehen zu lassen.
Basic wird in den Office-Produkten von Microsoft und auch in einigen weiteren Anwendungen zur internen Makro-Programmierung als VBA erfolgreich eingesetzt. Viele Softwarehersteller bieten ebenfalls auf Basic basierende Programmiersprachen zur internen Makro-Programmierung ihrer Produkte an.
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-Systems gelang es, die strukturellen Schwächen von BASIC zu überwinden. Gleichzeitig aber bedeutete dieser Schritt das Ende von Visual Basic als eigenständige Programmiersprache. Innerhalb des .NET-Systems handelt es sich bei Visual Basic .NET nur noch um eine Sprach-Implementierung neben anderen, die auf einem Java-ähnlichen Kern aufsetzt. Mit Einführung der JIT-Compiler und .NET als Basis für alle Microsoft-Sprachen besteht zwischen der Verarbeitungsgeschwindigkeit von BASIC und anderen Programmiersprachen kein großer Unterschied mehr.
Das Ziel einer plattformunabhängigen Programmiersprache hat sich nie erfüllt. Im Gegensatz zum gut standardisierten C entstanden von BASIC hunderte Dialekte, die allesamt bis auf gewisse grundsätzliche Ähnlichkeiten inkompatibel zueinander sind. Die Gemeinsamkeiten beschränken sich auf die reine Datenverarbeitung, während jeder Hersteller im Zuge der gleichzeitig verlaufenden rasanten Hardware-Entwicklung seine eigenen, auf die jeweilige Hardware abgestimmten Befehle für Ein- und Ausgabe implementierte.
[Bearbeiten] Programmiersprache
Zu Beginn der Basic-Programmierung bauten sich Befehle wie folgt auf:
1. Befehlsnummer Befehl [Parameter1, Parameter2 ...] 2. Befehlsnummer Variable1=Variable2
Befehlsnummer - steht hierbei für einen fortlaufenden Wert der gewohnheitsmäßig immer in 10er Schritten ansteigt damit später immer nachträgliche Zeilen hinzugefügt werden können.
Befehl - ein Beliebiger Befehl wie INPUT
Parameter - Ein oder mehrere Werte die einer Prozedur bzw. einem Befehl übergeben werden sollen.
Zuweisungen von Werten ist in Bsp. 2 gezeigt. Die Variable der ein Wert zugewiesen werden soll steht vorne, der Wert oder die Variable, die ihr zugewiesen werden soll steht hinter dem gleichheitszeichen.
Liste von Befehlen:
INPUT [Text], Variable1 [,Variable2,...] - Per Eingabe werden der/den Variablen Werte zugewiesen auf dem Bildschirm steht Text PRINT [Text] - auf dem Bildschirm wird ein Text ausgegeben LOCATE X,Y - Legt die aktuelle Schreibposition des Cursers fest. PSET X,Y - Zeichnet einen Punkt auf dem Bildschirm CLS - Löscht den Anzeigebereich
[Bearbeiten] Programmierbeispiel
Das folgende Beispiel zeigt einen typischen BASIC-Code. Viele Befehle, die sich in neueren Sprachen etabliert haben, gibt es bei dem im Beispiel verwendeten BASIC noch nicht. Dadurch war der Programmierer gezwungen, unstrukturiert zu programmieren.
10 INPUT "Geben Sie bitte Ihren Namen ein"; A$ 20 PRINT "Guten Tag, "; A$ 30 INPUT "Wie viele 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
[Bearbeiten] Standards
- ANSI. ISO Standard for Minimal BASIC (ISO/IEC 6373:1984 “DATA PROCESSING—PROGRAMMING LANGUAGES—MINIMAL BASIC”)
- ANSI Standard. ISO Standard für Vollbasic (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”)
Die meisten existierenden Interpreter und Compiler halten sich allerdings nicht oder nur teilweise an diese Vorgaben.
[Bearbeiten] Literatur
- Dr. Hans-Joachim Sacht: BASIC-Dialekte. Humboldt-Taschenbuchverlag, München 1986 ISBN 3-581-66524-7
- Rüdeger Baumann: BASIC - Eine Einführung in das Programmieren. Klett Verlag, Stuttgart 1980 ISBN 3-12-717700-3
- Dr. Hans-Joachim Sacht: Programmiersprache BASIC - Schritt für Schritt. Humboldt-Taschenbuchverlag, München 1983 ISBN 3-581-66456-9