Aldor

De la Wikipedia, enciclopedia liberă
Jump to navigation Jump to search
Aldor
Paradigmăprogramare orientată pe obiecte, programare funcțională, programare imperativă, tip dependent, programare logică
Apărut în 1990; 29 ani în urmă (1990)
Dezvoltat deRichard Dimick Jenks, Barry Trager, Stephen Watt, James Davenport, Robert Sutor, Scott Morrison
DeveloperThomas J. Watson Research Center
Influențat deA#, Pascal, Haskell
PlatformăAxiom
Sistem de operareLinux, Solaris, Windows
LicențăAldor Public 2.0, Apache 2.0
Websitewww.aldor.org

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[modificare | modificare sursă]

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 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[modificare | modificare sursă]

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[modificare | modificare sursă]

  1. ^ Michael Kaplan: Computeralgebra. Springer, Berlin/Heidelberg 2005, Seite 329
  2. ^ 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
  3. ^ Yannis Chicha, Florence Defaix und Stephen Watt: Interoperability of Languages with Generics, using Aldor, C++ and Java (PDF; 108 kB). Frisco Workshop 1999
  4. ^ 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
  5. ^ Simon Thompson und Leonid Timochouk: The Aldor-- Language. Computing Laboratory, University of Kent at Canterbury

Legături externe[modificare | modificare sursă]