BBC BASIC ist eine Programmiersprache, die 1981 als eine native Programmiersprache für den 6502-basierten Acorn BBC Micro Heimcomputer, hauptsächlich von Sophie Wilson, entwickelt wurde. Es ist eine Version der BASIC-Programmiersprache, adaptiert für ein britisches Computerbildungsprojekt der BBC.

BASIC-Eingabeaufforderung ("prompt") auf dem BBC Micro nach einem Reset

BBC BASIC ist aufgebaut auf dem älteren Atom BASIC (für den Acorn Atom) und erweitert das traditionelle BASIC mit benannten Prozeduren und Funktionen, REPEAT-UNTIL-Schleifen und IF-THEN-ELSE-Strukturen, inspiriert von der Programmiersprache COMAL. Der Interpreter enthält auch Anweisungen, um BBC Micros Vier-Kanal-Tonausgabe und seine hochauflösende Bildschirmausgabe zu steuern.

Eine der herausragenden Funktionen von BBC BASIC war ein inline-Assembler, der es dem Benutzer erlaubte, prozessorspezifische (6502-)Programme zu schreiben. Dieser Assembler war vollständig in den BASIC-Interpreter integriert und konnte auf seine Variablen zugreifen. Das erlaubte Entwicklern, nicht nur direkt im Assembler-Code zu schreiben, sondern auch BASIC-Programme zu verfassen, die ihrerseits zur Laufzeit Assembler-Code erzeugten. So konnte man auch einfache Compiler in BASIC schreiben.

BasicV auf einem RaspberryPi unter RISC OS

Das Erscheinen der Acorn Archimedes Computerreihe (1987) und damit einhergehend RISC OS führte auch beim BBC BASIC, hier Basic V genannt, zu einer Weiterentwicklung, die es einen Sprachstandard erreichen ließ, der es auf das Level einer modernen, funktionalen Sprache ähnlich Pascal hebt. Neuerungen sind u. a. eine Erweiterung des Schleifenkonzepts mittels WHILE, eine Fallunterscheidung mit CASE-OF-WHEN-OTHERWISE-ENDCASE, ein Bibliothekskonzept über LIBRARY, eine Fehlerbehandlung auf Prozedurenebene, eine flexibilisierte Datenübergabe mittels LOCAL DATA und einem RESTORE, welches absolut und relativ benutzbar ist sowie die Möglichkeit lokaler Arrays und direkter Array-Operationen, z. B. um Matrizenmultiplikationen ausführen zu können, etwa für 3D Grafiken. Des Weiteren gibt es verbesserte Unterstützung von Sound und Grafik sowie Mauseingabe.

BBC BASIC wurde auf viele verschiedene Computerplattformen portiert und ist verfügbar z. B. unter CP/M, für die Amstrad NC100 und NC200 Padcomputer, den Cambridge Z88; aber auch für DOS und Windows und viele weitere existieren Versionen.[1] Mit Brandy BASIC gibt es eine unter der GPL stehende, frei verfügbare und gut portable Version.[2]

Seit 2018 steht der Sourcecode[3] der aktuellen Version bei ROOL unter einer Apache-Lizenz und inkl. Dokumentation[4][5][6] zur Verfügung.

Mit RISC OS Pico[7] kann ein Raspberry Pi direkt in ein BBC BASIC gebootet werden; optimal um etwa Gerätesteuerungen oder Makerprojekte einfach und schnell umzusetzen, oder auch nach klassischem Muster einen "Homecomputer on Speed" nachzubilden. BBC BASIC ist aber auch Bestandteil jeder anderen aktuellen RISC OS Installation und eignet sich auch im 21. Jahrhundert immer noch für allererste und erweiterte Programmiererfahrungen.[8]

Das Projekt 'BBC Basic for SDL'[9] verbindet die hohe Geschwindigkeit der Grafikausgabe von Simple DirectMedia Layer mit den Eigenschaften von BBC BASIC.[10]

Einzelnachweise Bearbeiten

  1. http://www.bbcbasic.co.uk/bbcbasic.html
  2. https://sourceforge.net/projects/brandy/
  3. Archivierte Kopie (Memento des Originals vom 9. November 2018 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.riscosopen.org
  4. http://www.riscos.com/support/developers/bbcbasic/index.html
  5. http://www.riscos.com/support/developers/manual_index/basic.html
  6. http://www.riscos.com/support/developers/basicv/index.htm
  7. https://www.riscosopen.org/wiki/documentation/show/Software%20information:%20RaspberryPi:%20RC5%20RISC%20OS%20Pico
  8. http://www.riscosbasic.uk/ kleine anschauliche Grafikroutinen mit Quellcodes
  9. https://www.bbcbasic.co.uk/bbcsdl/ Projektseite von 'BBC BASIC for SDL 2.0'
  10. http://www.proggies.uk/bbcsdl/index.html Webseite mit Beispielprogrammen für 'BBC Basic for SDL'