|
|
• Das Algol 68 Genie-Projekt
• Downloads
• Vorkompilierte Versionen
• Frühere Versionen
• Anmerkungen, Fragen oder Fehlermeldungen
• Projekte, die Algol-68-Genie-Code verwenden
• Verweise auf das Algol 68 Genie-Projekt
• Weitere Quellen
Die Entwicklung von Algol spielte eine wichtige Rolle bei der Etablierung der Informatik als akademische Disziplin. Algol 68 wurde von der International Federation for Information Processing Working Group 2.1 für Algorithmic Languages and Calculi entwickelt. Das Mathematisch Centrum Amsterdam (heute CWI, Centrum Wiskunde & Informatica) war ein führendes Institut in diesem Prozess, ebenso wie später bei der Entwicklung von Python.
Das Algol 68 Genie-Projekt bewahrt Algol 68 aus bildungsbezogener und wissenschaftlich-historischer Sicht, indem es eine aktuelle, vollständig neu geschriebene Implementierung sowie eine umfassende Dokumentation sowohl für die Sprache als auch für diese neue Implementierung zur Verfügung stellt. Mit dem hier verfügbaren Material können sich Interessierte an der Geschichte der Informatik mit Algol 68 und der einzigartigen kontextabhängigen Van Wijngaarden Grammatik studieren, um deren Einfluss zu verstehen, aber auch die Sprache tatsächlich für mittelgroße Programmieraufgaben nutzen.
Algol 68 Genie, auch a68g genannt, gehört zu den umfassendsten Implementierungen der Sprache. Es handelt sich um einen Interpreter ähnlich wie Python, mit zahlreichen Laufzeitprüfungen und einem Debugger im Stil von GDB. Die zahlreichen Laufzeitprüfungen erleichtern die Programmentwicklung, indem sie auf nicht initialisierte Objekte, Indizes oder Werte außerhalb ihres Gültigkeitsbereichs, hängende Referenzen und vieles mehr hinweisen. Algol 68 Genie unterstützt partielle Parametrisierung sowie beliebige Arithmetik für ganze Zahlen, reelle Zahlen und komplexe Zahlen.
Algol 68 Genie ist funktional vollständig, und die jüngsten Veröffentlichungen betreffen hauptsächlich Wartungsarbeiten und Ergänzungen der Laufzeitbibliothek. Der Interpreter implementiert eine Erweiterung der Sprache, nämlich den 1976 veröffentlichten Vorschlag zur partiellen Parametrisierung von Charles Lindsey, der der imperativen Sprache Algol 68 eine funktionale Subsprache verleiht. Beachten Sie, dass die Verantwortung für Algol 68 weiterhin bei der IFIP Working Group 2.1 liegt und dass es nicht die Absicht dieses Projekts ist, die Sprache zu modernisieren. Das Projekt zielt darauf ab, die ursprüngliche Sprache für Studien- und Referenzzwecke zu bewahren.
Die Dokumentation umfasst detaillierte Installationsanweisungen, ein umfassendes Handbuch zur Programmierung in Algol 68 sowie den Revised Report on Algol 68.
Auf Plattformen wie Linux oder FreeBSD kann vollständig debuggter Algol-68-Code optional teilweise mit a68g kompiliert werden. Der resultierende Objektcode wird dann während der Ausführung durch den Interpreter dynamisch verknüpft. Beachten Sie, dass eine Kompilierung oft nicht erforderlich ist, beispielsweise bei kleinen bis mittelgroßen Programmen, wie sie für Programmieraufgaben typisch sind.
Algol 68 Genie Version 3 wurde unter Debian GNU/Linux entwickelt und unter FreeBSD sowie Microsoft Windows 11 getestet. Die unten stehende vorkompilierte Binärversion für Windows 11 ist mit der GNU Scientific Library, GNU plotutils und R mathlib verknüpft und muss über eine Befehlszeilenschnittstelle wie powershell ausgeführt werden.
Algol 68 Genie ist Open-Source-Software und wird unter der GNU General Public License vertrieben. Im Laufe der Jahre haben viele Personen zu dem Projekt beigetragen, die in dem Buch Learning Algol 68 Genie genannt werden. Ohne ihre Beiträge wäre das Algol 68 Genie-Projekt nicht zu dem geworden, was es heute ist.
|
Eine WIN64-Ausführungsdatei für Windows 11 kann über den obigen Abschnitt heruntergeladen werden. Weitere vorkompilierte Algol 68 Genie-Binärdateien für die wichtigsten Distributionen finden Sie hier.
Ausgewählte frühere Versionen finden Sie in diesem repository. Weitere Repositories finden Sie beispielsweise unter github oder SourceForge.
Die Entwicklung von Algol 68 Genie begann um 1990. Alpha- und Beta-Versionen wurden von 2001 bis 2002 veröffentlicht. Revisionen der Version 1 wurden von 2002 bis 2009 veröffentlicht, Revisionen der Version 2 wurden von 2010 bis 2018 veröffentlicht, und Revisionen der Version 3 ab 2022.
Bitte senden Sie Anmerkungen, Fragen oder Fehlermeldungen an algol68g@algol68genie.nl; wir freuen uns sehr über Ihr Feedback.
Im Jahr 2025 kündigte José Marchesi ein Projekt zur Entwicklung von ga68, an, einem Algol-68-Frontend für GCC, die GNU Compiler Collection. Der Parser von ga68 basiert auf dem manuell programmierten Algol 68 Genie-Parser für Algol 68 von Van Wijngaarden Grammatik. Das GCC Steering Committee hat zugestimmt, ga68 in trunk als "experimentell", und es ist seit der Version 16.1 verfügbar. Die GNU Algol 68 Working Group betreibt diese Website.
• Interview with Marcel van der Veer, Chris Hermansen, both.org [2025].
• ga68: the GNU Algol 68 compiler, José Marchesi, presentation at GNU Tools Cauldron [2025].
• Thinking about Algol 68, Chris Hermansen, both.org [2025].
• A Small Algol 68 Project, Part 1, Part 2, Part 3, Chris Hermansen, both.org [2025].
• An Algol 68 Pretty Printer, Chris Hermansen, both.org [2025].
• The latest language in the GNU Compiler Collection: Algol-68, Liam Proven, The Register [2025].
• Algol 68 implementations and dialects, Paul McJones, Software Preservation Group, Computer History Museum.
• ALGOL: the father of mainstream languages, Mike Bedford, Linux Format (302) [2023]
• Two-level grammars: Some interesting properties of van Wijngaarden grammars, Luis M. Augusto, Omega - Journal of Formal Languages(1) [2023]
• Strange Code - Esoteric Languages That Make Programming Fun Again, Ronald T. Kneusel, No Starch Press, San Fransisco [2022]
• Learn a new old language by programming a game in Algol 68, Chris Hermansen, opensource.com [2020]
• Exploring Algol 68 in the 21st century, Chris Hermansen, opensource.com [2020]
• Algol revisited, Paul Mallison, Crystallography News, British Crystallographic Association [2020]
• Topics in Programming Languages, a Philosophical Analysis through the case of Prolog, Luís Homem, Universidad de Salamanca, Facultad de Filosofía [2018]
• Algol 68 – A Retrospective, Daniel James, accu.org [2018]
• Localización e internacionalización de software: puntos de encuentro entre el localizador y el programador, Luis Alberto García Nevares, Universidad de Salamanca, Facultad de Traducción y Documentación [2016]
• Minutes of IFIP WG2.1 60th meeting [2005]
• Rosetta Code. Eine Programmier-Chrestomathie mit über tausend Algol-68-Beispielprogrammen.
• Visual Studio Code Erweiterung zur Syntaxhervorhebung von Algol 68.
• Emacs major mode für die Syntaxhervorhebung und kontextsensitive Einrückung in Algol 68.