ALGOL

Algol
1965 ALGOL-20 A Language Manual, Fierst et al - cover.jpg
Ein Handbuch für Algol-20 von 1965
Paradigma Prozedural, Imperativ, strukturiert
Familie Algol
Entworfen von Bauer, Bottenbruch, Rutishauer, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, Van Wijngaarden, Holz, Grün, McCarthy
Erstmals erschienen 1958; Vor 64 Jahren
Disziplin tippen Statisch, stark
Zielfernrohr Lexikalisch
Beeinflusst
Die nachfolgenden imperativen Sprachen (einschließlich so genannter Algol-ähnlich Sprachen)
z.B. Pl/i, Simula, Pascal, C und Planen

Algol (/ˈælɡɒl, -ɡɔːl/; kurz für "Algorithmische Sprache"))[1] ist eine Familie von Imperativ Computer Programmiersprachen ursprünglich 1958 entwickelt. Algol beeinflusste viele andere Sprachen stark und war die Standardmethode für Algorithmus Beschreibung verwendet von der Verband für Rechenmaschinen (ACM) in Lehrbüchern und akademischen Quellen seit mehr als dreißig Jahren.[2]

In dem Sinne, dass die Syntax der meisten modernen Sprachen ist "algolartig",[3] Es war wohl einflussreicher als drei andere Programmiersprachen auf hoher Ebene, unter denen es ungefähr zeitgemäß war: Forran, Lispeln, und Cobol.[4] Es wurde entwickelt, um einige der wahrgenommenen Probleme mit FORTRAN zu vermeiden, und führte schließlich viele andere Programmiersprachen, einschließlich Pl/i, Simula, BCPL, B, Pascal, und C.

Algol eingeführt Codeblöcke und die Start...Ende Paare, um sie abzugrenzen. Es war auch die erste Sprache implementiert verschachtelte Funktion Definitionen mit lexikalischer Bereich. Darüber hinaus war es die erste Programmiersprache, die der formalen Sprachdefinition und durch die detaillierte Aufmerksamkeit schenkte Algol 60 Bericht eingeführt Backus -Naur -Form, ein Direktor formelle Grammatik Notation für Sprachdesign.

Es gab drei Hauptspezifikationen, benannt nach den Jahren, in denen sie zum ersten Mal veröffentlicht wurden:

  • Algol 58 - ursprünglich vorgeschlagen, genannt zu werden IAL, zum Internationale algebraische Sprache.
  • Algol 60 - zuerst implementiert als X1 Algol 60 1961. Überarbeitete 1963.[5][6][7]
  • Algol 68 - Einführte neue Elemente, darunter flexible Arrays, Scheiben, Parallelität und Bedieneridentifikation. Überarbeitet 1973.[8]

Algol 68 unterscheidet sich erheblich von Algol 60 und wurde nicht gut aufgenommen. Im Allgemeinen bedeutet "Algol" Algol 60 und seine Dialekte.

Geschichte

Algol wurde in einem Treffen im Jahr 1958 gemeinsam von einem Ausschuss europäischer und amerikanischer Informatiker im Jahr 1958 entwickelt Schweizer Federal Institute of Technology in Zürich (vgl. Algol 58). Es wurde drei verschiedene Syntaxe angegeben: eine Referenzsyntax, eine Publikationssyntax und eine Implementierungssyntax. Die verschiedenen Syntaxe ermöglichten es, verschiedene Schlüsselwortnamen und Konventionen für Dezimalpunkte (Kommas vs Perioden) für verschiedene Sprachen zu verwenden.

Algol wurde hauptsächlich von Forschungs -Informatikern in den USA und in Europa eingesetzt. Die Verwendung in kommerziellen Anwendungen wurde durch das Fehlen von Standard behindert Input-Output Einrichtungen in seiner Beschreibung und des mangelnden Interesses an der Sprache durch große Computeranbieter, andere als Burroughs Corporation. Algol 60 wurde jedoch zum Standard für die Veröffentlichung von Algorithmen und hatte tiefgreifende Auswirkungen auf die zukünftige Sprachentwicklung.

caption
Stammbaum des Algols, Forran und Cobol Programmiersprache Dynastie

John Backus entwickelte die Backus normale Form Methode zur Beschreibung der Programmiersprachen speziell für Algol 58. Es wurde überarbeitet und erweitert von Peter Naur für Algol 60 und bei Donald Knuth'S Vorschlag umbenannt Backus -Naur -Form.[9]

