<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Aldor_%28Programmiersprache%29</id>
	<title>Aldor (Programmiersprache) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Aldor_%28Programmiersprache%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Aldor_(Programmiersprache)&amp;action=history"/>
	<updated>2026-06-04T07:39:26Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Aldor_(Programmiersprache)&amp;diff=1655552&amp;oldid=prev</id>
		<title>imported&gt;Trustable: -BKH</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Aldor_(Programmiersprache)&amp;diff=1655552&amp;oldid=prev"/>
		<updated>2026-04-11T00:12:39Z</updated>

		<summary type="html">&lt;p&gt;-BKH&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Aldor&amp;#039;&amp;#039;&amp;#039; ist eine [[Programmiersprache]], die hauptsächlich im Umfeld von [[Computeralgebrasystem]]en verwendet wird.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Aldor wurde seit 1985 am [[Thomas J. Watson Research Center]] unter Leitung von [[Stephen M. Watt]] entwickelt, ab Anfang der 1990er-Jahre in Kooperation mit der [[Numerical Algorithms Group]]. Anfangs wurde die Sprache als &amp;#039;&amp;#039;A#&amp;#039;&amp;#039; bezeichnet, diente zur Erweiterung von [[Axiom (Software)|Axiom]] und wurde ab 1994&amp;lt;ref&amp;gt;Michael Kaplan: &amp;#039;&amp;#039;[http://books.google.de/books?id=xScb4ehhwIYC Computeralgebra]&amp;#039;&amp;#039;. Springer, Berlin/Heidelberg 2005, Seite 329&amp;lt;/ref&amp;gt; auch gemeinsam mit Axiom vertrieben. Daraus leitete sich ein weiterer zwischenzeitlicher Name, &amp;#039;&amp;#039;Axiom XL&amp;#039;&amp;#039; (Axiom Extension Language), ab.&lt;br /&gt;
