Zum Inhalt springen

BASIC

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. Juli 2004 um 11:26 Uhr durch MarkusKnittig (Diskussion | Beiträge) ((Einige) BASIC Implementationen). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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:

  1. Für Anfänger einfach zu lernen
  2. Als Allzweck-Computersprache einsetzbar
  3. Erweiterbarkeit der Sprache für Experten
  4. Interaktivität
  5. Klare Fehlermeldungen
  6. Rasche Antwortzeiten
  7. Hardwareunabhängigkeit
  8. 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.

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")