Macsyma

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Dm (обсуждение | вклад) в 04:41, 11 октября 2019 (Macsyma Inc.: стилевые правки). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Macsyma — система компьютерной алгебры, разработка которой велась с 1968 года в MIT в лаборатории Project MAC. Это была первая всеобъемлющая система символьной математики и одна из ранних систем, основанных на знаниях. Целиком написана на языке программирования Лисп (диалект MacLisp), для своего времени была одной из самых больших написанных на Лиспе программ. Перенос этой системы на новые компьютерные платформы был стимулом для создания нескольких Лисп-систем в 1970-е — 1980-е годы.

С 1982 года система распространялась на коммерческой основе, в 1999 году её развитие было прекращено.

Многие из идей, появившихся в Macsyma, впоследствии были заимствованы такими системами как Mathematica, Maple, и другими. Является предком свободной системы компьютерной алгебры Maxima.

Разработка

Проект был инициирован в июле 1968 года Карлом Энгельманом (англ. Carl Engelman), Вильямом Мартином (англ. William A. Martin) (интерфейс пользователя, отображение выражений, арифметика полиномов) и Джоэлем Мозесом (англ. Joel Moses) (механизм упрощения выражений, неопределённые интегралы: эвристики/Алгоритм Риша). Бил Мартин был руководителем проекта до 1971 года, а Мозес следующие десять лет. Энгельман и его команда покинули проект в 1969 и вернулись в MITRE Corporation. Впоследствии, основными участниками разработки математического ядра программы были:

Macsyma была написана на языке программирования Maclisp, разработанном в проекте MAC диалекте Лиспа. Потребности Macsyma повлияли на особенности данного диалекта, развивавшегося одновременно, в частности, на добавление более развитых средств числовых расчётов и реализацию высокоэффективного компилятора. Исходно Maclisp и Macsyma работали на компьютерах PDP-6 и PDP-10 под управлением операционных систем ITS и TOPS 10/20, позже - на компьютере GE-600 под управлением ОС Multics, а также и на Лисп-машинах. В то время Macsyma была одной из самых больших, если не самой большой программой на Лиспе. Потребности переноса Macsyma на другие аппаратные платформы привели к появлению нескольких новых диалектов Лиспа, в частности, Franz Lisp.

Коммерциализация

В 1981, Мозес и Ричард Павелль (также сотрудник MIT и сторонник применения Macsyma в науке и технике) предложили создать компанию для коммерциализации Macsyma. Однако им не разрешили это сделать, сославшись на правила, запрещающие работникам получать доход от разработок, выполненных в MIT. В начале 1982 MIT лицензировал Macsyma компании ADL («Arthur D. Little, Inc.»), которая стала посредником в продажах Macsyma и вскоре (в конце 1982 года), в свою очередь, лицензировала её компании Symbolics.

В том же 1982 году под давлением участника проекта Ричарда Фейтмана, в то время работавшего в Калифорнийском университете в Беркли, MIT лицензировал Macsyma Департаменту энергетики США, одному из главных спонсоров разработки системы. Эта версия называлась DOE Macsyma. В результате Symbolics MACSYMA столкнулась с потерей правительственного рынка, который приносил значительную долю доходов от системы. Эта ситуация привела к разногласиям в правительстве США относительно того, имеет ли право университет лицензировать третьим лицам технологию, разработанную в университете и финансируемую федеральным правительством. Этот вопрос был решён положительно в 1986 году исполнительным приказом президента Рейгана.

Разработка Macsyma продолжалась в Symbolics. Первоначально система продавалась успешно, но уже в 1985-86 годах выручка от неё упала, хотя рынок рос и продажи конкурентов за тот же период выросли. Главной слабостью MACSYMA стал численный анализ, который был критичен для инженерных и простейших научных расчётов: арифметика с плавающей запятой в Macsyma для PC была примерно в шесть раз медленнее, чем на Фортране, а неэффективная реализация матриц снижала скорость ключевых алгоритмов ещё в 5-10 раз. Macsyma не реализовывала многих базовых алгоритмов численной линейной алгебры, таких как LU-разложение, а алгоритм Грёбнера, разработанный в 1970-х в MIT, не был встроен в продававшуюся версию вплоть до 1987.

Несмотря на сопротивление многих в Symbolics, MACSYMA была выпущена для компьютеров DEC VAX-11 и рабочих станций Sun Microsystems в 1986 и 1987 годах, для чего на этих платформах был реализован Franz Lisp.

Во второй половине 1986 Павелля на посту руководителя направления сменил Ричард Петти. Был сокращён персонал, расширен отдел продаж и маркетинга, разработчики были ориентированы на добавление в систему тех возможностей, которые требовались покупателям, в итоге в 1987 году доходы от Macsyma удвоились. Был улучшен интерфейс пользователя, документация и система помощи были реорганизованы и расширены, имена некоторых команд были изменены на более легко запоминающиеся. Петти пытался убедить руководство, что MACSYMA должна быть стратегическим направлением компании и финансироваться, исходя из собственных достижений и потенциала, но после начала резкого роста продаж Symbolics урезала персонал MACSYMA. Фактически, компания попыталась использовать MACSYMA, чтобы компенсировать потери от бизнеса рабочих станций, который был в 30 раз больше.

