Aldor este un limbaj de programare. Este succesorul lui A# ca limbaj de extensie al sistemului de algebră al computerului Axiom.

Aldor combină caracteristici imperative, funcționale și orientate spre obiecte. Are un sistem de tip elaborat, Sintaxa lui ldor este puternic influențată de Pascal, dar este opțional sensibilă la indentare, folosind caracterele spațiului alb și regula extra-laterală, precum Python. În implementarea actuală, este compilată, dar este furnizat un ascultător interactiv.

Aldor este distribuit ca software liber și cu sursă deschisă, sub licența Apache 2.0.

Istorie Aldor a fost dezvoltat din 1985 în Centrul de Cercetare Thomas J. Watson sub îndrumarea lui Stephen M. Watt, de la începutul anilor 1990, în colaborare cu Grupul Algoritmilor Numerici. Inițial, limba a fost menționată ca A#, a fost folosită pentru a extinde axiomul și a fost distribuită din 1994Michael Kaplan: Computeralgebra. Springer, Berlin/Heidelberg 2005, Seite 329 împreună cu Axiom. Acest lucru a dus la un alt nume intermediar, Axiom XL (Axiom Extension Language).

În 1994, compilatorul A# a fost pentru prima dată prezentat publicului.Stephen M. Watt, Peter A. Broadbery, Samuel S. Dooley, Pietro Iglio, Scott C. Morrison, Jonathan M. Steinbach und Robert S. Sutor: A First Report on the A# Compiler (PDF; 194 kB). International Symposium on Symbolic and Algebraic Computation 1994 Acest compilator a tradus programele Aldor într-o limbă intermediară numită Foam, pentru care deja exista un compilator. Astfel, ar putea fi create atât programe independente, cât și biblioteci de programe. În plus, codul C și LISP ar putea fi, de asemenea generat. Compilatorul în sine a fost în principal scris în C, într-o mică măsură, de asemenea în A# și a fost executabil sub DOS, UNIX, OS/2 și alte sisteme de operare.

Din 1999, Aldor poate fi folosit împreună cu C++. Programele Aldor pot folosi codul scris în C++ și dacă este nevoie, compilatorul generează interfețele necesare pentru a apela subprograme scrise în Aldor dintr-un program C++.Yannis Chicha, Florence Defaix und Stephen Watt: Interoperability of Languages with Generics, using Aldor, C++ and Java (PDF; 108 kB). Frisco Workshop 1999

Din 2001, Aldor este distribuit independent de Axiom pe site-ul propriu. În 2004, a fost publicată o interfață, ceea ce face posibilă utilizarea lui Aldor și cu Maple.Cosmin Oancea und Stephen M. Watt: A Framework for Using Aldor Libraries with Maple (PDF; 83 kB). Actas de los Encuentros de Algebra Computacional y Aplicaciones 2004

La Universitatea din Kent, Aldor-- a fost dezvoltat, un limbaj funcțional bazat pe un subset al limbii Aldor.Simon Thompson und Leonid Timochouk: The Aldor-- Language. Computing Laboratory, University of Kent at Canterbury

Exemple Programul Program Hello, world! arată astfel: #include "aldor" #include "aldorio"

stdout << "Hello, world!" << newline;

Exemplu de tipuri dependente (din Ghidul utilizatorului): #include "aldor" #include "aldorio" #pile

sumlist(R: ArithmeticType, l: List R): R == s: R := 0; for x in l repeat s := s + x s

import from List Integer, Integer, List SingleFloat, SingleFloat stdout << sumlist(Integer, [2,3,4,5]) << newline stdout << sumlist(SingleFloat, [2.0, 2.1, 2.2, 2.4]) << newline

99 Sticle de bere #include "aldor" #include "aldorio"

import from Integer, String;

bob(n: Integer): String == { b: String := " bottle";

if n ~= 1 then b := b + "s"; b + " of beer"; }

main(): () == { n: Integer := 99; otw: String := " on the wall";

-- refrain while n > 0 repeat { stdout << n << bob(n) << otw << ", " << n << bob(n) << "." << newline; stdout << "Take one down and pass it around, "; n := n - 1; if n > 0 then stdout << n; else stdout << "no more"; stdout << bob(n) << otw << "." << newline; stdout << newline;

-- last verse stdout << "No more" << bob(n) << otw << ", no more" << bob(n) << "." << newline; stdout << "Go to the store and buy some more, "; n: Integer := 99; stdout << n << bob(n) << otw << "." << newline; }

main();

Note

Legături externe

Open Source Development Aldor User Guide

Categorie:Limbaje de programare