Macsyma - Macsyma

Macsyma ( / m æ k s ɪ m ə / ; "Projekt MAC symbolske manipulator") er en af de ældste generelle formål computer algebra systemer stadig i bred anvendelse. Det blev oprindeligt udviklet fra 1968 til 1982 på MIT 's Project MAC .

I 1982 blev Macsyma licenseret til Symbolics og blev et kommercielt produkt. I 1992 blev Symbolik Macsyma udskilt til Macsyma, Inc., som fortsatte med at udvikle Macsyma indtil 1999. Denne version er stadig til rådighed for Microsoft 's Windows XP -operativsystemet.

1982-versionen af ​​MIT Macsyma forblev tilgængelig for akademikere og amerikanske regeringsorganer, og den distribueres af US Department of Energy (DOE). Denne version, DOE Macsyma, blev vedligeholdt af Bill Schelter . Under navnet Maxima blev det frigivet under GPL i 1999 og forbliver under aktiv vedligeholdelse.

Udvikling

Projektet blev påbegyndt i juli 1968 af Carl Engelman , William A. Martin (frontend, udtryksvisning, polynomisk aritmetik) og Joel Moses (forenkling, ubestemt integration : heuristisk / Risch). Martin var ansvarlig for projektet indtil 1971, og Moses kørte det i det næste årti. Engelman og hans stab forlod i 1969 for at vende tilbage til The MITER Corporation . Noget kode kom fra tidligere arbejde, især Knut Korsvolds forenkler. Senere største bidragydere til den centrale matematik motor var: Yannis Avgoustis ( specialfunktioner ), David Barton (løse algebraiske systemer af ligninger ), Richard Bogen ( specialfunktioner ), Bill Dubuque ( ubestemt integration , grænser, potensrækker, talteori , specialfunktioner , funktionelle ligninger, mønstermatchning , tegnforespørgsler , Gröbner , TriangSys), Richard Fateman ( rationelle funktioner , mønstermatchning , vilkårlig præcision flydende punkt ), Michael Genesereth (sammenligning, vidensdatabase), Jeff Golden (forenkler, sprog, system), RW Gosper (bestemt opsummering , specialfunktioner , forenkling, talteori ), Carl Hoffman (generel forenkling, makroer, ikke-kommutativ forenkler, porte til Multics og LispM , system, visuel ligningseditor ), Charles Karney (planlægning), John Kulp, Ed Lafferty ( ODE opløsning, specialfunktioner ), Stavros Macrakis ( real / imaginære dele , compiler, systemet), Richard Pavelle ( indicial tensor calculus , almen relativitet pakke , almindelige og delvise differentialligninger ), David A. Spear ( Gröbner ), Barry Trager (algebraisk integration, factoring , Gröbner ), Paul S. Wang ( polynomfaktorisering og GCD , komplekse tal , grænser, bestemt integration , Fortran og LaTeX- kodegenerering ), David YY Yun (polynomium GCDs ), Gail Zacharias ( Gröbner ) og Rich Zippel ( potensrækker , polynomiel faktorisering , talteori , kombinatorik ).

Macsyma blev skrevet i Maclisp og var i nogle tilfælde en nøglemotivator til at forbedre den dialekt af Lisp inden for numerisk databehandling, effektiv kompilering og sprogdesign. Maclisp selv kørte primært på PDP-6 og PDP-10 computere, men også på Multics OS og på Lisp Machine- arkitekturer. Macsyma var et af de største, om ikke de største, Lisp-programmer på det tidspunkt.

Kommercialisering

