Axiom: История и Развитие Компьютерной Алгебраической Системы
Axiom (computer algebra system)
Axiom – бесплатная система компьютерной алгебры для вычислений. История разработки: от IBM Scratchpad (1965) до современной версии. Скачать и использовать!
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Компьютерная алгебраическая система
Computer algebra system
Axiom — это бесплатная компьютерная алгебраическая система общего назначения. Она состоит из интерпретаторской среды, компилятора и библиотеки, определяющей строго типизированную иерархию.
Axiom is a free, general purpose computer algebra system. It consists of an interpreter environment, a compiler and a library, which defines a strongly typed hierarchy.
История
Две системы компьютерной алгебры под названием Scratchpad были разработаны компанией IBM. Первая была начата в 1965 году Джеймсом Гризмером по просьбе Ральфа Гомори и написана на Фортране. Разработка этого программного обеспечения была прекращена до какого-либо публичного выпуска. Вторая система Scratchpad, первоначально называвшаяся Scratchpad II, разрабатывалась с 1977 года в Исследовательском центре имени Томаса Дж. Уотсона под руководством Ричарда Димика Дженкса. Основной вклад в разработку внесли Ричард Д. Дженкс (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).
Two computer algebra systems named Scratchpad were developed by IBM. The first one was started in 1965 by James Griesmer at the request of Ralph Gomory, and written in Fortran. The development of this software was stopped before any public release. The second Scratchpad, originally named Scratchpad II, was developed from 1977 on, at Thomas J. Watson Research Center, under the direction of Richard Dimick Jenks. The design is principally due to Richard D. Jenks (IBM Research), James H. Davenport (University of Bath), Barry M. Trager (IBM Research), David Y. Y. Yun (Southern Methodist University) and Victor S. Miller (IBM Research). Early consultants on the project were David Barton (University of California, Berkeley) and James W. Thatcher (IBM Research). Implementation included Robert Sutor (IBM Research), Scott C. Morrison (University of California, Berkeley), Christine J. Sundaresan (IBM Research), Timothy Daly (IBM Research), Patrizia Gianni (University of Pisa), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt (IBM Research and University of Waterloo), Josh Cohen (Yale University), Michael Rothstein (Kent State University), Manuel Bronstein (IBM Research), Michael Monagan (Simon Fraser University), Jonathan Steinbach (IBM Research), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College of New York), and Clifton Williamson (IBM Research)
В 1990 году, когда компания IBM приняла решение сделать Scratchpad II коммерческим продуктом, она была переименована в Axiom. Через несколько лет она была продана компании NAG. В 2001 году продукт был снят с продажи и повторно выпущен под лицензией Modified BSD. С тех пор ведущим разработчиком проекта является Тим Дали. В 2007 году Axiom разделилась на два независимых проекта с открытым исходным кодом: OpenAxiom и FriCAS, в результате "серьезных разногласий относительно целей проекта". Разработка проекта Axiom продолжилась под руководством Тима Дали. Текущее направление исследований – "Доказательство надёжности Axiom" (англ. "Proving Axiom Sane"), то есть обеспечение её логичности, рациональности, разумности и обоснованности.
Scratchpad II was renamed Axiom when IBM decided, circa 1990, to make it a commercial product. A few years later, it was sold to NAG. In 2001, it was withdrawn from the market and re released under the Modified BSD License. Since then, the project's lead developer has been Tim Daly. In 2007, Axiom was forked twice, originating two different open source projects: OpenAxiom and FriCAS, following "serious disagreement about project goals". The Axiom project continued to be developed by Tim Daly. The current research direction is "Proving Axiom Sane", that is, logical, rational, judicious, and sound.
Дизайн
В Axiom каждый объект имеет тип. Примерами типов являются математические структуры (такие как кольца, поля, полиномы), а также структуры данных из информатики (например, списки, деревья, хеш-таблицы). Функция может принимать тип в качестве аргумента, и её возвращаемое значение также может быть типом. Например, Fraction – это функция, которая принимает IntegralDomain в качестве аргумента и возвращает поле частных своего аргумента. В качестве другого примера, кольцо матриц с рациональными элементами будет построено как SquareMatrix(4, Fraction Integer). Разумеется, при работе в этой области, 1 интерпретируется как единичная матрица, а A^1 дает обратную матрицу A, если она существует. Несколько операций могут иметь одно и то же имя, и типы аргументов и результата используются для определения, какая операция применяется (ср. перегрузку функций). Axiom поставляется с расширяющим языком под названием SPAD. Все математические знания Axiom записаны на этом языке. Интерпретатор принимает примерно тот же язык.
In Axiom, each object has a type. Examples of types are mathematical structures (such as rings, fields, polynomials) as well as data structures from computer science (e. g., lists, trees, hash tables). A function can take a type as argument, and its return value can also be a type. For example, Fraction is a function, that takes an IntegralDomain as argument, and returns the field of fractions of its argument. As another example, the ring of matrices with rational entries would be constructed as SquareMatrix(4, Fraction Integer). Of course, when working in this domain, 1 is interpreted as the identity matrix and A^ 1 would give the inverse of the matrix A, if it exists. Several operations can have the same name, and the types of both the arguments and the result are used to determine which operation is applied (cf. function overloading). Axiom comes with an extension language called SPAD. All the mathematical knowledge of Axiom is written in this language. The interpreter accepts roughly the same language.
Особенности
В интерпретирующей среде Axiom использует вывод типов и эвристический алгоритм, что делает явные аннотации типов в большинстве случаев излишними. Система включает в себя "HyperDoc" – интерактивный браузер, функционирующий как справочная система, и позволяет отображать двух- и трехмерную графику, а также предоставляет интерактивные возможности, такие как вращение и освещение. Также предусмотрен специализированный режим взаимодействия для Emacs и плагин для редактора TeXmacs. Axiom содержит реализацию алгоритма Риша для элементарного интегрирования, разработанную Мануэлем Бронштейном и Барри Трейгером. Хотя эта реализация способна находить большинство элементарных первообразных и определять их существование, в ней имеются нереализованные ветви, и при возникновении таких случаев в процессе интегрирования выдается ошибка.
Within the interpreter environment, Axiom uses type inference and a heuristic algorithm to make explicit type annotations mostly unnecessary. It features 'HyperDoc', an interactive browser like help system, and can display two and three dimensional graphics, also providing interactive features like rotation and lighting. It also has a specialized interaction mode for Emacs, as well as a plugin for the TeXmacs editor. Axiom has an implementation of the Risch algorithm for elementary integration, which was done by Manuel Bronstein and Barry Trager. While this implementation can find most elementary antiderivatives and whether they exist, it does have some non implemented branches, and raises an error when such cases are encountered during integration.