Zum Inhalt springen

„Autocode“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Typographische Anführungszeichen korrigiert | Helfer gesucht
Stil, nur im Quelltext sichtbare Absätze entfernt
Zeile 4: Zeile 4:


== Entstehungsgeschichte ==
== Entstehungsgeschichte ==
Autocode ist eine [[Programmiersprache|Programmiersprachenfamilie]], die in den 1950er Jahren und 1960er Jahren an den Universitäten [[University of Manchester|Manchester]] und [[University of Cambridge|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.&nbsp;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.<ref>{{Cite journal |last=Knuth|first=Donald E.|last2=Pardo|first2=Luis Trabb|title=Early development of programming languages|journal=Encyclopedia of Computer Science and Technology|volume=7|pages=419–493|publisher=Marcel Dekker}}</ref> Der zweite Autocode, der „Mark 1-Autocode“ wurde für den Mark I [[Tony Brooker|R.A. Brooker]] 1954 entwickelt.
Autocode ist eine [[Programmiersprache|Programmiersprachenfamilie]], die in den 1950er Jahren und 1960er Jahren
an den Universitäten [[University of Manchester|Manchester]] und [[University of Cambridge|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.&nbsp;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.<ref>{{Cite journal |last=Knuth|first=Donald E.|last2=Pardo|first2=Luis Trabb|title=Early development of programming languages|journal=Encyclopedia of Computer Science and Technology|volume=7|pages=419–493|publisher=Marcel Dekker}}</ref>
Der zweite Autocode, der „Mark 1-Autocode“ wurde für den Mark I [[Tony Brooker|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 [[Variable (Programmierung)|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]] ''('''Algo'''rithmic '''L'''anguage)'' vorweggenommen, jedoch noch ohne Umsetzung eines [[Stapelspeicher|Stapelspeichers]] und somit auch ohne [[Rekursion]] und [[Speicherverwaltung|dynamisch allozierte]] [[Feld (Datentyp)|Arrays]]. Um mit dem auf der Mercury verfügbaren relativ kleinen Speicher zurechtzukommen wurden große Programme in „Kapitel“ unterteilt, die durch [[Overlay (Programmierung)|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.
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 [[Variable (Programmierung)|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]] ''('''Algo'''rithmic '''L'''anguage)'' vorweggenommen, jedoch noch ohne Umsetzung eines [[Stapelspeicher|Stapelspeichers]] und somit auch ohne [[Rekursion]] und [[Speicherverwaltung|dynamisch allozierte]] [[Feld (Datentyp)|Arrays]].
Um mit dem auf der Mercury verfügbaren relativ kleinen Speicher zurechtzukommen wurden große Programme in „Kapitel“ unterteilt, die durch [[Overlay (Programmierung)|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 [[Electronic Delay Storage Automatic Calculator|EDSAC]] 2 ''('''E'''lectronic '''D'''elay '''S'''torage '''A'''utomatic '''C'''alculator)'' wurde von D. F. Hartley von Universität des Cambridges Mathematisches Laboratorium 1961 entwickelt.
Die Version für den [[Electronic Delay Storage Automatic Calculator|EDSAC]] 2 ''('''E'''lectronic '''D'''elay '''S'''torage '''A'''utomatic '''C'''alculator)'' 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 [[Combined Programming Language|CPL]] ''('''C'''ombined '''P'''rogramming '''L'''anguage)'' bekannt ist. CPL wurde nie vollendet, hat aber das von [[Martin Richards]] entwickelte [[Basic Combined Programming Language|BCPL]] ''('''B'''asic '''C'''ombined '''P'''rogramming '''L'''anguage)'' entscheidend beeinflusst, welches der Reihe nach zu den Programmiersprachen [[B (Programmiersprache)|B]] und [[C (Programmiersprache)|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.
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 [[Combined Programming Language|CPL]] ''('''C'''ombined '''P'''rogramming '''L'''anguage)'' bekannt ist.
CPL wurde nie vollendet, hat aber das von [[Martin Richards]] entwickelte [[Basic Combined Programming Language|BCPL]] ''('''B'''asic '''C'''ombined '''P'''rogramming '''L'''anguage)'' entscheidend beeinflusst, welches der Reihe nach zu den Programmiersprachen [[B (Programmiersprache)|B]] und [[C (Programmiersprache)|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 ==
== Weblinks ==

Version vom 26. September 2016, 23:21 Uhr

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

Entstehungsgeschichte

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 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 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 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. 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.

Einzelnachweise

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

Literatur

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