I 1979 tilvejebragte MIT som svar på en anmodning fra Richard Fateman, dengang professor ved UC Berkeley , en midlertidig licens til Macsyma-kode. Dette blev næsten straks bragt op på den nye VAX-11/780 computer ved hjælp af en dialekt af Maclisp, Franz Lisp , skrevet af Fatemans gruppe. MIT licenserede versioner af VAX Macsyma fra Berkeley til omkring 50 universiteter, startende med Caltech, under forudsætning af, at licenserne blev tilbagekaldt, når forhandlingerne om en ordentlig licens var afsluttet. Dette skete faktisk, da forhandlingen med Symbolics (se nedenfor) var afsluttet. Symbolics var tilbageholdende med at licensere VAX-produktet, da VAX udgjorde konkurrencedygtig hardware til deres egne Lisp Machines og derfor undertrykte VAX-softwaren i fem år. UC Berkeley bragte også kopier af Macsyma op på Motorola 68000- baserede systemer, især Sun- arbejdsstationer. Symbolik undertrykte dem også. Samtidig arbejdede Fateman for at ændre den (nu tilbagekaldte) midlertidige licens til Macsyma til noget mere permanent.

I sidste ende pålagde USA's Department of Energy MIT kravet om, at de frigiver en kopi til National Energy Software Center (NESC) -biblioteket i 1982, mens MIT tillod at hævde begrænsninger med hensyn til høj pris og ingen omfordeling. Dette var beregnet til at beskytte teknologioverførslen til Symbolics. (Sådanne begrænsninger er siden ophævet, 2002 eller deromkring.) Denne såkaldte DOE Macsyma var blevet omskrevet på MIT i en præ- Common Lisp dialekt kaldet NIL lisp , ufuldstændigt implementeret på VAX / VMS , et upopulært system i den akademiske verden, hvor Berkeley VAX Unix var almindelig. DOE Macsyma dannede grundlaget for det meget senere open source Maxima- system.

I 1981 forsøgte Moses og Richard Pavelle , en MIT-medarbejder og tilhænger af at anvende Macsyma på ingeniørvidenskab og videnskab, at danne et firma til kommercialisering af Macsyma. Pavelle havde skrevet mange videnskabelige artikler ved hjælp af Macsyma. Med papirerne i hånd henvendte Pavelle og Moses sig til flere venturekapitalfirmaer, der viste interesse for at finansiere en Macsyma-opstart. Med potentielle tilbud tæt på færdiggørelse besluttede MIT pludselig, at MIT-personale ikke skulle tjene direkte på MIT-udviklingen. I begyndelsen af ​​1982 blev Macsyma licenseret af MIT til Arthur D. Little , Inc. (ADL), som blev mægler for Macsyma og snart licenserede Macsyma til Symbolics i slutningen af ​​1982. Moses blev tvunget ud af billedet af ADL og Pavelle blev den leder af Macsyma-divisionen hos Symbolics. Det var tydeligt, at Symbolics ikke var så meget interesseret i koden som at holde Macsyma ude af softwarekataloget til sin konkurrent i Lisp Machine-forretningen, LMI . Forretningsordningen mellem Symbolics og Arthur D. Little krævede en royaltybetaling til ADL på 15% af Macsymas bruttosalg. Denne royalty førte til spekulationer om MIT og ADLs ønske om at se MACSYMA trives. Udviklingen af ​​Macsyma fortsatte i Symbolics på trods af at det blev set som en afvigelse fra salget af Lisp-maskiner , hvilket Symbolics betragtede som deres vigtigste forretning på trods af at Macsyma-salget og det gearede salg af Lisp Machines nåede 10% af det samlede salg hos Symbolics inden for to år. På trods af modstand fra mange inden for symbolik blev Macsyma frigivet til DEC VAX-computere og Sun-arbejdsstationer ved hjælp af Berkeleys Franz Lisp i begyndelsen til midten af ​​80'erne.

Imidlertid førte problemer ved Symbolics over salget af Macsyma på andre computere end Symbolics til sidst til faldet i Macsyma-salget. I første halvdel af 1986 var Macsyma-indtægterne lavere end i første halvdel af 1985 i en voksende industri. Wolframs SMP-program og Waterloo Maple voksede på dette tidspunkt, selvom MACSYMA let var bedre end disse andre pakker i symbolsk matematik.

