Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Tiny BASIC

aus Wikipedia, der freien Enzyklopädie

Tiny BASIC ist eine Version der ProgrammierspracheBASIC mit geringem Speicherbedarf, die in der Mitte der 1970er Jahre entworfen wurde. Der ursprüngliche Entwurf stammte vonDennis Allison, basierend auf einem Vorschlag in einem Newsletter derPeople's Computer Company (PCC). Das Ziel war eine minimalistische, einfach zu verstehende und zu implementierende Version von BASIC, die auf den damals neu aufkommendenMikrocomputern mit begrenztem Speicher (typischerweise nur wenige KilobyteRAM) lauffähig war.Die Veröffentlichung des Designs als öffentlich zugängliche Spezifikation (ein frühes „Open Source“-Modell, noch bevor dieser Begriff offiziell geprägt wurde) ermutigte Hobbyisten, eigene Interpreter zu entwickeln und zu portieren. Tiny BASIC wurde so zu einer Schlüsselkomponente der frühenHeimcomputerbewegung und trug maßgeblich zur Popularisierung von Mikrocomputern bei.

Geschichte

[Bearbeiten |Quelltext bearbeiten]

In den frühen 1970er Jahren war BASIC eine etablierte Sprache aufGroßrechnern undMinicomputern, wie dem berühmtenPDP-11 vonDEC. Die aufkommendenMikroprozessoren (z. B.Intel 8080,MOS Technology 6502) waren jedoch zu schwach, um die bestehenden, umfangreichen BASIC-Interpreter auszuführen. Der Speicherplatz war extrem kostbar, oft auf 4KB oder 8 KB RAM begrenzt.

Altair BASIC

[Bearbeiten |Quelltext bearbeiten]

Die frühestenMikrocomputer, wie derMITS Altair 8800, verfügten in der Regel über keine eingebautenEingabe-/Ausgabefunktionen (E/A) jenseits von Frontschaltern und LED-Lämpchen. Praktische Arbeit erforderte den Einbau einer E/A-Erweiterungskarte und die Verwendung einer Form vonTerminal. Zu dieser Zeit waren bildschirmbasierte Terminals sehr teuer und kosteten oft mehr als der Computer selbst, so dass viele Benutzer auf mechanische Geräte wie denTeletype Modell 33 zurückgriffen. Dieses Gerät, wie die meistenFernschreiber dieser Zeit, beinhaltete ein Lochstreifensystem, das es Betreibern ermöglichen sollte, ihre Nachrichten vorzuschreiben, um sie dann mit „hoher Geschwindigkeit“ (ca. 10 Zeichen/s)[1] zu senden, schneller als die meisten Personen die Nachricht live tippen konnten. Für die frühen Mikrocomputer bot dies ein praktischesDatenspeicherformat, das es Benutzern ermöglichte, Programme aufLochstreifen zu schreiben, um sie später wieder zu laden oder an andere Benutzer zu verteilen.[2]

Ein Lochstreifen mit der erweiterten 8K-Version von Microsoft BASIC

DerHomebrew Computer Club traf sich im März 1975 zum ersten Mal, und seine Mitglieder nutzten die Treffen bald, um auf Lochstreifen gespeicherte Software auszutauschen. Beim Treffen im Juni verschwand ein Streifen, der eine Vorabversion von Altair BASIC enthielt. Der Streifen wurdeSteve Dompier gegeben, der ihn anDan Sokol weitergab, der Zugang zu einem Hochgeschwindigkeits-Lochstreifenstanzer hatte. Beim nächsten Treffen lagen 50 Kopien von Altair BASIC auf Lochstreifen in einem Pappkarton.[3.1] AlsEd Roberts, der Gründer von MITS, davon erfuhr, erklärte er: „Jeder, der eine gestohlene Kopie von MITS BASIC verwendet, sollte sich als das zu erkennen geben, was er ist: ein Dieb.“[4]Bill Gates machte dies formeller, indem er denOpen Letter to Hobbyists („Offener Brief an Hobbyisten“) verfasste, in dem er beklagte: „Der Großteil der Hobbyisten muss wissen, die meisten von Ihnen stehlen Ihre Software.“[3.2][5]

Dieser Brief löste in der Hobbygemeinde intensive Diskussionen aus. Viele Hobbyisten waren zwar nicht bereit, hohe Preise für Software zu zahlen, sahen aber auch die Notwendigkeit von Software für ihre Systeme. Als Antwort auf diese Situation entstand die Idee, eine einfache, legale und kostenfreie Alternative zu kommerziellem BASIC zu entwickeln – Tiny BASIC. Vor diesem Hintergrund veröffentlichte Dennis Allison im Dezember 1975 im PCC-Newsletter einen Artikel mit dem Titel „TINY BASIC: Ein 8080-Interpreter“. Es handelte sich um einen Vorschlag für einen stark reduzierten BASIC-Dialekt, der in nur 2 bis 3 KB Speicher Platz finden sollte. Der Artikel enthielt eine präzise Sprachspezifikation und den Entwurf für einen Interpreter.[6]

