Аксиома (система компьютерной алгебры)
Разработчик(и) | Независимая группа людей |
---|---|
Стабильная версия | |
Предварительный выпуск | Мастер Сурсгорна
/ 6 февраля 2022 г |
Репозиторий | https://sourceforge.net/p/axiom/code/ |
Написано в | Лисп |
Операционная система | Кросс-платформенный |
Тип | Система компьютерной алгебры |
Лицензия | Модифицированная лицензия BSD |
Веб-сайт | www |
Axiom — бесплатная общего назначения система компьютерной алгебры . Он состоит из среды интерпретатора, компилятора и библиотеки, которая определяет строго типизированную иерархию.
История
[ редактировать ]Две системы компьютерной алгебры под названием Scratchpad были разработаны IBM . Первый из них был основан в 1965 году Джеймсом Грисмером. [ 2 ] по просьбе Ральфа Гомори и написан на Фортране . [ 3 ] Разработка этого программного обеспечения была остановлена до его публичного выпуска. Второй блокнот, первоначально называвшийся Scratchpad II , разрабатывался с 1977 года в Исследовательском центре Томаса Дж. Уотсона под руководством Ричарда Димика Дженкса. [ 4 ]
Разработка в основном принадлежит Ричарду Д. Дженксу (IBM Research), Джеймсу Х. Давенпорту (Университет Бата), Барри М. Трэгеру (IBM Research), Дэвиду Ю. Юну (Южный методистский университет) и Виктору С. Миллеру (IBM Research). ). Первыми консультантами проекта были Дэвид Бартон (Калифорнийский университет, Беркли) и Джеймс Тэтчер (IBM Research). В реализации участвовали Роберт Сутор (IBM Research), Скотт С. Моррисон (Калифорнийский университет, Беркли), Кристин Дж. Сундаресан (IBM Research), Тимоти Дейли (IBM Research), Патриция Джанни (Университет Пизы), Альбрехт Фортенбахер (Университет Карлсруэ). ), Стивен М. Уотт (IBM Research и Университет Ватерлоо), Джош Коэн (Йельский университет), Майкл Ротштейн (Кент Государственный университет), Мануэль Бронштейн (IBM Research), Майкл Монаган (Университет Саймона Фрейзера), Джонатан Стейнбах (IBM Research), Уильям Бердж (IBM Research), Джим Вен (IBM Research), Уильям Сит (Городской колледж Нью-Йорка), и Клифтон Уильямсон (IBM Research) [ 5 ]
Scratchpad II был переименован в Axiom , когда примерно в 1990 году IBM решила сделать его коммерческим продуктом. Через несколько лет он был продан NAG . В 2001 году он был отозван с рынка и перевыпущен под модифицированной лицензией BSD . С тех пор ведущим разработчиком проекта является Тим Дейли.
В 2007 году Axiom разветвлялась дважды с открытым исходным кодом , в результате чего возникло два разных проекта : OpenAxiom. [ 6 ] и FriCAS , [ 7 ] после «серьезных разногласий по поводу целей проекта». [ 8 ] Проект Axiom продолжал развивать Тим Дейли.
Текущее направление исследований — «Доказательство разумности аксиомы» , то есть логичности, рациональности, рассудительности и здравости.
Документация
[ редактировать ]Axiom — грамотная программа . [ 9 ] Исходный код становится доступным в наборе томов, доступных на axiom-developer.org
веб-сайт. Эти тома содержат фактический исходный код системы.
На данный момент доступны следующие документы:
- Комбинированное оглавление
- Том 0: Аксиома Дженкса и Сьютора — Основной учебник.
- Том 1: Учебное пособие по Axiom — простое введение
- Том 2: Руководство пользователя Axiom — Подробные примеры использования домена (неполные)
- Том 3: Руководство программиста Axiom — Примеры написания программ (неполное)
- Том 4: Руководство для разработчиков Axiom — краткие эссе на темы, специфичные для разработчиков (неполные).
- Том 5: Интерпретатор Axiom — Исходный код интерпретатора Axiom (неполный)
- Том 6: Команда Axiom — Исходный код системных команд и сценариев (неполный)
- Том 7: Axiom Hyperdoc — Исходный код и объяснение браузера справки X11 Hyperdoc.
- Том 7.1 Axiom Hyperdoc Pages — Исходный код для страниц Hyperdoc.
- Том 8: Axiom Graphics — Исходный код графической подсистемы X11.
- Том 8.1 Галерея Axiom — Галерея изображений Axiom
- Том 9: Компилятор Axiom — Исходный код компилятора Spad (неполный)
- Том 10: Реализация алгебры аксиом . Очерки по вопросам реализации (неполное)
- Том 10.1: Теория аксиомной алгебры - Очерки, содержащие основную теорию
- Том 10.2: Категории алгебры аксиом — исходный код для категорий аксиом.
- Том 10.3: Области алгебры аксиом — исходный код для областей аксиомы
- Том 10.4: Пакеты алгебры Axiom — Исходный код пакетов Axiom
- Том 10.5: Числовые значения алгебры аксиом — исходный код числовых значений аксиомы.
- Том 11: Браузер Axiom — Исходные страницы для интерфейса браузера Axiom Firefox.
- Том 12: Axiom Crystal — Исходный код внешнего интерфейса Axiom Crystal (неполный)
- Том 13: Доказательство правильности аксиомы — Доказательство алгебры аксиом (неполное)
- Том 15: Компилятор Axiom SANE
- Библиография: Библиография Axiom — Ссылки на литературу.
- Список ошибок: Список ошибок Axiom - Список ошибок
- Справочная карта: Справочная карта Axiom — обзор полезных функций
Видео
[ редактировать ]В проекте Axiom основное внимание уделяется предоставлению документации. Недавно проект анонсировал первое из серии обучающих видеороликов, которые также доступны на сайте axiom-developer.org
[ 10 ] веб-сайт. Первое видео [ 11 ] предоставляет подробную информацию об источниках информации Axiom. [ 11 ]
Философия
[ редактировать ]Проект Axiom фокусируется на «30-летнем горизонте». Основная философия заключается в том, что Axiom необходимо разработать несколько фундаментальных функций, чтобы быть полезной для следующего поколения математиков-вычислителей. Кнута Грамотная техника программирования используется во всем исходном коде. Axiom планирует использовать технологию доказательства для доказательства правильности алгоритмов (таких как Coq и ACL2 ).
Axiom использует Docker- контейнеры как часть непрерывного процесса выпуска. Последний образ доступен на любой платформе с помощью docker и команд:
docker pull daly/axiom
docker run -i -t daly/axiom axiom
Дизайн
[ редактировать ]В Axiom каждый объект имеет тип. Примерами типов являются математические структуры (такие как кольца , поля , полиномы ), а также структуры данных из информатики (например, списки , деревья , хеш-таблицы ).
Функция может принимать тип в качестве аргумента, и ее возвращаемое значение также может быть типом. Например, Fraction
это функция, которая принимает IntegralDomain
в качестве аргумента и возвращает поле долей своего аргумента. Другой пример: кольцо матрицы с рациональными элементами будут построены как SquareMatrix(4, Fraction Integer)
. Конечно, работая в этой области, 1
интерпретируется как единичная матрица и A^-1
даст обратную матрицу A
, если он существует.
Несколько операций могут иметь одно и то же имя, а типы аргументов и результата используются для определения того, какая операция применяется (см. Перегрузку функции ).
Axiom поставляется с языком расширения SPAD. Все математические знания Аксиомы записаны на этом языке. Переводчик принимает примерно тот же язык.
Функции
[ редактировать ]В среде интерпретатора Axiom использует вывод типов и эвристический алгоритм, чтобы сделать явные аннотации типов практически ненужными.
Он оснащен HyperDoc, интерактивной справочной системой, похожей на браузер, и может отображать двух- и трехмерную графику, а также предоставляет интерактивные функции, такие как вращение и освещение. Он также имеет специализированный режим взаимодействия для Emacs , а также плагин для редактора TeXmacs .
-
HyperDoc, отображающий доступные операции для домена
-
Аксиома отображения поверхности
-
Интерфейс браузера Axiom Firefox
-
Аксиома, упрощающая уравнение теплопроводности
-
Манипулирование матрицей аксиом
-
Вычисление аксиомы интеграла Риша
В Axiom есть реализация алгоритма Риша для элементарного интегрирования, разработанная Мануэлем Бронштейном и Барри Трэгером. Хотя эта реализация может найти большинство элементарных первообразных и узнать, существуют ли они, она имеет некоторые нереализованные ветки и вызывает ошибку, когда такие случаи встречаются во время интеграции. [ 12 ] [ 13 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Теги Дейли/Аксиомы» . Докер-хаб . Проверено 25 марта 2022 г.
- ^ Фитч, Джон (23 июля 2012 г.). «Джеймс Грисмер 1929–2011» . ACM-коммуникации в компьютерной алгебре . 46 (1/2): 10–11. дои : 10.1145/2338496.2338499 . S2CID 36788754 .
- ^ «Система компьютерной алгебры Аксиома» . axiom-developer.org .
- ^ «Биографические сведения о Ричарде Д. Дженксе» . www.eecis.udel.edu .
- ^ «ЕВРОКАЛ '85 | СпрингерЛинк» . www.springer.com .
- ^ «OpenAxiom: Открытая платформа научных вычислений» . www.open-axiom.org .
- ^ «FriCAS 18a5ef5d99c796a89efeac06df40043a85b3d44d — FriCAS» . fricas.github.io .
- ^ «История — FriCAS» . fricas.github.io .
- ^ Почему грамотное программирование? на сайте axiom-developer.org
- ^ «Система компьютерной алгебры Аксиома» . www.axiom-developer.org .
- ^ Jump up to: а б «Источники информации о системе компьютерной алгебры Axiom» . Ютуб . 30 ноября 2008 г.
- ^ Бронштейн, Мануэль (5 сентября 2003 г.). «Мануэль Бронштейн об интеграционных возможностях Axiom» . groups.google.com . Проверено 10 февраля 2023 г.
- ^ «интеграция. Существует ли полная реализация алгоритма Риша?» . MathOverflow . 15 октября 2020 г. Проверено 10 февраля 2023 г.
Дальнейшее чтение
[ редактировать ]- Джеймс Х. Грисмер; Ричард Д. Дженкс (1971). «SCRATCHPAD/1: Интерактивное средство для символьной математики | Материалы второго симпозиума ACM по символическим и алгебраическим манипуляциям (SYMSAC '71)»: 42–58.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Ричард Д. Дженкс (1971). META/PLUS — Средство расширения синтаксиса для SCRATCHPAD (отчет об исследовании). IBM Исследовательский центр Томаса Дж. Уотсона . РП 3259.
- Джеймс Х. Грисмер; Ричард Д. Дженкс (1972). «Опыт работы с онлайн-системой символьной математики | Материалы конференции ONLINE72». 1 . Университет Брунеля : 457–476.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Джеймс Х. Грисмер; Ричард Д. Дженкс (1972). «Блокнот». Уведомления ACM SIGPLAN . 7 (10): 93–102. дои : 10.1145/942576.807019 .
- Ричард Д. Дженкс (1974). «Язык блокнота». Бюллетень ACM SIGSAM . 8 (2): 20–30. дои : 10.1145/1086830.1086834 . S2CID 14537956 .
- Артур К. Норман (1975). «Вычисления с формальным степенным рядом». Транзакции ACM в математическом программном обеспечении . 1 (4): 346–356. дои : 10.1145/355656.355660 . ISSN 0098-3500 . S2CID 18321863 .
- Ричард Д. Дженкс (1976). «Компилятор шаблонов | Материалы третьего симпозиума ACM по символическим и алгебраическим манипуляциям (SYMSAC '76)»: 60–65.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Э. Люкен (1977). Соображения по внедрению системы манипулирования формулами (магистерская диссертация) (на немецком языке). Германия: Технологический университет имени Кароло-Вильгельмины в Брауншвейге .
- Джордж Э. Эндрюс (1984). «Рамануджан и SCRATCHPAD | Материалы конференции MACSYMA пользователей 1984 года». Скенектади: General Electric : 383–408.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Джеймс Х. Давенпорт; П. Джанни; Ричард Д. Дженкс; В. Миллер; Скотт Моррисон; М. Ротштейн; К. Сундаресан; Роберт С. Сьютор; Барри Трегер (1984). «Блокнот». Отдел математических наук, Исследовательский центр IBM Томаса Дж. Уотсона .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Ричард Д. Дженкс (1984). «Новый язык и система SCRATCHPAD для компьютерной алгебры». Материалы конференции пользователей MACSYMA 1984 г .: 409–416.
- Ричард Д. Дженкс (1984). «Букварь: 11 ключей к новому блокноту | Труды Международного симпозиума по символьным и алгебраическим вычислениям '84». Спрингер: 123–147.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Роберт С. Сьютор (1985). «Язык и система компьютерной алгебры Scratchpad II | Материалы международного симпозиума по символьным и алгебраическим вычислениям '85». Спрингер: 32–33.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Рюдигер Гебауэр; Х. Михаэль Мёллер (1986). Алгоритм Бухбергера и шахматные линейные базисы | Труды пятого симпозиума ACM по символическим и алгебраическим вычислениям (Международный симпозиум по символическим и алгебраическим вычислениям '86) . АКМ. стр. 218–221. ISBN 978-0-89791-199-3 .
- Ричард Д. Дженкс; Роберт С. Сьютор; Стивен М. Ватт (1986). Scratchpad II: абстрактная система типов данных для математических вычислений (отчет об исследовании). IBM Исследовательский центр Томаса Дж. Уотсона . РЦ 12327.
- Майкл Лакс; Брюс В. Чар (1986). Быстрая реализация полиномиальной факторизации | Материалы SYMSAC '86 . АКМ. стр. 228–232. ISBN 978-0-89791-199-3 .
- Дж. Пуртило (1986). Применение системы взаимосвязи программного обеспечения в средах решения математических задач | Материалы SYMSAC '86 . АКМ. стр. 16–23. ISBN 978-0-89791-199-3 .
- Уильям Х. Бердж; Стивен М. Ватт (1987). Бесконечная структура в SCRATCHPAD II (отчет об исследовании). IBM Исследовательский центр Томаса Дж. Уотсона . РЦ 12794.
- Паскаль Сенешо; Франсуаза Зиберт; Жиль Виллар (1987). Блокнот II: Представляем новый язык компьютерной алгебры . ТИМ (Отчет об исследовании) (на французском языке). IMAG , Технологический институт Гренобля . 640-М.
- Роберт С. Сьютор; Ричард Д. Дженкс (1987). «Средства вывода типа и приведения типов в интерпретаторе блокнота II». Доклады симпозиума по устным переводчикам и методам перевода - SIGPLAN '87 . стр. 56–63. дои : 10.1145/29650.29656 . ISBN 978-0-89791-235-8 . S2CID 17700911 .
- Джордж Э. Эндрюс (1988). Р. Янссен (ред.). Применение SCRATCHPAD для решения задач по специальным функциям и комбинаторике | Тенденции в компьютерной алгебре . Конспекты лекций по информатике . Спрингер. стр. 159–166.
- Джеймс Х. Давенпорт; Ивон Сирет; Эвелин Турнье (1993) [1988]. Компьютерная алгебра: системы и алгоритмы алгебраических вычислений . Академическая пресса . ISBN 978-0122042300 .
- Рюдигер Гебауэр; Х. Михаэль Мёллер (1988). «Об установке алгоритма Бухбергера» . Журнал символических вычислений . 6 (2–3): 275–286. дои : 10.1016/s0747-7171(88)80048-8 . ISSN 0747-7171 .
- Фриц Шварц (1988). Р. Янссен (ред.). Программирование с абстрактными типами данных: пакет симметрии (SPDE) в Scratchpad | Тенденции в компьютерной алгебре . Конспекты лекций по информатике. Спрингер. стр. 167–176.
- Дэвид Шеннон; Мосс Свидлер (1988). «Использование базисов Грёбнера для определения принадлежности к алгебре, расщепляемые гомоморфизмы сюръективной алгебры определяют бирациональную эквивалентность» . Журнал символических вычислений . 6 (2–3): 267–273. дои : 10.1016/s0747-7171(88)80047-6 .
- Ханс-Дж. Бём (1989). «Вывод типа при наличии абстракции типа». Уведомления ACM SIGPLAN . 24 (7): 192–206. дои : 10.1145/74818.74835 .
- Мануэль Бронштейн (1989). «Упрощение действительных элементарных функций | Труды Международного симпозиума по символьным и алгебраическим вычислениям (SIGSAM '89)». АКМ: 207–211.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Клэр Дикрещенцо; Доминик Дюваль (1989). П. Джанни (ред.). «Алгебраические расширения и алгебраические замыкания в Scratchpad II | Символические и алгебраические вычисления». Спрингер: 440–446.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Тимоти Дейли «Аксиома — тридцать лет Лиспа»
- Тимоти Дейли Приглашенный доклад «Аксиома», Конференция по свободному программному обеспечению, Лион, Франция, май 2002 г.
- Приглашенный доклад Тимоти Дейли «Аксиома», встреча Libre Software , Мец, Франция, 9–12 июля 2003 г.
Внешние ссылки
[ редактировать ] СМИ, связанные с Axiom (программным обеспечением компьютерной алгебры) на Викискладе?
- Домашняя страница Аксиомы
- Онлайн-песочница, где можно попробовать Axiom
- Репозитории исходного кода: Github , SourceForge , GNU Savannah.
- Дженкс Р.Д. и Сьютор Р. «Аксиома, система научных вычислений»
- Дейли, Т. «Аксиома, том 1: Учебное пособие»
Программные форки:
- OpenAxiom ( SourceForge )
- ПтCAS ( SourceForge )