Peter Naur: "Als Herausgeber des Algol Bulletin wurde ich in die internationalen Diskussionen der Sprache hineingezogen und im November 1959 als Mitglied der European Language Design Group ausgewählt. In dieser Eigenschaft war ich Herausgeber des Algol 60 -Berichts, der produziert wurde Infolge des Algol 60 -Treffens in Paris im Januar 1960. "[10]

Die folgenden Personen nahmen an dem Treffen in Paris teil (vom 1. bis 16. Januar):

Alan Perlis gab eine lebendige Beschreibung des Treffens: "Die Treffen waren anstrengend, endlos und berauschend. Man wurde verschlimmer Die 13 war ausgezeichnet. "

Algol 60 inspirierte viele Sprachen, die darauf folgten. Tony Hoare bemerkte: "Hier ist eine Sprache, die seiner Zeit so weit voraus ist, dass es nicht nur eine Verbesserung seiner Vorgänger, sondern auch für fast alle Nachfolger war."[11] Das Planen Programmiersprache, eine Variante von Lispeln Dies übernahm die Blockstruktur und den lexikalischen Umfang von Algol auch den Wortlaut "überarbeiteten Bericht über das algorithmische Sprachschema" für seine Standarddokumente zur Hommage an Algol.[12]

Algol- und Programmierspracheforschung