&lt;br /&gt;
1994 wurde der A#-Compiler erstmals der Öffentlichkeit vorgestellt.&amp;lt;ref&amp;gt;Stephen M. Watt, Peter A. Broadbery, Samuel S. Dooley, Pietro Iglio, Scott C. Morrison, Jonathan M. Steinbach und Robert S. Sutor: &amp;#039;&amp;#039;[http://www.csd.uwo.ca/~watt/pub/reprints/1994-issac-asharp.pdf A First Report on the A# Compiler] (PDF; 194&amp;amp;nbsp;kB)&amp;#039;&amp;#039;. International Symposium on Symbolic and Algebraic Computation 1994&amp;lt;/ref&amp;gt; Dieser Compiler übersetzte Aldor-Programme in eine Zwischensprache namens &amp;#039;&amp;#039;Foam&amp;#039;&amp;#039;, für die bereits ein Compiler existierte. Damit konnten sowohl eigenständige Programme als auch [[Programmbibliothek]]en erstellt werden. Zusätzlich konnte auch [[C (Programmiersprache)|C-]] und [[LISP]]-Code generiert werden. Der Compiler selbst war überwiegend in C, zu einem kleinen Teil auch in A# geschrieben und war unter [[MS-DOS|DOS]], [[Unix]], [[OS/2]] und weiteren Betriebssystemen lauffähig.&lt;br /&gt;
&lt;br /&gt;
Seit 1999 kann Aldor auch zusammen mit [[C++]] verwendet werden. Aldor-Programme können in C++ geschriebenen Code nutzen, außerdem erzeugt der Compiler auf Wunsch die nötigen Schnittstellen, um in Aldor geschriebene Teilprogramme aus einem C++-Programm heraus aufzurufen.&amp;lt;ref&amp;gt;Yannis Chicha, Florence Defaix und Stephen Watt: &amp;#039;&amp;#039;[http://www.csd.uwo.ca/~watt/pub/reprints/1999-frisco-interop.pdf Interoperability of Languages with Generics, using Aldor, C++ and Java] (PDF; 108&amp;amp;nbsp;kB)&amp;#039;&amp;#039;. Frisco Workshop 1999&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seit 2001 wird Aldor unabhängig von Axiom über eine eigene Webseite vertrieben. 2004 wurde eine Schnittstelle veröffentlicht, die es ermöglicht, Aldor auch mit [[Maple (Software)|Maple]] einzusetzen.&amp;lt;ref&amp;gt;Cosmin Oancea und Stephen M. Watt: &amp;#039;&amp;#039;[http://www.csd.uwo.ca/~watt/pub/reprints/2004-eaca-mapal.pdf A Framework for Using Aldor Libraries with Maple] (PDF; 83&amp;amp;nbsp;kB)&amp;#039;&amp;#039;. Actas de los Encuentros de Algebra Computacional y Aplicaciones 2004&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An der [[University of Kent]] wurde &amp;#039;&amp;#039;Aldor--&amp;#039;&amp;#039; entwickelt, eine [[Funktionale Programmierung|funktionale Sprache]], die auf einer Teilmenge der Sprache Aldor basiert.&amp;lt;ref&amp;gt;Simon Thompson und Leonid Timochouk: &amp;#039;&amp;#039;[http://www.cs.kent.ac.uk/people/staff/sjt/Atypical/amm.ps The Aldor-- Language]&amp;#039;&amp;#039;. Computing Laboratory, University of Kent at Canterbury&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Spracheigenschaften ==&lt;br /&gt;
Die Syntax von Aldor ist durch [[Pascal (Programmiersprache)|Pascal]] beeinflusst. Optional wird wie bei [[Python (Programmiersprache)|Python]] die Einrückung berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
Aldor besitzt Merkmale sowohl [[Imperative Programmierung|imperativer]] und [[Objektorientierte Programmierung|objektorientierter]] als auch [[Funktionale Programmierung|funktionaler]] Sprache. Das [[Überladen]] von Funktionen und Operatoren wird unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Typsystem ===&lt;br /&gt;
Das [[Typsystem]] ist [[Statische Typisierung|statisch]], [[Implizite Typisierung|implizierend]], nicht [[Typsicherheit|typsicher]] und erlaubt die Verwendung von Typen und Funktionen als [[First-Class-Objekt]]. Wie viele andere funktionale Sprachen verwendet auch Aldor [[starke Typisierung]]. Für Computeralgebrasysteme ist starke Typisierung hingegen ungewöhnlich. Aufgrund des Mathematikbezugs der Sprache ist das Typsystem von Aldor komplexer als die Typsysteme anderer Sprachen.&amp;lt;ref&amp;gt;Erik Poll und Simon Thompson: &amp;#039;&amp;#039;[http://kar.kent.ac.uk/22041/1/Integrating_Computer_Algebra_and_Reasoning_through_the_Type_System_of_Aldor.pdf Integrating Computer Algebra and Reasoning through the Type System of Aldor] (PDF; 337&amp;amp;nbsp;kB)&amp;#039;&amp;#039;. 3rd International Workshop on Frontiers of Combining Systems 2000&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aldor unterstützt auch [[abhängige Typisierung]]. Dabei handelt es sich um eine Form der Polymorphie, bei der Typen auch von Werten abhängig sein können. Möglich sind damit zum Beispiel Funktionen vom Typ &amp;#039;&amp;#039;(n:Integer) → Vector(n) → Double&amp;#039;&amp;#039;. Eine solche Funktion könnte &amp;#039;&amp;#039;avg&amp;#039;&amp;#039; sein, die eine Zahl &amp;#039;&amp;#039;n&amp;#039;&amp;#039; und einen [[Vektor]] mit &amp;#039;&amp;#039;n&amp;#039;&amp;#039; Elementen erhält und daraus den Durchschnitt der Elemente des Vektors berechnet.&lt;br /&gt;
&lt;br /&gt;
Die abhängige Typisierung ist dadurch eingeschränkt, dass eine Auswertung der Werte während der Typprüfung nicht stattfindet. Das führt dazu, dass etwa &amp;#039;&amp;#039;Vector (2)&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Vector (1+1)&amp;#039;&amp;#039; unterschiedliche Typen sind.&amp;lt;ref&amp;gt;Erik Poll und Simon Thompson: &amp;#039;&amp;#039;[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.7.1457&amp;amp;rep=rep1&amp;amp;type=ps Adding the axioms to Axiom: Towards a system of automated reasoning in Aldor]&amp;#039;&amp;#039;. Computing Laboratory, University of Kent 1998&amp;lt;/ref&amp;gt; Abhängige Typisierung gilt heute noch als schwierig und mit statischer Typprüfung nur mit Einschränkungen kombinierbar.&amp;lt;ref&amp;gt;Peter Pepper und Petra Hofstedt: &amp;#039;&amp;#039;Funktionale Programmierung&amp;#039;&amp;#039;. Springer, Berlin/Heidelberg 2006, Seite 152&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lizenz ==&lt;br /&gt;
Aldor ist unter der [[Apache-Lizenz]] veröffentlicht und damit [[freie Software]].&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
;[[Hallo-Welt-Programm]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;aldor&amp;quot;&lt;br /&gt;
#include &amp;quot;aldorio&amp;quot;&lt;br /&gt;
&lt;br /&gt;
stdout &amp;lt;&amp;lt; &amp;quot;Hello, world!&amp;quot; &amp;lt;&amp;lt; newline;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;[[99 Bottles of Beer]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;aldor&amp;quot;&lt;br /&gt;
#include &amp;quot;aldorio&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import from Integer, String;&lt;br /&gt;
&lt;br /&gt;
bob(n: Integer): String == {&lt;br /&gt;
    b: String := &amp;quot; bottle&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    if n ~= 1 then b := b + &amp;quot;s&amp;quot;;&lt;br /&gt;
    b + &amp;quot; of beer&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main(): () == {&lt;br /&gt;
    n: Integer := 99;&lt;br /&gt;
    otw: String := &amp;quot; on the wall&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    -- refrain&lt;br /&gt;
    while n &amp;gt; 0 repeat {&lt;br /&gt;
        stdout &amp;lt;&amp;lt; n &amp;lt;&amp;lt; bob(n) &amp;lt;&amp;lt; otw &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; n &amp;lt;&amp;lt; bob(n) &amp;lt;&amp;lt; &amp;quot;.&amp;quot; &amp;lt;&amp;lt; newline;&lt;br /&gt;
        stdout &amp;lt;&amp;lt; &amp;quot;Take one down and pass it around, &amp;quot;;&lt;br /&gt;
        n := n - 1;&lt;br /&gt;
        if n &amp;gt; 0 then stdout &amp;lt;&amp;lt; n;&lt;br /&gt;
        else stdout &amp;lt;&amp;lt; &amp;quot;no more&amp;quot;;&lt;br /&gt;
        stdout &amp;lt;&amp;lt; bob(n) &amp;lt;&amp;lt; otw &amp;lt;&amp;lt; &amp;quot;.&amp;quot; &amp;lt;&amp;lt; newline;&lt;br /&gt;
        stdout &amp;lt;&amp;lt; newline;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    -- last verse&lt;br /&gt;
    stdout &amp;lt;&amp;lt; &amp;quot;No more&amp;quot; &amp;lt;&amp;lt; bob(n) &amp;lt;&amp;lt; otw &amp;lt;&amp;lt; &amp;quot;, no more&amp;quot; &amp;lt;&amp;lt; bob(n) &amp;lt;&amp;lt; &amp;quot;.&amp;quot; &amp;lt;&amp;lt; newline;&lt;br /&gt;
    stdout &amp;lt;&amp;lt; &amp;quot;Go to the store and buy some more, &amp;quot;;&lt;br /&gt;
    n: Integer := 99;&lt;br /&gt;
    stdout &amp;lt;&amp;lt; n &amp;lt;&amp;lt; bob(n) &amp;lt;&amp;lt; otw &amp;lt;&amp;lt; &amp;quot;.&amp;quot; &amp;lt;&amp;lt; newline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Johannes Grabmeier, Erich Kaltofen und Volker Weispfennig: &amp;#039;&amp;#039;[http://books.google.de/books?id=Pnlxei_XfFQC Computer algebra handbook: foundations, applications, systems, Band 1]&amp;#039;&amp;#039;. Springer, Berlin/Heidelberg 2003&lt;br /&gt;
* Erik Poll and Simon Thompson: &amp;#039;&amp;#039;[http://www.cs.kent.ac.uk/pubs/1999/874/content.ps The Type System of Aldor]&amp;#039;&amp;#039;. Technical Report 11-99, Computing Laboratory, University of Kent at Canterbury, July 1999.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.aldor.org/ Offizielle Website]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprache]]&lt;br /&gt;
[[Kategorie:Computeralgebrasystem]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Trustable</name></author>
	</entry>
</feed>