Jump to content

Алдор

Алдор
Парадигма Мультипарадигмальность : объектно-ориентированная , функциональная , императивная , зависимо-типизированная , логическая.
Разработано Ричард Димик Дженкс, Бэрри Трэгер, Стивен Уотт, Джеймс Дэвенпорт, Роберт Сьютор, Скотт Моррисон
Разработчик Исследовательский центр Томаса Дж. Уотсона
Впервые появился 1990 год ; 34 года назад ( 1990 )
Стабильная версия
1.0.3
Предварительный выпуск
1.1.0
Платформа Система компьютерной алгебры Аксиома
ТЫ Линукс , Солярис , Винда
Лицензия Алдор Публичный 2.0, Апач 2.0
Расширения имен файлов .увы
Веб-сайт Алдор .org
Основные реализации
Система компьютерной алгебры Аксиома
Под влиянием
А# , Паскаль , Хаскель

Алдор язык программирования . [1] [2] [3] Это преемник A# в качестве языка расширения системы компьютерной алгебры Axiom .

Aldor сочетает в себе императивные, функциональные и объектно-ориентированные функции. Он имеет сложную систему типов, [4] позволяя использовать типы в качестве значений первого класса. Синтаксис Aldor находится под сильным влиянием Pascal , но он опционально чувствителен к отступам, использует пробельные символы и правило офсайда , как Python . В текущей реализации он компилируется, но предоставляется интерактивный прослушиватель.

Aldor распространяется как бесплатное программное обеспечение с открытым исходным кодом по лицензии Apache License 2.0.

Программа Hello world выглядит так:

#include "aldor"
#include "aldorio"

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

Пример зависимых типов (из Руководства пользователя):

#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 бутылок пива :

#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();
  1. ^ Гердт Владимир П.; Кепф, Вольфрам; Майр, Эрнст В.; Ворожцов, Евгений В. (7 сентября 2010 г.). Компьютерная алгебра в научных вычислениях: 12-й международный семинар, CASC 2010, Цахадзор, Армения, 6-12 сентября 2010 г., Труды . Спрингер. ISBN  978-3-642-15274-0 . Проверено 5 июля 2023 г.
  2. ^ Киршнер, Хелен; Рингайссен, Кристоф (30 декабря 2006 г.). Границы объединения систем: Третий международный семинар, FroCoS 2000, Нанси, Франция, 22-24 марта 2000 г., материалы . Спрингер. ISBN  978-3-540-46421-1 .
  3. ^ Кербер, Манфред; Кольхасе, Майкл (2 апреля 2001 г.). Символические вычисления и автоматизированные рассуждения: Симпозиум CALCULEMUS-2000 . ЦРК Пресс. ISBN  978-1-4398-6423-4 . Проверено 5 июля 2023 г.
  4. ^ «Язык программирования Алдор» . Aldor.org . Проверено 12 февраля 2017 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a5c8bd9897946ec644e780c8d373e3f8__1714973580
URL1:https://arc.ask3.ru/arc/aa/a5/f8/a5c8bd9897946ec644e780c8d373e3f8.html
Заголовок, (Title) документа по адресу, URL1:
Aldor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)