Autocode

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.

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

Entstehungsgeschichte[Bearbeiten]

Autocode ist eine Programmiersprachenfamilie, 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 wie z. B. die verschiedenen Versionen der einzelnen Sprache Fortran, 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.[1] Der zweite Autocode, der „Mark 1-Autocode“ wurde für den Mark I R.A. Brooker 1954 entwickelt.

Von Brooker wurde in Zusammenarbeit mit der Universität Manchester in den 1950er Jahren auch ein Autocode für den Ferranti Mercury entwickelt. „Mercury-Autocode“ hatte eine beschränkte Anzahl von Variablen, ‚a‘ – ‚z‘ und ‚-z‘, und ähnelte in manchen Dingen frühen Versionen des späteren „Dartmouth BASIC“. Es hat einige Konzepte aus des späteren ALGOL (Algorithmic Language“) vorweggenommen, jedoch noch ohne Umsetzung eines Stapelspeichers und somit auch ohne Rekursion und dynamisch allozierte Feld (Datentyp). 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. Leicht unterschiedlicher 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 Universität des Cambridges Mathematisches Laboratorium 1961 entwickelt. Der EDSAC-2-Autocode war eine gerade 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, welche heute als CPL (Combined Programming Language) bekannt ist. CPL wurde nie vollendet, hat aber das von Martin Richards entwickelte BCPL (Basic Combined Programming Language) entscheidend 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.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Donald E. Knuth, Luis Trabb Pardo: Early development of programming languages. In: Marcel Dekker (Hrsg.): Encyclopedia of Computer Science and Technology. 7, S. 419–493.

Literatur[Bearbeiten]