Aldor
Aldor | |
Aldor | |
Paradigmă | programare orientată pe obiecte, programare funcțională, programare imperativă, tip dependent, programare logică |
---|---|
Apărut în | 1990 |
Proiectat de | Richard Dimick Jenks, Barry Trager, Stephen Watt, James Davenport, Robert Sutor, Scott Morrison |
Dezvoltator | Thomas J. Watson Research Center |
Influențat de | A#, Pascal, Haskell |
Platformă | Axiom |
Sistem de operare | Linux, Solaris, Windows |
Licență | Aldor Public 2.0, Apache 2.0 |
Prezență online | www.aldor.org |
Modifică date / text |
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, „Aldor Programming Language”. Aldor.org. Accesat în . 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
modificareAldor 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 1994[1] î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.[2] 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++.[3]
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.[4]
La Universitatea din Kent, Aldor-- a fost dezvoltat, un limbaj funcțional bazat pe un subset al limbii Aldor.[5]
Exemple
modificareProgramul 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
#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
modificare- ^ Michael Kaplan: Computeralgebra. Springer, Berlin/Heidelberg 2005, Seite 329
- ^ 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
- ^ Yannis Chicha, Florence Defaix und Stephen Watt: Interoperability of Languages with Generics, using Aldor, C++ and Java (PDF; 108 kB). Frisco Workshop 1999
- ^ 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
- ^ Simon Thompson und Leonid Timochouk: The Aldor-- Language. Computing Laboratory, University of Kent at Canterbury