Autocode
# Autocode

Autocode ist eine Familie von „vereinfachten Codiersystemen“, einer frühen Form von Programmiersprachen.

## Entstehungsgeschichte

Autocode ist eine Familie von Programmiersprachen, die in den 1950er Jahren und 1960er Jahren an den Universitäten Manchester und Cambridge für verschiedene Computer entwickelt wurde. Autocode ist dabei als Oberbegriff zu verstehen; die verschiedenen Autocodes für unterschiedliche Rechner sind, anders als z. B. die verschiedenen Versionen der einzelnen Sprache Fortran, sind sie nicht notwendigerweise verwandt. Der erste Autocode und der dazugehörige Compiler wurden 1952 von Alick Glennie für den Manchester Mark I entwickelt und wird von einigen als die erste kompilierte Programmiersprache betrachtet. Der zweite Autocode, der „Mark 1-Autocode“ wurde für den Mark I R.A. Brooker 1954 entwickelt.

Brooker entwickelte in Zusammenarbeit mit der Universität Manchester in den 1950er Jahren auch ein Autocode für den Ferranti Mercury. „Mercury-Autocode“ hatte eine beschränkte Anzahl von Variablen, a – z und a‘ - z‘, und ähnelte in manchen Dingen frühen Versionen des späteren „Dartmouth BASIC“. Es hat einige Konzepte des späteren ALGOL (Algorithmic Language) vorweggenommen, jedoch noch ohne Umsetzung eines Stapelspeichers und somit auch ohne Rekursion und dynamisch allozierte Arrays. Um mit dem auf der Mercury verfügbaren relativ kleinen Speicher zurechtzukommen wurden große Programme in „Kapitel“ unterteilt, die durch Overlay genutzt wurden. Um den zeitraubenden Kontrollwechsel zwischen einzelnen Kapiteln zu minimieren war einige Sachkenntnis erforderlich. Dieses Konzept des Overlays im Trommelspeicher durch Benutzerkontrolle war üblich, bis in späteren Maschinen Virtuelle Speicherverwaltung zur Verfügung stand. Ein etwas veränderter Mercury-Autocode wurde auch für die Ferranti Atlas (von späteren Atlas-Autocode zu unterscheiden), der ICT 1300 und der ICT 1900 implementiert.

Die Version für den EDSAC 2 (Electronic Delay Storage Automatic Calculator) wurde von D. F. Hartley von der Universität Cambridge 1961 entwickelt. Der EDSAC-2-Autocode war eine nachfolgende Entwicklung aus dem Mercury-Autocode. Er wurde nur an die Verhältnisse des Rechners angepasst und wurde für seine Objektcode-Optimierung und Quellsprachen-Diagnostik bekannt, die für die damalige Zeit fortschrittlich war. Eine weitere Version wurde für den Colossus-Nachfolger „Titan“ (den Prototyp des ATLAS-2-Computers) als eine vorläufige Notlösung verwendet, während eine wesentlich fortschrittlichere Sprache entwickelt wurde, die heute als CPL (Combined Programming Language) bekannt ist. CPL wurde nie vollendet, hat aber das von Martin Richards entwickelte BCPL (Basic Combined Programming Language) entschieden beeinflusst, welches der Reihe nach zu den Programmiersprachen B und C weiterentwickelt wurde. Ein zeitgenössischer, aber getrennter Entwicklungsfaden, der Atlas-Autocode, wurde von der Universität Manchester für die Manchester Mark I entwickelt.