Pavelle ledte Macsyma-divisionen hos Symbolics indtil begyndelsen af ​​1986. I anden halvdel af 1986 blev Richard Petti manager for Macsyma-forretningen for at reducere salget og undgå konflikt med medarbejderne i Symbolics. Macsyma skar antallet, men udvidede sin salgsstyrke og markedsføring og fokuserede udviklerne mere på funktioner, som kunderne bad om. (F.eks. Blev Spear-Zacharias ( Gröbner ) basisalgoritmen , der blev implementeret i 1970'erne på MIT, først installeret i et forsendelses-Macsyma.) I 1987 fordobledes Macsymas årlige indtægter nogenlunde. MACSYMA blev mere brugervenligt: ​​dokumentation og online-hjælp blev omorganiseret og udvidet; nogle kommandonavne blev ændret for at være mere mnemoniske. Systemet blev overført til Common Lisp (af Kent M.Pitman ). Petti argumenterede over for Symbolics-ledelsen, at Macsyma var en 'strategisk forretningsenhed', der skulle finansieres baseret på dens præstationer og potentiale, ikke baseret på udsigterne til den største arbejdsstationsforretning. Imidlertid skar Symbolics Macsyma-antallet efter denne periode med skarp vækst; Symbolics forsøgte at bruge Macsyma som en lille kontantko til at finansiere tabet af arbejdsstationsvirksomheden, der var 30 gange dens størrelse.

Den største produktsvaghed ved Macsyma var dens numeriske analyse. At mestre symbolsk matematik var en herculean opgave; men numeriske muligheder var afgørende for at få et stykke af de meget større tekniske og lavere videnskabelige markeder. På MIT havde Macsyma et link til IMSL (nu et produkt af Perforce Software ) numeriske biblioteker, men dette link blev adskilt, da Macsyma flyttede til Symbolics. Lisp-udviklere hos Symbolics mente generelt, at numerisk analyse var en gammel teknologi, der ikke var vigtig for Lisp-applikationer, så de nægtede at investere i den. Dobbeltpræcisionsaritmetik i Macsyma (på en pc- version) var cirka seks gange langsommere end Fortran. Også Macsymas matricer blev implementeret som lister over lister, der kostede en anden faktor på måske 5-10 i hastighed for nøglealgoritmer. Macsyma havde ikke mange af de grundlæggende algoritmer for numerisk lineær algebra, såsom LU-nedbrydning .

I 1987-88 forsøgte Macsyma-gruppen at bygge en PC Macsyma med Gold Hill Lisp . (Tidligere havde Symbolics dræbt sit eget projekt om at opbygge en Lisp-kompilator til standardcomputere for at undgå at konkurrere med Lisp-maskinsalg. Dette var et kontroversielt træk, der af nogle konti blev gennemført uden godkendelse fra den øverste ledelse. Symbolics nægtede også at samarbejde med Sun for at stille Lisp til rådighed på Sun-arbejdsstationer af samme grund.) Gold Hill Lisp var for ustabil, og dens svage arkitektur gjorde det umuligt for Gold Hill at fjerne bugs. Dette var en afgørende fiasko for Macsyma. Det betød, at Macsyma ikke kunne svare på pc'er, da Mathematica dukkede op på Apple-computere i midten af ​​1988. Macsyma dukkede op på Windows- pc'er i august 1989 ved hjælp af CLOE Lisp fra Symbolics. Imidlertid var Macsyma-personalet for lille og manglede den blanding af færdigheder, der var nødvendige for at tilføje den slags grafik, notebook-interface og bedre numerik, som Mathematica havde.

I 1989 var det klart for Petti, at Symbolics ville implodere på grund af dårlig produktstrategi, og at det ville tage Macsyma med det. (Nogle produktproblemer: (1) Symbolics software blev designet til MIT-klasse softwareudviklere uden tilstrækkelige indrømmelser til andre. (2) Symbolics software i verdensklasse mistede andel på markedet på grund af afhængighed af meget omkostningseffektiv hardware. (3) ved at flytte til VLSI hardware i midten af 1980'erne, Symbolik konverteret fra 36-bit ord størrelse til en 40-bit uden begrundelse fra markedet for de enorme omkostninger ved udviklingen af denne ændring.) Macsyma kunne ikke samle en købs- team på grund af manglende samarbejde fra MIT. Efter at have holdt sig temmelig stille siden 1986 om produktproblemerne forsøgte Petti i slutningen af ​​1988 at overtale Symbolics til at vedtage en software, der kun er software eller kortniveau; men den fjerde præsident på fire år ville ikke høre noget om det. I 1990 forlod Petti Symbolics til en opstart.

Macsyma, Inc.

Macsyma, Inc., blev grundlagt i 1992 af Russell Noftsker (formand, der var medstifter af Symbolics ) og Richard Petti (præsident, som havde vendt Macsyma en tid hos Symbolics) ved at rejse midler og købe rettighederne til Macsyma fra skrantende symbolik. Selvom markedet voksede hurtigt, faldt salget af Macsyma i 1991 og begyndelsen af ​​1992 stadig hurtigt. Macsymas markedsandel inden for symbolsk matematiksoftware var faldet fra 70% i 1987 til 1% i 1992. I 1993 var markedsvæksten aftaget, og markedet var standardiseret på Mathematica og Maple. Konkurrenterne havde udviklingsstabe, der var 4-8 gange så store som Macsyma Inc. gennem 1990'erne.

I begyndelsen af ​​1995 sendte virksomheden Macsyma 2.0.5 med mange forbedringer: På Westers store test af symbolsk matematik scorede Macsyma 2.0.5 10% bedre end Maple og 15% bedre end Mathematica. Selvom Macsyma 2.0.5 stadig var meget langsom til numerik, havde den en stærkt styrket portefølje af numerisk analyse og lineære algebrautiner. (I 1996 tilføjede Macsyma LAPACK, hvilket i høj grad øgede hastigheden for den mest numeriske lineære algebra.).

Udviklingsteamet omfattede på dette tidspunkt Jeff Golden (sprog, kompilator osv.), Bill Gosper (specialfunktioner, summering), Howard Cannon (brugergrænseflade, optimering) og flere konsulenter. Bill Dubuque arbejdede med integration, ligningsløsning, database og optimering. Christopher Stacy og David H. Wood tilføjede MATLABs sprog- og matrixfunktionalitet. Andre udviklere gjorde store bidrag inden for numerisk analyse, grafik og hjælpesystemer.

Virksomheden kunne ikke fortsætte på ubestemt tid med at overgå medarbejdere 4-8 gange så stort og vende markedets momentum. Markedsandelen steg ikke over 2%, fordi konkurrenterne var forankret i alle nøglekonti, det er meget dyrt at lære at konvertere til et nyt produkt, og markedsvæksten faldt. Fra og med 1992 eller 1993 deltog Mathsoft i en pyrrhisk strategi om at bruge 10 millioner dollars på direct mail til meget lave priser, hvilket vandt meget af den resterende vækst på det symbolske matematiske marked, netop da Macsyma Inc. kæmpede for at genopbygge sin verden -klasse produkt.

I 1999 blev Macsyma købt af Tenedos LLC , et holdingselskab, der tidligere havde købt Symbolics. Holdingselskabet har ikke genudgivet eller videresolgt Macsyma, men Macsyma distribueres fortsat af Symbolics til Microsoft Windows- versioner op til Windows XP .

Tilgængelige versioner

Der er også en GPL- licenseret version, kaldet Maxima , baseret på 1982-versionen af ​​DOE Macsyma, efterfølgende tilpasset til Common Lisp og forbedret af William Schelter . Det er under aktiv udvikling og kan kompileres under flere Common Lisp- systemer. Downloadbare eksekverbare filer til Linux , Microsoft Windows , Mac OS X og andre systemer, herunder grafiske brugergrænseflader, er tilgængelige. Maxima inkluderer ikke mange af de mange funktioner, der er tilføjet i perioden med kommerciel udvikling mellem 1982-1999, men er en aktuel, gratis, åben codebase, der inkluderer adskillige ekstra funktioner, flere alternative frontendere og fungerer med et antal Common Lisp-motorer . Mens dette har resulteret i nogle uforeneligheder mellem Macsyma og Maxima, kan programmer skrevet på Macsyma algebraisk sprog ofte køres med kun mindre ændringer i begge systemer.

Referencer

eksterne links