Autocode – Wikipedia

before-content-x4

Frühe Computerprogrammiersprachen

after-content-x4

Autocode ist der Name einer Familie von “vereinfachten Codierungssystemen”, später Programmiersprachen genannt, die in den 1950er und 1960er Jahren für eine Reihe digitaler Computer an den Universitäten von Manchester, Cambridge und London entwickelt wurden. Autocode war ein Oberbegriff; Die Autocodes für verschiedene Maschinen waren nicht unbedingt eng miteinander verbunden, wie zum Beispiel die verschiedenen Versionen des einsprachigen Fortran.

Heute bezieht sich der Begriff auf die Familie der frühen Sprachen, die von den im Allgemeinen ähnlichen Manchester Mark 1-Autocoder-Systemen abstammen. In den 1960er Jahren wurde der Begriff Autocoder wurde allgemeiner verwendet, um mit einem Compiler auf eine höhere Programmiersprache zu verweisen.[1]

Beispiele für Sprachen, die als Autocodes bezeichnet werden, sind COBOL und Fortran.[2]

Glennies Autocode[edit]

Der erste Autocode und sein Compiler wurden 1952 von Alick Glennie für den Mark 1-Computer an der Universität von Manchester entwickelt und werden von einigen als die erste kompilierte Programmiersprache angesehen. Sein Hauptziel war eine bessere Verständlichkeit bei der Programmierung von Mark 1-Maschinen, die für ihren besonders abstrusen Maschinencode bekannt waren. Obwohl die resultierende Sprache viel klarer als der Maschinencode war, war sie immer noch sehr maschinenabhängig.[3]

Unten finden Sie ein Beispiel für die Autocode-Funktion von Glennie, mit der die Formel berechnet wird:

[4]

after-content-x4

Der Einfluss von Glennies Autocode auf die Programmiergewohnheiten anderer Manchester-Benutzer war vernachlässigbar. Es wurde nicht einmal in Brookers Artikel von 1958 mit dem Titel “Die für die Computer der Universität Manchester entwickelten Autocode-Programme” erwähnt.

Markieren Sie 1 Autocode[edit]

Der zweite Autocode für den Mark 1 wurde 1954 geplant und 1955 von RA Brooker entwickelt und als “Mark 1 Autocode” bezeichnet. Die Sprache war nahezu maschinenunabhängig und hatte im Gegensatz zur ersten eine Gleitkomma-Arithmetik. Andererseits erlaubte es nur eine Operation pro Zeile, bot nur wenige Mnemoniknamen und hatte keine Möglichkeit, Benutzerunterprogramme zu definieren.[5]

Ein Beispielcode, der ein Array mit Gleitkommazahlen der Größe 11 aus der Eingabe lädt, sieht folgendermaßen aus

      n1 = 1         
1    vn1 = I         reads input into v[n[1]]
      n1 = n1 + 1
   j1,11 ≥ n1        jumps to 1 if n[1] ≤ 11

Brookers Autocode beseitigte zwei Hauptschwierigkeiten des Programmierers von Mark 1: Skalierung und Verwaltung von zweistufigem Speicher. Im Gegensatz zu seinem Vorgänger wurde es stark genutzt.[6]

Spätere Autocodes[edit]

Brooker entwickelte in den 1950er Jahren in Zusammenarbeit mit der University of Manchester auch einen Autocode für den Ferranti Mercury.
Mercury Autocode hatte ein begrenztes Repertoire an Variablen az und a’-z ‘und ähnelte in gewisser Weise frühen Versionen der späteren Dartmouth BASIC-Sprache. Es war älter als ALGOL und hatte kein Konzept für Stapel und daher keine Rekursion oder dynamisch zugewiesene Arrays. Um die relativ geringe Speichergröße von Mercury zu überwinden, wurden große Programme als separate “Kapitel” geschrieben, die jeweils eine Überlagerung darstellten. Einige Fähigkeiten waren erforderlich, um zeitaufwändige Kontrollübertragungen zwischen Kapiteln zu minimieren. Dieses Konzept von Überlagerungen von Trommeln unter Benutzersteuerung wurde allgemein, bis virtueller Speicher in späteren Maschinen verfügbar wurde. Für den Ferranti-Atlas (im Unterschied zum späteren Atlas-Autocode) und die ICT 1300- und 1900-Reihe wurden leicht unterschiedliche Dialekte des Mercury-Autocodes implementiert.

Die Version für den EDSAC 2 wurde 1961 von David Hartley vom Mathematical Laboratory der Universität Cambridge entwickelt. Bekannt als EDSAC 2 Autocode, war es eine direkte Entwicklung von Mercury Autocode, angepasst an die örtlichen Gegebenheiten, und wurde für seine Objektcodeoptimierung und Quellcode- bekannt gemacht. Sprachdiagnose, die für die Zeit fortgeschritten war. Für den Nachfolger Titan (den Prototyp des Atlas 2-Computers) wurde eine Version als vorübergehende Lücke entwickelt, während eine wesentlich fortgeschrittenere Sprache namens CPL entwickelt wurde. CPL wurde nie abgeschlossen, führte jedoch zu BCPL (entwickelt von M. Richards), was wiederum zu B und schließlich zu C führte. Atlas Autocode, ein zeitgemäßer, aber separater Entwicklungsfaden, wurde für die Atlas 1-Maschine der Universität Manchester entwickelt.

Verweise[edit]

  1. ^ London, Keith (1968). “4, Programmierung”. Einführung in die Computertechnik (1. Aufl.). 24 Russell Square London WC1: Faber und Faber Limited. p. 184. SBN 571085938. Die ‘High’-Programmiersprachen werden oft als Autocodes und das Prozessorprogramm als Compiler bezeichnet.CS1-Wartung: Standort (Link)
  2. ^ London, Keith (1968). “4, Programmierung”. Einführung in die Computertechnik (1. Aufl.). 24 Russell Square London WC1: Faber und Faber Limited. p. 186. SBN 571085938. Zwei hochrangige Programmiersprachen, die hier als Beispiele zur Veranschaulichung der Struktur und des Zwecks von Autocodes verwendet werden können, sind COBOL (Common Business Oriented Language) und FORTRAN (Formular Translation).CS1-Wartung: Standort (Link)
  3. ^ Knuth, p. 42-43
  4. ^ Knuth, p. 48
  5. ^ Knuth, p. 63-64
  6. ^ Knuth, p. 65

Quellen[edit]

  • Campbell-Kelly, Martin (1980). “Programming the Mark 1: Frühe Programmieraktivität an der Universität von Manchester”. Annalen der Geschichte des Rechnens. IEEE. 2 (2): 130–167. doi:10.1109 / MAHC.1980.10018.
  • Garcia Camarero, Ernesto (1961). AUTOCODE un sistema simplificado de codificacion para la computadora MERCURY (in Spanisch). Universidad de Buenos Aires. p. 70.
  • London, Keith (1968). Einführung in die Computertechnik. p. 261.
  • Knuth, Donald E.; Pardo, Luis Trabb (1976). “Frühe Entwicklung von Programmiersprachen”. Stanford University, Institut für Informatik.

Weiterführende Literatur[edit]

after-content-x4