Was waren die ersten BASIC-Dolmetscher, die in Hochsprachen programmiert wurden?

Sep 07 2020

Ich habe den Wikipedia-Artikel, den ich über BASIC-Dolmetscher begonnen habe, weiter überarbeitet und erweitert . Einer der Kritikpunkte war, dass es sich zu sehr auf die Mikrocomputer-Ära konzentrierte (was mich am meisten interessierte). Ich habe es erweitert, aber festgestellt, dass sich der Abschnitt über das Codieren auf die Programmierung in Maschinen- und Assemblersprache konzentriert (mein Favorit ist das Tiny BASIC Extended-Team, das in Oktal programmiert hat!). Wie auch immer, ich hatte kein Glück, frühe BASIC-Dolmetscher zu identifizieren, die in höheren Sprachen (vermutlich C) codiert waren. Kennen Sie Dolmetscher in den 1970er oder 1980er Jahren, die über der Baugruppe codiert wurden?

Antworten

5 MarkMorganLloyd Sep 07 2020 at 21:35

https://github.com/pkimpel/retro-b5500/blob/master/source/XBASIC/XBASIC.alg_m ist ein BASIC-Interpreter für den B5500, geschrieben in ALGOL und datiert 1975.

Dies erwähnt auch Burroughs 'eigenes BASIC, aber bei einer flüchtigen Suche wird kein Handbuch usw. angezeigt, sodass ich ihm kein Datum zuweisen kann. Die ALL Burroughs-Systemsoftware wurde jedoch entweder in ALGOL (einschließlich Compiler usw.) oder in ESPOL (ein ALGOL-Derivat mit Inline-Maschinencode usw.) geschrieben, mit Ausnahme der anfänglichen Bootkarte und Testprogramme, die ausschließlich für den internen Gebrauch bestimmt waren.

(Später) Die Bänder der Systemsoftware enthalten die Quelle von Burroughs eigenem BASIC-Compiler Mark XII aus dem Jahr 1971.

9 scruss Sep 07 2020 at 03:39

Gordon Eubanks ' BASIC-E für CP / M wurde um 1977 in PL / M geschrieben. Während PL / M eine relativ einfache Programmiersprache für Systeme ist, die fast ausschließlich auf Intel-Prozessoren abzielt, ist sie immer noch höher als die direkte Ausrichtung auf einen bestimmten Prozessor in der Baugruppe Sprache.

BASIC-E kompiliert zu einem Zwischen-P-Code, der dann von einer separaten Laufzeit interpretiert wird. Es ist also immer noch ein Dolmetscher, wenn nicht ein interaktiver.

9 davidbak Sep 07 2020 at 05:12

BASIC für die MAI Basic Four- Minicomputer-Serie wurde in einer Version von TREE-META programmiert - einer Sprache zum Schreiben von Compilern. Ich zögere, sie als "Hochsprache" zu bezeichnen. TREE-META war eher eine Notation - sehr ähnlich zu BNF - mit Beschriftungen zu Aktionsroutinen. Aber es war in keiner Weise Assemblersprache. Es war in der Tat eine "zugeschriebene Grammatik" -Notation, die zufällig ausführbar war.

(Übrigens, unabhängig davon, was der oben verlinkte Wikipedia-Artikel impliziert, waren die Basic Four-Computer von MAI Mitte der 70er Jahre auf dem Markt. Ich habe zwischen 1979 und 1981 für sie gearbeitet und sie waren bereits in mehreren vertikalen Märkten sehr etabliert - Autohausteile und -service , kleine Arzt- / Zahnarztpraxen, um nur zwei zu nennen.)

Jetzt denke ich daran: Der TREE-META-Teil war der Lexer + Parser + "Byte" -Codegenerator. Der "Byte" -Codeinterpreter selbst - nicht viele Anweisungen und diese waren auf hohem Niveau, da sie BASIC-Zeichenfolgenoperationen (z. B. Verkettung) als Einzelbytecodes behandelten - wurde in Mikrocode geschrieben. ("Byte" -Code steht in Anführungszeichen, da ich nicht sicher bin, ob es sich um ein Codierungsschema für ein Byte pro Befehl handelt. Ich kann mich nicht erinnern, wie es codiert wurde. Aber es war ziemlich einfach! Und Sie konnten das BASIC wiederherstellen Sprachquellenanweisungen aus den Anweisungen.) Ebenfalls im Mikrocode befand sich die gesamte Speicherverwaltung für die Variablen - was natürlich in BASIC Zeichenfolgen und Arrays von Zahlen oder Zeichenfolgen sowie Ganzzahlen und Gleitkomma bedeutet - und auch für den kompilierten Bytecode . (Also, ob BASIC Four BASIC das OP beantwortet 'Die Frage liegt bei ihm.)

3 d3jones Sep 07 2020 at 20:02

Der BASIC-Interpreter für den TI 99 / 4A-Computer ist in einer Zwischensprache namens GPL geschrieben, die wiederum nativ auf dem TMS9900-Mikroprozessor ausgeführt wird.

Sehen: http://www.nouspikel.com/ti99/titechpages.htm