Кіріспе
Компьютерлік алгебра жүйесі
Macsyma ("Project MAC's SYMBOLIC MAnipulator") Уильям А. Мартин (алдыңғы интерфейс, өрнек көрсету, полиномдық арифметика) және Джоэл Мозес (жайландырушы, белгісіз интегралдау: эвристикалық/Рих). Мартин 1971 жылға дейін жобаны басқарды, ал Мозес келесі он жыл бойы басқарды. Энгельман және оның командасы 1969 жылы MITRE корпорациясына қайтып оралды. Кейбір кодтар бұрынғы жұмыстардан алынған, әсіресе Кнут Корсвольдтың жайландырушысынан. Кейінірек математикалық ядроның маңызды үлескерлері:
William A. Martin (front end, expression display, polynomial arithmetic) and Joel Moses (simplifier, indefinite integration: heuristic/Risch). Martin was in charge of the project until 1971, and Moses ran it for the next decade. Engelman and his staff left in 1969 to return to The MITRE Corporation. Some code came from earlier work, notably Knut Korsvold's simplifier. Later major contributors to the core mathematics engine were:
Янис Августис (арнайы функциялар),
Дэвид Бартон (алгебралық теңдеулер жүйесін шешу),
Ричард Боген (арнайы функциялар),
Билл Дубук (белгісіз интегралдау, лимиттер, қуат қатарлары, сандар теориясы, арнайы функциялар, функционалдық теңдеулер, үлгілерді тану, таңба сұраныстары, Грёбнер, TriangSys),
Ричард Фэйтман (рационалды функциялар, үлгілерді тану, кез келген дәлдіктегі қалқыма нүкте),
Майкл Генсеретт (салыстыру, білім базасы),
Джефф Голден (жайландырушы, тіл, жүйе),
Р. В. Госпер (белгілі қосынды, арнайы функциялар, жайландыру, сандар теориясы),
Карл Хоффман (жалпы жайландырушы, макростар, коммутативті емес жайландырушы, Multics және LispM-ге порттау, жүйе, визуальды теңдеулер редакторы),
Чарльз Карни (график салу),
Джон Калп,
Эд Лафферти (дифференциалдық теңдеулерді шешу, арнайы функциялар),
Ставрос Макраккис (нақты/жолғары бөліктер, компилятор, жүйе),
Ричард Павелл (индекстік тензорлық есептеу, жалпы салыстырмалылық пакеті, қалыпты және дербес дифференциалдық теңдеулер),
Дэвид А. Спир (Грёбнер),
Барри Трейгер (алгебралық интегралдау, көбейткіштерге жіктеу, Грёбнер),
Пол С. Ванг (полиномдық көбейткіштерге жіктеу және ЕББ, кешенді сандар, лимиттер, белгілі интегралдау, Fortran және LaTeX кодты жасау),
Дэвид Ю. Юн (полиномдық ЕББ),
Гейл Захариас (Грёбнер)
және
Рич Зиппел (қуат қатарлары, полиномдық көбейткіштерге жіктеу, сандар теориясы, комбинаторика). Macsyma Maclisp тілінде жазылған және кейбір жағдайларда сандық есептеулер, тиімді компиляция және тіл дизайны салаларында Lisp диалектісін жақсартуға ықпал еткен. Maclisp негізінен PDP 6 және PDP 10 компьютерлерінде, сондай-ақ Multics ОС және Lisp Machine архитектураларында жұмыс істеді. Macsyma сол кездегі ең ірі, тіпті ең ірі Lisp бағдарламаларының бірі болды.
David Barton (solving algebraic systems of equations),
Richard Bogen (special functions),
Bill Dubuque (indefinite integration, limits, power series, number theory, special functions, functional equations, pattern matching, sign queries, Gröbner, TriangSys),
Richard Fateman (rational functions, pattern matching, arbitrary precision floating point),
Michael Genesereth (comparison, knowledge database),
Jeff Golden (simplifier, language, system),
R. W. Gosper (definite summation, special functions, simplification, number theory),
Carl Hoffman (general simplifier, macros, non commutative simplifier, ports to Multics and LispM, system, visual equation editor),
Charles Karney (plotting),
John Kulp,
Ed Lafferty (ODE solution, special functions),
Stavros Macrakis (real/imaginary parts, compiler, system),
Richard Pavelle (indicial tensor calculus, general relativity package, ordinary and partial differential equations),
David A. Spear (Gröbner),
Barry Trager (algebraic integration, factoring, Gröbner),
Paul S. Wang (polynomial factorization and GCD, complex numbers, limits, definite integration, Fortran and LaTeX code generation),
David Y. Y. Yun (polynomial GCDs),
Gail Zacharias (Gröbner)
and
Rich Zippel (power series, polynomial factorization, number theory, combinatorics). Macsyma was written in Maclisp, and was, in some cases, a key motivator for improving that dialect of Lisp in the areas of numerical computing, efficient compilation and language design. Maclisp itself ran primarily on PDP 6 and PDP 10 computers, but also on the Multics OS and on the Lisp Machine architectures. Macsyma was one of the largest, if not the largest, Lisp programs of the time.
Коммерциялық мақсатта пайдалану
1979 жылы, сол кездегі Беркли университетінің профессоры Ричард Фатеманның өтінішіне жауап ретінде, MIT Macsyma кодына уақытша лицензия берді. Бұл жаңа VAX 11/780 компьютерінде Фатеман тобы жазған Maclisp, Franz Lisp диалектісін пайдалана отырып, бірден іске қосылды. MIT Берклиден VAX Macsyma нұсқаларын 50-ге жуық университеттерге, бастапқыда Caltech-ке лицензиялады, лицензиялар тиісті лицензия бойынша келіссөздер аяқталғанда күшін жоятыны шартымен. Бұл Symbolics компаниясымен келіссөздер аяқталғаннан кейін болды (төменде қараңыз). Symbolics VAX өнімінің лицензиясын беруге асықпады, себебі VAX олардың Lisp машиналарына бәсекелес аппаратты құрады, сондықтан VAX бағдарламалық жасақтамасын бес жыл бойы тоқтатты. UC Berkeley сонымен қатар Macsyma-ның көшірмелерін Motorola 68000 негізіндегі жүйелерде, ең әйгілісі Sun жұмыс станцияларында іске қосты. Symbolics оларды да тоқтатты. Сонымен қатар, Фатеман Macsyma-ның уақытша лицензиясын (қазір күші жойылған) тұрақтырақ нәрсеге айналдыруға тырысты. Ақырында, 1982 жылы АҚШ Энергетика министрлігі MIT-ге Ұлттық Энергетикалық Бағдарламалық Орталық (NESC) кітапханасына көшірмесін беруді талап етті, сонымен бірге MIT-ге жоғары баға және қайта тарату бойынша шектеулерді сақтауға рұқсат берді. Бұл технологияны Symbolics компаниясына беруді қорғау мақсатында жасалды. (Бұл шектеулер 2002 жылға қарай алынып тасталды.) Бұл DOE Macsyma MIT-де NIL lisp деп аталатын Common Lisp диалектісіне қайта жазылды, ол VAX/VMS-де толыққанды іске асырылмады, академиялық ортада кең таралған Беркли VAX Unix жүйесінен гөрі нашар танымал болды. DOE Macsyma кейіннен ашық Maxima жүйесінің негізін құрады. 1981 жылы MIT қызметкері және Macsyma-ны инженерлік және ғылыми салаларға қолдануды жақтаған Мозес пен Ричард Павелл Macsyma-ны коммерцияландыру үшін компания құруға тырысты. Павелл Macsyma-ны қолдана отырып көптеген ғылыми мақалалар жазған. Қолдарындағы мақалалармен Павелл мен Мозес Macsyma стартапын қаржыландыруға қызығушылық танытқан бірнеше венчурлық капитал фирмаларына жүгінді. MIT-де келісімдерге қол жеткізуге жақын болған кезде, MIT қызметкерлері MIT-тің дамуынан тікелей пайда табуға болмайтыны туралы шешім қабылдады. 1982 жылдың басында Macsyma-ны MIT компаниясы Arthur D. Little, Inc. (ADL) компаниясына лицензиялады, ол Macsyma-ның брокері болды және көп ұзамай 1982 жылдың соңында Macsyma-ны Symbolics компаниясына лицензиялады. Мұсаны ADL кескіннен шығарды, ал Павелл Symbolics-тегі Macsyma бөлімшесінің басшысы болды. Symbolics-тің кодқа қызығушылығы болмағаны анық болды, олар Macsyma-ны Lisp Machine бизнесіндегі бәсекелесінің, LMI-дің бағдарламалық каталогынан тыс ұстауға тырысты. Symbolics пен Arthur D. Little арасындағы бизнес-келісім Macsyma жалпы сатуының 15%-ын ADL-ге роялти ретінде төлеуді талап етті. Бұл роялти MIT және ADL-дің MACSYMA-ның өркендеуін көруге ниеттілігі туралы болжамдарға әкелді. Macsyma-ның дамуы Symbolics-те жалғасты, екі жыл ішінде Macsyma сатулары мен Lisp машиналарының қосымша сатулары Symbolics-тің жалпы сатуларының 10%-ын құрады, бірақ бұл олардың негізгі бизнесі Lisp машиналарын сатудан ауытқу ретінде қарастырылды. Көптеген Symbolics қызметкерлерінің қарсылығына қарамастан, Macsyma 80-жылдардың басында және ортасында DEC VAX компьютерлері мен Sun жұмыс станциялары үшін Берклидің Franz Lisp-ін пайдалана отырып іске қосылды. Алайда, Symbolics компаниясының Macsyma-ны Symbolics-тен басқа компьютерлерде сатудағы проблемалары Macsyma сатуының төмендеуіне әкелді. 1986 жылдың бірінші жартысында Macsyma-ның кірісі 1985 жылдың бірінші жартысына қарағанда төмен болды. Осы кезде Wolfram-ның SMP бағдарламасы мен Waterloo Maple өсіп жатты, бірақ MACSYMA символикалық математикада осы басқа пакеттерден оңай басым болды. Павелл 1986 жылдың басына дейін Symbolics-тегі Macsyma бөлімін басқарды. 1986 жылдың екінші жартысында Ричард Петти сатуды азайту және Symbolics қызметкерлерімен қақтығыстан аулақ болу үшін Macsyma бизнесінің менеджері болды. Macsyma штатты қысқартты, бірақ сату және маркетингті кеңейтті, және оның әзірлеушілерін клиенттер сұраған мүмкіндіктерге көбірек бағыттады. (Мысалы, 1970 жылдары MIT-те іске асырылған Spear Zacharias (Gröbner) негіз алгоритмі 1987 жылға дейін Macsyma кемесіне орнатылмады.) 1987 жылы Macsyma-ның жылдық табысы шамамен екі есеге артты. MACSYMA пайдаланушыға ыңғайлы болды: құжаттама және желідегі көмек қайта ұйымдастырылды және кеңейтілді; кейбір командалардың атаулары көбірек есте сақтауға қолайлы болды. Жүйе Common Lisp-ке (Кент М. Питман) көшірілді. Петти Symbolics компаниясының басшылығына Macsyma-ның өнімділігі мен әлеуетіне негізделген қаржыландырылуы керек екенін, негізгі жұмыс станциясы бизнесінің перспективасына емес, деп мәлімдеді. Алайда, Symbolics осы өсім кезеңінен кейін Macsyma штатты қысқартты; Symbolics Macsyma-ны өте кішкентай «ақша сиыр малы» ретінде пайдалануға тырысты, оның көлемі 30 есе үлкен жұмыс станциясы бизнесінің шығындарын жабу үшін. Macsyma-ның ең үлкен өнімдік кемшілігі оның сандық талдауы болды. Символикалық математиканы меңгеру қаһармандық міндет болды; бірақ сандық мүмкіндіктер инженерлік және ғылыми нарықтардың үлкен бөлігін алу үшін маңызды болды. MIT-де Macsyma IMSL (қазір Perforce Software өнімі) сандық кітапханаларына сілтеме берді, бірақ бұл сілтеме Macsyma Symbolics-ке көшкен кезде үзілді. Symbolics-тегі Lisp әзірлеушілері сандық талдаудың ескі технология екеніне және Lisp қолданбалары үшін маңызды еместігіне сенді, сондықтан олар оған инвестиция жасаудан бас тартты. PC нұсқасындағы Macsyma-дағы қос дәлдіктік арифметика Fortran-нан шамамен алты есе баяу болды. Сондай-ақ, Macsyma-ның матрицалары тізімдердің тізімі ретінде іске асырылды, бұл негізгі алгоритмдер үшін шамамен 5–10 есе баяулауға әкелді. Macsyma LU декомпозициясы сияқты сандық сызықтық алгебраның көптеген негізгі алгоритмдеріне ие болмады. 1987-88 жылдары Macsyma тобы Gold Hill Lisp-пен PC Macsyma-ны құруға тырысты. (Бұрын Symbolics стандартты компьютерлерге Lisp компиляторын құру жобасын тоқтатқан, Lisp машинасы сатуларымен бәсекелесуден қашу үшін. Бұл кейбір есептер бойынша жоғары басшылықтың келісімінсіз жасалған даулы қадам болды. Symbolics Lisp-ті Sun жұмыс станцияларында қолдануға Sun компаниясымен ынтымақтасудан да бас тартты, осы себепті.) Gold Hill Lisp тым тұрақсыз болды, ал оның нашар архитектурасы қателерді жоюды мүмкінсіз етті. Бұл Macsyma үшін шешуші сәт болды. Бұл Macsyma 1988 жылдың ортасында Apple компьютерлерінде пайда болған Mathematica-ға PC-де жауап бере алмады дегенді білдірді. Macsyma 1989 жылдың тамызында Symbolics-тен CLOE Lisp-ті пайдалана отырып Windows PC-лерінде пайда болды. Алайда, Macsyma қызметкерлерінің саны жеткіліксіз болды және Mathematica-дағы графика, блокнот интерфейсі және жақсырақ сандық мүмкіндіктер сияқты қабілеттерді қосуға қажетті дағдылардың қоспасы болмады. 1989 жылға қарай Петтиге Symbolics нашар өнімдік стратегиясының салдарынан құлайтыны және Macsyma-ны да өздерімен бірге алатыны анық болды. (Кейбір өнімдік мәселелер: (1) Symbolics-тің бағдарламалық жасақтамасы MIT сыныптық бағдарламалық жасақтамасын дамырушылары үшін жасалған, басқаларға жеткілікті жұмсақтық жасалмаған. (2) Symbolics-тің әлемдік деңгейдегі бағдарламалық жасақтамасы өте жоғары құнмен аппараттық құралдарға тәуелділігі салдарынан нарықта үлесін жоғалтып жатыр. (3) 1980-жылдардың ортасында VLSI аппараттық құралдарына көшу кезінде Symbolics 36 биттік сөз мөлшерін нарықтан осы өзгерістің үлкен даму құнына қатысты ақтаусыз 40 биттікке ауыстырды.) Macsyma MIT-тің ынтымақтастығының болмауына байланысты сатып алу тобын құра алмады. 1986 жылдан бері өнімдік мәселелер туралы үнсіздік сақтаған Петти 1988 жылдың соңында Symbolics-ті бағдарламалық жасақтамаға немесе кеңесші деңгейдегі стратегияны қабылдауға көндіруге тырысты; бірақ төрт жылдың ішіндегі төртінші президент ештеңе тыңдағысы келмеді. 1990 жылы Петти Symbolics-ті тастап стартапқа кетті.
Macsyma, Inc. компаниясы
Macsyma, Inc. 1992 жылы Рассел Нофтскер (төраға, Symbolics компаниясын іріктеген) және Ричард Петти (президент, Symbolics-те Macsyma-ны жаңғыртуға ұмтылған) қаржы жинап, Macsyma құқықтарын қиын жағдайдағы Symbolics-тен сатып алды. Нарық жылдам өсіп жатқанмен, 1991 және 1992 жылдың басында Macsyma сатулары күрт төмендеді. Macsyma-ның символдық математикалық бағдарламалық құралдар нарығындағы үлесі 1987 жылы 70%-дан 1992 жылы 1%-ға дейін азайды. 1993 жылға қарай нарық өсуі баяулады және Mathematica мен Maple стандартқа айналды. Бәсекелес компаниялардың даму құрамы Macsyma Inc. компаниясынан 4-8 есе көп болды. 1995 жылдың басында компания көптеген жақсартулармен Macsyma 2.0.5 нұсқасын шығарды: Вестердің символдық математиканың кең ауқымды тестісінде Macsyma 2.0.5 Maple-дан 10%-ға, ал Mathematica-дан 15%-ға жақсы нәтиже көрсетті. Macsyma 2.0.5 сандық есептеулерде бұрынғыдан баяу болғанымен, сандық талдау және сызықтық алгебра бойынша әлдеқайда күшті портфолиоға ие болды. (1996 жылы Macsyma LAPACK-ты қосты, бұл көптеген сандық сызықтық алгебра операцияларының жылдамдығын арттырды.) Осы кездегі даму тобында Джефф Голден (тіл, компилятор және т.б.), Билл Госпер (арнайы функциялар, қосынды), Говард Кэннон (пайдаланушы интерфейсі, оптимизация) және бірнеше кеңесшілер болды. Билл Дубуке интеграция, теңдеулерді шешу, деректер базасы және оптимизация бойынша жұмыс істеді. Кристофер Стейси мен Дэвид Х. Вуд MATLAB-тың тілдік және матрицалық мүмкіндіктерін қосты. Басқа да дамытушылар сандық талдау, графика және анықтамалық жүйелерге үлкен үлес қосты. Компания 4-8 есе үлкен құрамды ұдайы басып озуға және нарық динамикасын өзгертуге мүкіндік бермеді. Нарық үлесі 2%-дан аспады, себебі бәсекелестер барлық маңызды клиенттерде бекініп қалған, жаңа өнімге көшу оқуға кететін уақыт есебінен қымбатқа түседі және нарық өсуі төмендеді. Сонымен қатар, 1992 немесе 1993 жылдан бастап Mathsoft өте төмен бағамен тікелей поштаға 10 миллион доллар жұмсау стратегиясын қолданды, бұл Macsyma Inc. әлемдік деңгейдегі өнімін қайта жаңғыртуға тырысқан кезде символдық математика нарығындағы қалған өсімнің көп бөлігін жеңіп алды. 1999 жылы Macsyma компаниясын Tenedos LLC, бұрын Symbolics компаниясын сатып алған холдинг компаниясы сатып алды. Холдинг Macsyma-ны қайта шығармады, бірақ Macsyma Symbolics компаниясы арқылы Microsoft Windows XP-ге дейінгі нұсқаларын таратады.
Қол жетімді нұсқалары
Сонымен қатар, 1982 жылғы DOE Macsyma нұсқасына негізделген, Maxima деп аталатын GPL лицензиясы бар нұсқасы бар, ол кейін Common Lisp-ке бейімделген және Уильям Шелтер тарапынан жетілдірілген. Ол қазіргі кезде белсенді түрде дамытылуда және бірнеше Common Lisp жүйелерінде компиляциялануы мүмкін. Linux, Microsoft Windows, Mac OS X және басқа да жүйелер үшін, соның ішінде графикалық интерфейстері бар жүктеліп алынатын орындалатын файлдар қолжетімді. Maxima 1982–1999 жылдар аралығындағы коммерциялық даму кезеңінде қосылған көптеген мүмкіндіктерді қамтымайды, бірақ қазіргі, ашық және тегін код базасы болып табылады, көптеген қосымша мүмкіндіктерді, бірнеше баламалы интерфейстерді қамтиды және Common Lisp жүйелерімен жұмыс істейді. Бұл Macsyma мен Maxima арасында кейбір үйлесімсіздіктерге алып келгенімен, Macsyma алгебралық тілінде жазылған бағдарламаларды екі жүйеде де шағын өзгерістермен іске асыруға болады. 1982 жылға жуық ITS Macsyma нұсқасы қолжетімді, оның көптеген файлдары . деп аталатын каталогта сақталған.