BASIC
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".
Table of contents |
2 Geschichte 3 Beispiele 4 (Einige) BASIC Implementationen 5 Dokumente, die BASIC definieren 6 Weblinks |
Die Sprache wurde aufgrund von acht Entwurfsprinzipien entworfen:
Allgemeines
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.
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 Maschinencode (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 außerdem 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 waren. Allein Microsoft konnte durch die Integration von Visual Basic in nahezu alle seine Softwareprodukte einen Standard etablieren, der allerdings bis auf wenige Ausnahmen auf Microsoft-Produkte beschränkt blieb. Die starke Protegierung von Basic durch Microsoft ist wahrscheinlich der Hauptgrund, warum Basic bei professionellen Programmierern immer wieder auf Ablehung stößt.
Ausserdem waren die frühen BASIC deutlich langsamer als die meisten anderen Hochsprachen. Dies machte es besonders für zeitkritische Anwendungen unattraktiv. Mit Einführung von Visual Basic ab Version 5 erzielte Microsoft allerdings deutliche Erfolge in Bezug auf die Verarbeitungsgeschwindigkeit, die aber den zuvor verlorenen Boden nicht wieder gut machen konnten. Immerhin zeigten Benchmarks das Visual Basic im Vergleich zu C++ oder Java durchaus mithalten konnte. Gegenüber Java konnten sogar in einigen Bereichen deutliche Geschwindigkeitsvorteile erzielen werden.
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
Beispiel 2: Strukturierter BASIC-Code
Basic ist heute auf nahezu allen Computer-Plattformen in verschiedenen Basicdialekten erhältlich.
Geschichte
Beispiele
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
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
Dokumente, die BASIC definieren
Die meisten real existierenden Interpreter und Compiler halten sich leider nicht an diese Standards.Weblinks