Wie Peter Landin Bekannt, Algol war die erste Sprache, die nahtlos imperative Effekte mit dem ((Call-by-Namen) Lambda -Kalkül. Die vielleicht eleganteste Formulierung der Sprache ist darauf zurückzuführen John C. Reynoldsund es zeigt am besten seine syntaktische und semantische Reinheit. Reynolds 'idealisiertes Algol leitete auch ein überzeugendes methodologisches Argument für die Eignung lokaler Effekte im Kontext von Call-by-Namen Call-by-Wert Sprachen wie Ml. Die konzeptionelle Integrität der Sprache machte es zu einem der Hauptziele der semantischen Forschung zusammen mit Programmierbarer Funktionen (PCF) und ML.[13]

IAL Implementierungen Zeitleiste

Bisher gab es mindestens 70 Augmentationen, Erweiterungen, Ableitungen und Subluages ​​von Algol 60.[14]

Name Jahr Autor Land Beschreibung Ziel -CPU
ZMMD-Implementierung 1958 Friedrich L. BauerHeinz Rutishauser, Klaus Samelson, Hermann Bottenbruch Deutschland Implementierung von Algol 58 Z22
(später ZUSE's Z23 wurde mit einem Algol 60 Compiler geliefert)[15]
X1 Algol 60 August 1960[16] Edsger W. Dijkstra und Jaap A. Zonneveld Niederlande Erste Implementierung von Algol 60[17] Electrologica X1
Elliott Algol 1960er Jahre C. A. R. Hoare Vereinigtes Königreich Gegenstand der 1980 Turing Vorlesung[18] Elliott 803, Elliott 503, Elliott 4100 Serie
Fröhlich 1960 Jules Schwartz Vereinigte Staaten von Amerika A Dod Hol vor Ada Verschiedene (siehe Artikel)
Burroughs Algol
(Mehrere Varianten)
1961 Burroughs Corporation (mit Teilnahme von Hoare, Dijkstra, und andere) Vereinigte Staaten von Amerika Basis der Burroughs (und nun Unisys MCP basierend) Computer Burroughs große Systeme und auch ihre Mitteltöner.
Fallalgol 1961 Fallinstitut für Technologie[19] Vereinigte Staaten von Amerika Simula wurde ursprünglich als Simulationsverlängerung des Fallalgols beauftragt Univac 1107
Gogol 1961 William M. McKeeman Vereinigte Staaten von Amerika Für das Odin-Zeit-Sharing-System[20] PDP-1
REGNECENTRALEN ALGOL 1961 Peter Naur, Jørn Jensen Dänemark Implementierung von Vollalgol 60 Dask in Regnecentralen
Dartmouth Algol 30 1962 Thomas Eugene Kurtz et al. Vereinigte Staaten von Amerika LGP-30
USS 90 Algol 1962 L. Petrone Italien
Algol -Übersetzer 1962 G. van der Mey und W.L. Van der Poel Niederlande Staatsbedrijf der posterijen, Telegrafie en Telefonie ZEBRA
Kidsgrove Algol 1963 F. G. Duncan Vereinigtes Königreich Englische Elektrofirma KDF9
Valgol 1963 Val Schorre Vereinigte Staaten von Amerika Ein Test der Meta II Compiler Compiler
Wetzstein 1964 Brian Randell und L. J. Russell Vereinigtes Königreich Atomic Power Division of English Electric Company. Vorläufer zu Ferranti Pegasus, Nationale physische Laboratorien AS und English Electric Deuce Implementierungen. Englische Elektrofirma KDF9
Nu Algol 1965 Norwegen Univac
Algek 1965 UdSSR А? ээ und basierend auf Algol-60 und Cobol Unterstützung für wirtschaftliche Aufgaben Minsk-22
Algol w 1966 Niklaus Wirth Vereinigte Staaten von Amerika Vorgeschlagener Nachfolger von Algol 60 IBM System/360
Malgol 1966 publ. A. Viil, M Kotli & M. Rakhendi, Estland, UdSSR Minsk-22
Algams 1967 GAMS -Gruppe (га м, група автоатизesse Comecon Minsk-22, später Es evm, Besm
Algol/Zam 1967 Polen Polnischer ZAM -Computer
Simula 67 1967 Ole-Johan Dahl und Kristen Nygaard Norwegen Algol 60 mit Klassen Univac 1107
Triplex-Algol Karlsruhe 1967/1968 Karlsruhe, Deutschland Algol 60 (1963) mit Triplex -Zahlen zum Intervallarithmetik [21]
Chinesisches Algol 1972 China Chinesische Zeichen, ausgedrückt über das Symbolsystem
Dg/l 1972 Vereinigte Staaten von Amerika Dg Finsternis Computerfamilie
S-Algol 1979 Ron Morrison Vereinigtes Königreich Zugabe orthogonaler Datentypen mit beabsichtigter Verwendung als Lehrsprache PDP-11 mit einer anschließenden Implementierung auf der Java VM

Die Burroughs -Dialekte enthielten spezielle Bootstrapping -Dialekte wie z. Espol und Newp. Letzteres wird weiterhin für die UNISYS MCP -Systemsoftware verwendet.

Eigenschaften

Algol 60 wie offiziell definiert hatte keine I/o Einrichtungen; Implementierungen definierten ihre eigenen auf eine Weise, die selten miteinander kompatibel war. Im Gegensatz dazu bot Algol 68 eine umfangreiche Bibliothek von Transport (Eingabe/Ausgabe) Einrichtungen.

Algol 60 erlaubte zwei Bewertungsstrategien zum Parameter Vorbeigehen: das gemeinsame Call-by-Wert, und Call-by-Namen. Call-by-Namen hat im Gegensatz zu bestimmte Auswirkungen Call-by-Reference. Zum Beispiel ohne die Parameter als angeben Wert oder HinweisEs ist unmöglich, ein Verfahren zu entwickeln, das die Werte zweier Parameter austauscht, wenn die tatsächlichen Parameter, die in übergeben werden, eine Ganzzahlvariable und ein Array sind, das von derselben Ganzzahlvariablen indiziert wird.[22] Denken Sie daran, einen Zeiger zu übergeben, um (i, a [i]) in eine Funktion zu tauschen. Jedes Mal, wenn der Tausch verwiesen wird, wird er neu bewertet. Sag i: = 1 und a [i]: = 2, also jedes Mal, wenn der Swap verwiesen wird, wird die andere Kombination der Werte zurückgegeben ([1,2], [2,1], [1,2] und so weiter ). Eine ähnliche Situation erfolgt mit einer zufälligen Funktion als tatsächliches Argument.

Call-by-Namen ist vielen Compiler-Designern für die Interessenten bekannt. "Thunks"Die werden verwendet, um es zu implementieren. Donald Knuth entwickelte das "Mann- oder Jungen -Test"Um Compiler zu trennen, die korrekt implementiert wurden"Rekursion und nicht lokale Referenzen. "Dieser Test enthält ein Beispiel für Call-by-Namen.

Algol 68 wurde unter Verwendung eines zweistufigen Grammatikformalismus definiert, der von erfunden wurde Adriaan van Wijngaarden und was seinen Namen trägt. Van Wijngaarden Grammatiken verwenden ein Kontextfreie Grammatik Erzeugen eines unendlichen Produktionssatzes, das ein bestimmtes Algol 68 -Programm erkennen; Insbesondere sind sie in der Lage, die Art von Anforderungen auszudrücken, die in vielen anderen Programmiersprachenstandards als "Semantik" bezeichnet werden und in zweideutig natürlichen Sprachprosa ausgedrückt werden und dann in Compilern als implementiert werden müssen ad hoc Code an den formalen Sprachparser beigefügt.

Beispiele und Portabilitätsprobleme

Code Beispielvergleiche

Algol 60

(Die Art und Weise, wie der kühne Text geschrieben werden muss ganze Zahl. Dies ist bekannt als als Stropping.))

Verfahren Absmax (a) Größe: (n, m) Ergebnis: (y) Unterlagen: (i, k); Wert n, m; Array a; ganze Zahl n, m, i, k; real y;Kommentar Das absolut größte Element der Matrix A, der Größe N durch m wird auf y und die Einbilder dieses Elements an i und k übertragen;Start  ganze Zahl p, q; y: = 0; i: = k: = 1; zum P: = 1 Schritt 1 bis um n tun  zum F: = 1 Schritt 1 bis um m tun  wenn ABS (a [p, q])> y dann  Start y: = abs (a [p, q]); I: = P; k: = q Ende Ende Absmax

Hier ist ein Beispiel dafür, wie man a produziert Tisch mit Elliott 803 -Algol.[23]

 Floating Point Algol -Test 'Beginnen Sie Real A, B, C, D' Read D 'für a: = 0,0 Schritt D bis 6,3 Beginnen Sie mit Print Punch (3), ££ l ??' B: = sin (a) 'c: = cos (a)' Print Punch (3), Sameline, ausgerichtet (1,6), a, b, c 'Ende' Ende '

Punch (3) sendet die Ausgabe eher an den Teleprinter als an den Bandstempel.
Sameline unterdrückt den Wagenrücklauf + Leitungsvorschub, der normalerweise zwischen Argumenten gedruckt ist.
Ausgerichtete (1,6) steuert das Format der Ausgabe mit 1 Ziffer vor und 6 nach dem Dezimalpunkt.

Algol 68

Die folgenden Codeproben sind Algol 68 -Versionen der obigen Algol 60 -Code -Stichproben.

Algol 68 Implementierungen verwendeten Algol 60er Ansätze an Stropping. In den Falltken von Algol 68 mit dem Fett gedruckt Schrift sind reservierte Wörter, Typ (Moduss) oder Operatoren.

Proc ABS max = ([,]real a, Ref real y, Ref int ich k)real:Kommentar Das absolut größte Element der Matrix A, der Größe ⌈a von 2⌈a wird auf y und die Unterläufe dieses Elements an i und k übertragen; Kommentar Start  real y: = 0; i: = ⌊a; K: = 2⌊a; zum p aus ⌊a zu ⌈a tun  zum q aus 2⌊a zu 2⌈a tun  wenn Abs a [p, q]> y dann            y: = Abs a [p, q]; I: = P; k: = q fi  Od  Od; yEnde # ABS Max # #

HINWEIS: Untere (⌊) und obere (⌈) Grenzen eines Arrays und Array -Slicing sind dem Programmierer direkt zur Verfügung.

Floating Point Algol68 Test: ( real A B C D; # printf - Sendet die Ausgabe an die Datei auffallen. # # printf ($ p $); - wählt a neue Seite # printf (($ pg $, "eingeben D:")); neu hinzufügen); zum Schritt aus 0 während A: = Schritt*d; a <= 2*pi tun     printf ($ l $); # $ l $ - wählt a Neue Zeile. # b: = sin (a); C: = cos (a); printf (($ z-d.6d $, a, b, c)) # Formate mit 1 Ziffer vor und 6 nach dem Dezimalpunkt. # Od ))

Zeitleiste: Hallo Welt

Die Variationen und die mangelnde Portabilität der Programme von einer Implementierung zur anderen werden leicht durch den Klassiker demonstriert Hallo Weltprogramm.

Algol 58 (IAL)

Algol 58 hatte keine E/A -Einrichtungen.

Algol 60 Familie

Da Algol 60 keine E/A -Einrichtungen hatte, gibt es keine tragbaren Hallo Weltprogramm in Algol. Die nächsten drei Beispiele sind in Burroughs erweitertem Algol. Die ersten beiden direkten Ausgaben am interaktiven Terminal, an dem sie betrieben werden. Der erste verwendet ein Zeichenarray, ähnlich C. Die Sprache ermöglicht es dem Array -Kennung als Zeiger auf das Array und daher in einer Ersatzanweisung.

 START  DATEI F(NETT=FERNBEDIENUNG);  Ebcdic Array E[0:11];  ERSETZEN E DURCH "HALLO WELT!";  SCHREIBEN(F, *, E);  ENDE. 

Ein einfacheres Programm mit einem Inline -Format:

 START  DATEI F(NETT=FERNBEDIENUNG);  SCHREIBEN(F, <"HALLO WELT!">);  ENDE. 

Ein noch einfacheres Programm mit der Anzeigeanweisung. Beachten Sie, dass seine Ausgabe an der Systemkonsole enden würde ('SPO'):

START ANZEIGE("HALLO WELT!") ENDE. 

Ein alternatives Beispiel: Die Verwendung von Elliott -Algol -E/A ist wie folgt. Elliott-Algol verwendete verschiedene Zeichen für "Open-STRING-Quote" und "Close-String-Quote", die hier von dargestellt werden    und   .

 Programm Hallo Leute;  Start  drucken Hallo Welt  Ende; 

Unten finden Sie eine Version von Elliott 803 Algol (A104). Der Standard-Elliott 803 verwendete fünf Lochpapierband und hatte somit nur oberes Gehäuse. Dem Code fehlten Zitatzeichen, also wurde £ (UK -Pfund -Zeichen) für offenes Angebot verwendet und? (Fragezeichen) für ein enges Zitat. Spezielle Sequenzen wurden in doppelte Zitate platziert (z. B. ££ L ??

  Hifolks 'Beginn drucken £ hello world £ l?' ENDE'

Das IKT 1900 Serie Algol E/A -Version erlaubte Eingabe von Papierband oder Lochkarte. Papierband 'Full' -Modus erlaubte eine niedrigere Gehäuse. Die Ausgabe war für einen Liniendrucker. Die offenen und engen Zitatzeichen wurden mit '(' und ')' und Räumen um%dargestellt.[24]

  'Begin' schreibe text ('(' hello%world ')'); 'ENDE'

Algol 68

Algol 68 Der Code wurde mit reservierten Wörtern in der Regel in Kleinbuchstaben veröffentlicht, jedoch fett oder unterstrichen.

Start   printf (($ gl $, "Hallo, Welt!"))Ende 

In der Sprache des "Algol 68 -Berichts" die Input-Output Die Einrichtungen wurden gemeinsam als "Unterbrechung" bezeichnet.

Zeitleiste der Algol -Sonderzeichen

Die Algole wurden zu einer Zeit konzipiert, als die Charakter -Sets vielfältig waren und sich schnell entwickelten; Auch die Algole wurden so definiert, dass nur so Großbuchstaben Briefe waren erforderlich.

1960: Ifip - Die Algol 60 -Sprache und -bericht enthielten mehrere mathematische Symbole, die auf modernen Computern und Betriebssystemen verfügbar sind, aber leider wurden auf den meisten Computersystemen zu dieser Zeit nicht unterstützt. Zum Beispiel: ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ und ⏨.

1961 September: ASCII - die ASCII Charakter -Set, dann hatte in einem frühen Entwicklungsstadium das \ (Back Slash) Charakter hinzugefügt, um die Algols zu unterstützen Boolesche Betreiber /\ und \/.[25]

1962: Alcor - Dieses Charakter -Set enthielt das ungewöhnliche "᛭" Runic Cross[26] Charakter für die Multiplikation und das "⏨" -Decimal -Exponentsymbol[27] Für schwimmende Punktnotation.[28][29][30]

1964: Gost - Der sowjetische Standard von 1964 GOST 10859 erlaubte die Codierung von 4-Bit-, 5-Bit-, 6-Bit- und 7-Bit-Zeichen in Algol.[31]

1968: Der "Algol 68 -Bericht" - verwendete vorhandene Algol -Zeichen und weiter übernommen →, ↓, ↑, □, ⌊, ⌈, ⎩, ⎧, ○, ⊥ und ¢ Zeichen, die auf dem gefunden werden können IBM 2741 Tastatur mit Typball (oder Golfball) Druckköpfe eingefügt (wie die APL Golfball). Diese wurden Mitte der 1960er Jahre erhältlich, während Algol 68 eingezogen wurde. Der Bericht wurde in russisch, deutsch, französisch und bulgarisch übersetzt und erlaubte das Programmieren in Sprachen mit größeren Charaktersätzen, z. B.,. kyrillisch Alphabet des Sowjets Besm-4. Alle Charaktere von Algol sind auch Teil der Unicode Standard und die meisten von ihnen sind in mehreren beliebten erhältlich Schriftarten.

2009 Oktober: Unicode - Das (Dezimaler Exponentsymbol) Für die Schwimmpunktnotation wurde Unicode 5.2 für die Rückwärtskompatibilität mit historischer Hinsicht hinzugefügt Buranprogramm Algol -Software.[32]

Siehe auch

Verweise

  1. ^ Der Name dieser Sprachfamilie wird manchmal in gemischtem Fall angegeben (Algol 60 Archiviert 25. Juni 2007 bei der Wayback -Maschine) und manchmal in allen Großbuchstaben (Algol68 Archiviert 13. September 2014 bei der Wayback -Maschine). Der Einfachheit halber verwendet dieser Artikel Algol.
  2. ^ Gesammelte Algorithmen des ACM Archiviert 17. Oktober 2011 im Wikiwix Compressed Archives of the Algorithmen. ACM.
  3. ^ O'hearn, P. W.; Tennent, R. D. (September 1996). "Algolähnliche Sprachen, Einführung". Archiviert von das Original am 14. November 2011.
  4. ^ "Die Algol -Programmiersprache" Archiviert 6. Oktober 2016 bei der Wayback -Maschine, Universität von Michigan-Dearborn
  5. ^ Backus, J. W.; Bauer, F. L.; Green, J.; Katz, C.; McCarthy, J.; Perlis, A. J.; Rutishauser, H.; Samelson, K.; Vauquois, b.; Wegstein, J. H.; Van Wijngaarden, A.; Woodger, M. (Mai 1960). Naur, Peter (Hrsg.). "Bericht über das algorithmische Sprachalgol 60". Kommunikation der ACM. Kopenhagen. 3 (5): 299–314. doi:10.1145/367236.367262. ISSN 0001-0782. S2CID 278290.
  6. ^ "Überarbeiteter Bericht über das algorithmische Sprachalgol 60". 1963. Archiviert Aus dem Original am 25. Juni 2007. Abgerufen 8. Juni 2007.
  7. ^ "Ein Algol 60 -Übersetzer für den x1" (PDF). 1961. Abgerufen 7. Januar 2021.
  8. ^ "Überarbeiteter Bericht über das algorithmische Sprachalgol 68" (PDF). 1973. Archiviert (PDF) Aus dem Original am 13. September 2014. Abgerufen 13. September 2014.
  9. ^ Knuth, Donald E. (1964). "Backus Normal Form gegen Backus Naur Form". Kommunikation der ACM. 7 (12): 735–736. doi:10.1145/355588.365140. S2CID 47537431.
  10. ^ ACM Award Citation: Peter Naur Archiviert 2. April 2012 bei Archiv-It, 2005
  11. ^ "Hinweise zum Programmiersprache Design" Archiviert 15. September 2009 bei der Wayback -Maschine, WAGEN. Hoare, Dezember 1973. Seite 27. (Diese Aussage wird manchmal fälschlicherweise zugeschrieben Edsger W. Dijkstraauch an der Implementierung des ersten Algol 60 beteiligt Compiler.))
  12. ^ Dybvig, R. K.; et al. Rees, Jonathan; CLEBER, William; Abelson, Hal (Hrsg.). "Überarbeitete (3) Bericht über das algorithmische Sprachschema (der Erinnerung an Algol 60 gewidmet)". Archiviert Aus dem Original am 14. Januar 2010. Abgerufen 20. Oktober 2009.
  13. ^ O'hearn, Peter; Tennent, Robert D. (1997). Algolähnliche Sprachen. Cambridge, Massachusetts, USA: Birkhauser Boston. doi:10.1007/978-1-4612-4118-8. ISBN 978-0-8176-3880-1. S2CID 6273486.
  14. ^ "Die Enzyklopädie der Computersprachen". Archiviert von das Original am 27. September 2011. Abgerufen 20. Januar 2012.
  15. ^ Geschichte des Computermuseums Archiviert 20. August 2010 bei der Wayback -Maschine, Historischer Zuse-Computer Z23, restauriert vom Konrad Zuse Schule in Hünfeld, für das Computer Museum History Center in Mountain View (Kalifornien) USA
  16. ^ Daylight, E. G. (2011). "Dijkstra's Rallying -Schrei nach der Verallgemeinerung: Das Aufkommen des rekursiven Verfahrens, Ende der 1950er bis Anfang der 1960er Jahre". Das Computerjournal. 54 (11): 1756–1772. Citeseerx 10.1.1.366.3916. doi:10.1093/comjnl/bxr002. Archiviert Aus dem Original am 12. März 2013.
  17. ^ Kruseman Aretz, F.E.J. (30. Juni 2003). "Der Dijkstra-Zonneveld-Algol 60 Compiler für den Electrologica x1". Softwareentwicklung (PDF). Geschichte der Informatik. Amsterdam: Centrum Wiskunde & Informatica. Archiviert (PDF) Aus dem Original am 4. März 2016.
  18. ^ Hoare, Antony (1980). "Die alten Kleider des Kaisers". Kommunikation der ACM. 24 (2): 75–83. doi:10.1145/358549.358561. Archiviert Aus dem Original am 13. September 2017.
  19. ^ Koffman, Eliot. "Alles, was ich wirklich in CS1 kennenlernen muss" (PDF). Archiviert von das Original (PDF) am 12. Oktober 2012. Abgerufen 20. Mai 2012.
  20. ^ "Gogol-PDP-1-Algol 60 (Computersprache)". Online Historische Enzyklopädie von Programmiersprachen. Archiviert Aus dem Original am 2. Februar 2018. Abgerufen 1. Februar 2018.
  21. ^ Wippermann, Hans-Wilm (1968) [1967-06-15, 1966]. "Definition von Schrankenzahl in Triplex-Algol". Computer (auf Deutsch). Karlsruhe, Deutschland: Springer. 3 (2): 99–109. doi:10.1007/bf02277452. ISSN 0010-485x. S2CID 36685400. (11 Seiten)
  22. ^ Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). Compiler: Prinzipien, Techniken und Werkzeuge (1. Aufl.). Addison-Wesley. ISBN 0-201-10194-7., Abschnitt 7.5 und Referenzen darin
  23. ^ "803 Algol" Archiviert 29. Mai 2010 bei der Wayback -Maschinedas Handbuch für Elliott 803 Algol
  24. ^ "ICL 1900 -Serie: Algol -Sprache". ICL Technische Veröffentlichung 3340. 1965.
  25. ^ Wie ASCII seinen Rückgang bekam Archiviert 11. Juli 2014 bei der Wayback -Maschine, Bob Bemer
  26. ^ Eisen-/Runenkreuz
  27. ^ Exponentsymbol für Dezimaler
  28. ^ Baumann, R. (Oktober 1961). "Algol -Handbuch der Alcor -Gruppe, Teil 1" [Algol -Handbuch der Alcor -Gruppe]. Elektronische Readenanlagen (auf Deutsch): 206–212.
  29. ^ Baumann, R. (Dezember 1961). "Algol -Handbuch der Alcor -Gruppe, Teil 2" [Algol -Handbuch der Alcor -Gruppe]. Elektronische Readenanlagen (auf Deutsch). 6: 259–265.
  30. ^ Baumann, R. (April 1962). "Algol -Handbuch der Alcor -Gruppe, Teil 3" [Algol -Handbuch der Alcor -Gruppe]. Elektronische Readenanlagen (auf Deutsch). 2.
  31. ^ "GOST 10859 Standard". Archiviert von das Original am 16. Juni 2007. Abgerufen 5. Juni 2007.
  32. ^ Broukhis, Leonid (22. Januar 2008). "Überarbeiteter Vorschlag zur Codierung des Dezimal -Exponentensymbols" (PDF). www.unicode.org. ISO/IEC JTC 1/SC 2/WG 2. Archiviert (PDF) Aus dem Original am 31. Juli 2015. Abgerufen 24. Januar 2016. Dies bedeutet, dass die Notwendigkeit, GOST-basierte Software und Dokumentation zu transkodieren Die Darstellung von BESM-6 kann nicht einfach neu kompiliert werden und erwartet, dass sie zuverlässig funktionieren, und es kann einige menschliche Interventionen erforderlich sein.

Weitere Lektüre

Externe Links