Die „Tiny-BASIC-Bewegung“

[Bearbeiten |Quelltext bearbeiten]

Die Veröffentlichung löste eine Welle der Begeisterung in der Hobbyistengemeinde aus. Anstatt ein fertiges Produkt zu liefern, forderte Allison zur Mitarbeit und zur Entwicklung eigener Implementierungen auf. Dies führte zur Entstehung der „Tiny-BASIC-Bewegung“.

Monospaced font reads "Tiny basic for Intel 8080, version 2.0 by Li-Chen Wang, modified and translated to Intel mnemonics by Roger Rausklob, 10 October 1976. @ Copyleft, All Wrongs Reserved."
Der Begriff "Copyleft" wurde 1976 geprägt

Palo Alto Tiny BASIC, kurzPATB war eine Implementierung von Tiny BASIC, die vonLi-Chen Wang entwickelt und im Mai 1976 in Ausgabe 5/2 desPCC-Magazins (People's Computer Company) veröffentlicht wurde. Sein Listing trug den berühmt gewordenen Copyright-Vermerk „@COPYLEFT“ and „ALL WRONGS RESERVED“, eine frühe Formulierung desOpen-Source-Gedankens, die zur uneingeschränkten Verbreitung und Modifikation aufforderte.[7] Die erste Version des Interpreters belegte 1,77 Kilobyte Speicherplatz und setzte die Verwendung einer Teletype-Maschine, z. B.Teletype Modell 33 für die Benutzereingabe/-ausgabe voraus. PATB war in einer benutzerdefinierten Assemblersprache mit nicht standardmäßigen Mnemoniken geschrieben. Dies führte zu weiteren Portierungen, die sich mit herkömmlichen Assemblern auf dem 8080 übersetzen ließen.[8]

Eine spätere Version erschien in Ausgabe 1/5 desDr. Dobb’s Journal.[9] Es handelte sich um einenInteger-BASIC-Interpreter für dieIntel 8080-CPU.Die Ankündigung in PCC lautete:

„Tiny BASIC ist eine vereinfachte Version von BASIC, die auf Minicomputern und sogar auf Tischrechnern läuft. Es ist klein, aber dennoch nützlich. Palo Alto Tiny BASIC ist eine spezifische Implementierung, die auf einem 8080-basierten System mit 2 KByte ROM und 2 KByte RAM läuft. Der Quellcode istPublic Domain und wird hier mit freundlicher Genehmigung des Autors zum Nachdruck zur Verfügung gestellt.“

PCC:Ausgabe 5/2

Palo Alto Tiny BASIC verfügte über 26 Integer-Variablen (AZ) und ein Integer-Array (@), das den restlichen freien Speicherplatz umfasste. Der Wertebereich entsprach 16 Bit, d. h. -32768…32767. Die Sprache unterstützte die üblichen BASIC-Anweisungen wieINPUT,PRINT,LET,GOTO,GOSUB,RETURN,IF,FOR...NEXT,END sowie die FunktionenRND() undABS(). Es bot auch dieUSR()-Funktion zum Aufruf von Maschinensprache. Eine der bemerkenswertesten Änderungen in PATB ist die Hinzufügung der FOR...NEXT-Schleife. Im ursprünglichen TB konnten Schleifen nur mitIF undGOTO implementiert werden. Wie in Microsoft-BASIC wurden die oberen und unteren Grenzen der Schleife beim Eintritt in die Schleife festgelegt und änderten sich während des Schleifendurchlaufs nicht. Wenn also eine der Grenzen auf einem variablen Ausdruck basierte, änderte sich die Grenze durch Ändern der Variablen nicht. DerSTEP-Ausdruck war wie bei MS-BASIC optional.Eine weitere wichtige Änderung war die Möglichkeit, mehrere Anweisungen in einer einzigen Zeile zu platzieren. Aus nicht näher erläuterten Gründen verwendete PATB das Semikolon; zur Trennung von Anweisungen anstelle des bereits üblichen Doppelpunkts:Ein bemerkenswertes Merkmal war, dass derQuelltext vollständig inAssemblersprache geschrieben und mit ausführlichen Kommentaren versehen war, die die zugrundeliegenden Algorithmen und Datenstrukturen erklärten.

Andere bekannte Versionen waren „Denver Tiny BASIC“ von Fred Greenberg und „MINOL“ von Eric T. Mueller.

Auswirkungen und Vermächtnis

[Bearbeiten |Quelltext bearbeiten]
Markierung "LICHEN" (Li-Chen Wang) auf Exatron ROM für das TRS-80-Modell-1

Tiny BASIC war eine der erstenhöheren Programmiersprachen für Mikrocomputer, die für Privatpersonen zugänglich waren. Es demonstrierte, dass leistungsfähige Software auch auf extrem limitierter Hardware lauffähig sein konnte.

Viele frühe Heimcomputer, wie derTRS-80 vonTandy/RadioShack, verwendeten in ihren ersten Modellen Varianten von „Palo Alto Tiny BASIC“, bevor sie zu leistungsfähigeren BASIC-Dialekten wechselten.

Die Bewegung um Tiny BASIC war ein frühes und einflussreiches Beispiel für die Kraft gemeinschaftlicher, offener Softwareentwicklung in der Hobbyistenszene, ein Prinzip, das später dieOpen-Source-Bewegung prägte.

Sprachbeschreibung

[Bearbeiten |Quelltext bearbeiten]

Tiny BASIC war im Vergleich zu seinem VorbildDartmouth BASIC stark vereinfacht. Typische Merkmale waren:

Eingeschränkter Befehlssatz: Oft nurPRINT,INPUT,LET,IFTHEN,GOTO,GOSUBRETURN,END,CLEAR,LIST,RUN.

Numerische Variablen: Unterstützung nur für numerische Variablen, meist mit Ein-Buchstaben-Namen (A–Z). Einige Implementierungen erlaubten auch zweistellige Variablen (z. B.A1).

Einfache Ausdrücke: Arithmetische Ausdrücke waren auf die Grundrechenarten (+, -, *, /) beschränkt und konnten Klammern enthalten.

Keine Zeichenketten: Die allerersten Versionen unterstützten keineString-Variablen oder -Operationen. Spätere Erweiterungen fügten einfache String-Ausgabe mitPRINT "Textausgabe" hinzu.

Eingeschränkte Programmgröße: Aufgrund des beschränkten Speichers waren Programme naturgemäß sehr klein.

Ein typisches Tiny-BASIC-Programm, das dieFibonacci-Folge berechnet, könnte so ausgesehen haben:

10 LET A = 020 LET B = 130 PRINT A40 LET C = A + B50 LET A = B60 LET B = C70 IF A < 100 THEN GOTO 3080 END

Implementierung

[Bearbeiten |Quelltext bearbeiten]

Die frühen Tiny-BASIC-Interpreter wurden meist inAssemblersprache geschrieben, um maximale Effizienz und minimale Größe zu gewährleisten. Die Architektur folgte oft dem klassischen Muster eines zeilenorientierten Interpreters mitTokenisierung: Beim Eintippen wurden BASIC-Schlüsselwörter in einzelne Token umgewandelt, um Speicherplatz zu sparen. Der Interpreter interpretierte und führte diese Token Zeile für Zeile aus. Eine Ausnahme bildet „Palo Alto Tiny BASIC“, das die Kommandos im Klartext speicherte, wobei Schlüsselworte abgekürzt werden konnten, z. B.P. stattPRINT.

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Teletype ASR33 Documentation. Abgerufen am 26. November 2025 (englisch). 
  2. Don Lancaster: TV Typewriter Cookbook. 1976, S. 210–211; abgerufen im 1. Januar 1 (englisch). 
  3. Stephen Manes, Paul Andrews:Gates: How Microsoft's Mogul Reinvented an Industry and Made Himself the Richest Man in America. Touchstone, Simon and Schuster, New York 1994,ISBN 0-671-88074-8 (englisch). 
    1. p.81
    2. p.91
  4. H. Edward Roberts:Letter from the President. In:Computer Notes. 1. Jahrgang,Nr. 5. MITS, Albuquerque NM. Oktober 1975,S. 3–4 (englisch,startup.nmnaturalhistory.org (Memento desOriginals vom 23. März 2012 imInternet Archive)). 
  5. Bill Gates:An Open Letter to Hobbyists. In:Computer Notes. Februar 1976. 
  6. Dennis Allison:Design notes for TINY BASIC. In:SIGPLAN Notices. 11. Jahrgang,Nr. 7. ACM, Juli 1976,S. 25–33,doi:10.1145/987491.987494 (englisch). 
  7. Li-Chen Wang:Palo Alto Tiny BASIC. In:Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte.Band 1,Nr. 5, Dezember 1976,S. 12–25 (drdobbs.com [abgerufen am 15. Mai 2024]).  Ursprünglich erschienen inPCC 5/2, Mai 1976.
  8. Roger Rauskolb:Dr. Wang's Palo Alto Tiny BASIC. In:Interface Age. 2. Jahrgang,Nr. 1, Dezember 1976,S. 92–108 (englisch).  Der Quelltext beginnt mit diesen Zeilen:
    ;*********************************;;    TINY BASIC FOR INTEL 8080;          VERSION 2.0;        BY LI-CHEN WANG;     MODIFIED AND TRANSLATED;       TO INTEL MNEMONICS;        BY ROGER RAUSKOLB;         10 OCTOBER,1976;           @COPYLEFT;      ALL WRONGS RESERVED;;*********************************
  9. Li-Chen Wang:Palo Alto Tiny BASIC. In:Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte.Band 1,Nr. 5, Dezember 1976,S. 12–25 (drdobbs.com [abgerufen am 15. Mai 2024]). 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Tiny_BASIC&oldid=261979551
Kategorien:
Versteckte Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp