Кіріспе
Компьютерлік алгебра жүйесі
Axiom – тегін, көп мақсатты компьютерлік алгебра жүйесі. Ол интерпретатор ортасынан, компилятордан және қатаң түрде типтелген иерархияны анықтайтын кітапханадан құралған.
Тарих
IBM компаниясы Scratchpad деп аталатын екі компьютерлік алгебра жүйесін жасады. Біріншісі 1965 жылы Ральф Гоморидің өтініші бойынша Джеймс Грисмермен Фортран тілінде жазылды. Бұл бағдарламалық қамтамастың дамуы кез келген ресми жарияланудан бұрын тоқтатылды. Екінші Scratchpad, бастапқыда Scratchpad II деп аталды, 1977 жылдан бастап Ричард Димик Дженкс басшылығымен Томас Дж. Уотсон зерттеу орталығында жасалды. Бұл жобаның дизайны негізінен Ричард Д. Дженкс (IBM Research), Джеймс Х. Давенпорт (Бат университеті), Барри М. Трагер (IBM Research), Дэвид Ю. Юн (Оңтүстік Методист университеті) және Виктор С. Миллер (IBM Research) есімдерімен байланысты. Жобаның алғашқы кеңесшілері Дэвид Бартон (Калифорния университеті, Беркли) және Джеймс В. Тэтчер (IBM Research) болды. Іске асыруға Роберт Сутор (IBM Research), Скотт С. Моррисон (Калифорния университеті, Беркли), Кристин Дж. Сундаресан (IBM Research), Тимоти Дейли (IBM Research), Патриция Джанни (Пиза университеті), Альбрехт Фортенбахер (Universitaet Karlsruhe), Стивен М. Уотт (IBM Research және Ватерлоо университеті), Джош Коэн (Йель университеті), Майкл Ротштейн (Кент мемлекеттік университеті), Мануэль Бронштейн (IBM Research), Майкл Монаган (Симон Фрейзер университеті), Джонатан Штайнбах (IBM Research), Уильям Бурдж (IBM Research), Джим Вэн (IBM Research), Уильям Сит (Нью-Йорк қалалық колледжі) және Клифтон Уильямсон (IBM Research) қатысты. 1990 жылы IBM оны коммерциялық өнімге айналдыруды шешкен кезде Scratchpad II Axiom деп қайта аталды. Бірнеше жылдан кейін ол NAG компаниясына сатылды. 2001 жылы ол нарықтан алынып, өзгертілген BSD лицензиясы бойынша қайта жарияланды. Содан бері жобаның жетекші әзірлеушісі Тим Дейли болып табылады. 2007 жылы Axiom екіге бөлініп, екі түрлі ашық кодты жоба пайда болды: OpenAxiom және FriCAS, бұл "жоба мақсаттары бойынша қатысты тараптар арасындағы қарым-қатынастың ушығуынан" туындады. Axiom жобасын Тим Дейли одан әрі дамыта берді. Қазіргі зерттеу бағыты – "Axiom дұрыстығын дәлелдеу", яғни оның логикалық, рационалды, салмақты және сенімді екенін көрсету.
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-ның барлық математикалық білімі осы тілде жазылған. Интерпретатор шамамен осыған ұқсас тілді қабылдайды.
Ерекшеліктері
Интерпретатор ортасында Axiom типтік қорытындылауды және эвристикалық алгоритмді пайдаланады, бұл типтерді нақты көрсетуді көбінесе қажетсіз етеді. Онда "HyperDoc" – интерактивті шолушы сияқты анықтамалық жүйе бар, сонымен қатар екі және үш өлшемді графиканы көрсетуге болады, бұрылу және жарықтандыру сияқты интерактивті мүмкіндіктер де ұсынылады. Emacs үшін арнайы өзара әрекеттесу режимі, сондай-ақ TeXmacs редакторы үшін қосымша да бар. Axiom элементтік интеграция үшін Риш алгоритмінің іске асырылуын қамтиды, оны Мануэль Бронштейн мен Барри Трагер жасаған. Бұл іске асыру көптеген элементар антитуындыларды таба алады және олардың болуын анықтай алады, бірақ толық іске асырылмаған тармақтары бар, және интеграция кезінде мұндай жағдайлар кездескенде қателік туындайды.