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, nicht notwendigerweise verwandt. Der erste Autocode und der dazugehörige Compiler wurden 1952 von Alick Glennie für den Manchester Mark I entwickelt. Dieses System 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.

Brooker entwickelte in Zusammenarbeit mit der Universität Manchester in den 1950er Jahren auch einen 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 (vom späteren Atlas-Autocode zu unterscheiden) und die Systeme ICT 1300 und 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.

Literatur

  • Martin Campbell-Kelly: Programming the Mark 1: Early Programming Activity at the University of Manchester. In: Annals of the History of Computing. Band 2, Nr. 2. IEEE, 1980, S. 130–167, doi:10.1109/MAHC.1980.10018 (englisch).
  • Ernesto Garcia Camarero: AUTOCODE un sistema simplificado de codificacion para la computadora MERCURY. Universidad de Buenos Aires, 1961, S. 70 (spanisch, elgranerocomun.net).

Einzelnachweise

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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.