В 1987-88 годах группа Macsyma пыталась перенести систему на PC, но потерпела неудачу. Ранее Symbolics закрыла собственный проект создания компилятора Lisp для стандартных компьютеров, чтобы не конкурировать с продажами Лисп-машин, и отказалась сотрудничать в реализации Лиспа с Sun по той же причине. Gold Hill Lisp, который был выбран для переноса системы на PC, оказался слишком нестабильным, а его слабая архитектура сделала невозможным устранение ошибок. Эта неудача лишила MACSYMA рынка персональных компьютеров, в то время как Mathematica тогда же появилась на компьютерах Apple. Версия MACSYMA для Windows, использующая CLOE Lisp от Symbolics, всё же вышла в августе 1989 года, но штат разработчиков был слишком мал, чтобы реализовать графику, интерфейс и численные возможности, подобные Mathematica.

К 1989 году стало очевидно, что Symbolics находится в кризисе. Несмотря на высокий уровень производимого ПО, оно оказалось неконкурентоспособно из-за зависимости от дорогого оборудования, развитие которого не было согласовано с потребностями рынка (в середине 1980‑х Symbolics перешла на аппаратную платформу с 40-битным словом вместо 36‐битного, не проведя экономического обоснования этого очень дорогого изменения). Петти пытался убедить руководство изменить стратегию, но четвёртый по счёту президент компании за четыре года не хотел ничего слышать об этом. Из-за отсутствия взаимодействия с MIT не удалось собрать группу для выкупа прав на разработку Macsyma. Судьба Macsyma оставалась неопределённой, в 1990 Петти покинул Symbolics, чтобы создать свою собственную компанию.

Macsyma Inc.

Macsyma Inc., была основана в 1992 году Расселом Нофтскером (англ. Russell Noftsker) (председателем совета директоров, сооснователем Symbolics) и Ричардом Петти. Она выкупила права на Macsyma у Symbolics. К этому моменту Macsyma уже потеряла рынок: за 5 лет с 1987 до 1992 её рыночная доля Macsyma упала с 70 % до 1 %, и к началу 1993, когда рост рынка замедлился, фактическим стандартом стали Mathematica и Maple. К тому же с 1992 года Mathsoft выпустила о очень низким ценам свой Mathcad, занявший большую часть оставшейся рыночной ниши.

На Macsyma Inc. работали разработчики мирового класса, включая Джефа Голдена (англ. Jeff Golden) (который сделал большую часть символьной математики), Била Госпера (англ. Bill Gosper) (специальные функции, суммирование и другие элементы), Говарда Кэннона (вице-президент по разработке всего ПО), и Билла Дубьюка (интегрирование и решение уравнений). Другие разработчики сделали важный вклад в численный анализ, графику, и систему помощи. В начале 1995 вышла Macsyma 2.0.5, со следующими улучшениями:

  1. Значительно увеличена скорость. Если ранее Macsyma была самой медленной, то теперь стала быстрее, чем Mathematica и почти такой же быстрой, как и Maple.
  2. Интерфейс поддерживал отображение математических формул, форматированного текста, гиперссылки. Он был лучше, чем у любого из конкурентов и вообще лучшим научным графическим интерфейсом в индустрии математического программного обеспечения.
  3. Обзоры утверждали, что Macsyma получила лучшую систему помощи в промышленности (включая гипертекст, демонстрации, примеры, шаблоны функций, позже — поддержку запросов на естественном языке). Также была значительно улучшена бумажная документация.
  4. Хотя Macsyma 2.0.5 всё ещё была очень медленной в численных методах, она имела значительно усиленный портфель подпрограмм численного анализа и линейной алгебры. В 1996 в неё был добавлен LAPACK, который значительно увеличил скорость работы большинства числовых вычислений линейной алгебры. Обзор PC Magazine утверждал: «Macsyma является лидером на рынке математических программ.»

Несмотря на успешное развитие системы, доля рынка её так и не выросла выше 2 %: к моменту выхода Macsyma 2.0.5 новых пользователей почти не появлялось, а имеющийся рынок был уже поделен между конкурентами. К тому же группы разработчиков у конкурентов были в 4-8 раз больше, чем в Macsyma Inc., и долго конкурировать с ними было невозможно.

В 1999, Macsyma была куплена Tenedos LLC, холдинговой компанией, которая ранее купила Symbolics. Tenedos не стала снова выпускать или перепродавать Macsyma. На этом история оригинальной системы завершилась.

Доступные версии

Существует выпущенная под GNU General Public License и основанная на DOE Macsyma 1982 года версия, которая называется Maxima, перенесённая впоследствии на Common Lisp и улучшенная В. Шелтером. Она находится в активной разработке, и может быть скомпилирована под несколько различных реализаций Common Lisp. Можно скачать исполняемые файлы для GNU/Linux, Microsoft Windows, Mac OS X и других систем, включая графический интерфейс пользователя. Maxima не включает ничего из многочисленных улучшений сделанных в коммерческой версии Macsyma между 1982—1999 годами. Из‑за этого могут потребоваться значительные усилия чтобы перенести код с Macsyma в Maxima.

Примечания

Ссылки