Macsyma - Macsyma

Macsyma ( / m Æ k s ɪ m ə / ; "Projecto manipulador simbólica do MAC") é uma das mais antigas de propósito geral sistemas de computador de álgebra ainda em grande uso. Ela foi originalmente desenvolvida 1968-1982 no MIT 's Projeto MAC .

Em 1982, Macsyma foi licenciado para Symbolics e se tornou um produto comercial. Em 1992, Symbolics Macsyma foi desmembrada para Macsyma, Inc., que continuou a desenvolver Macsyma até 1999. Essa versão ainda está disponível para Microsoft 's Windows XP sistema operacional.

A versão de 1982 do MIT Macsyma permaneceu disponível para acadêmicos e agências governamentais dos Estados Unidos e é distribuída pelo Departamento de Energia dos Estados Unidos (DOE). Essa versão, DOE Macsyma, foi mantida por Bill Schelter . Sob o nome de Maxima , foi lançado sob a GPL em 1999, e permanece sob manutenção ativa.

Desenvolvimento

O projeto foi iniciado em julho de 1968 por Carl Engelman , William A. Martin (front end, display de expressão, aritmética polinomial) e Joel Moses (simplificador, integração indefinida : heurística / Risch). Martin ficou encarregado do projeto até 1971, e Moses o administrou durante a década seguinte. Engelman e sua equipe partiram em 1969 para retornar à The MITER Corporation . Algum código veio de trabalhos anteriores, notavelmente o simplificador de Knut Korsvold. Posteriormente, os principais contribuintes para o motor matemático central foram: Yannis Avgoustis ( funções especiais ), David Barton (resolvendo sistemas algébricos de equações ), Richard Bogen ( funções especiais ), Bill Dubuque ( integração indefinida , limites, séries de potências, teoria dos números , funções especiais , equações funcionais, correspondência de padrões , consultas de sinais, Gröbner , TriangSys), Richard Fateman ( funções racionais , correspondência de padrões , ponto flutuante de precisão arbitrária ), Michael Genesereth (comparação, banco de dados de conhecimento), Jeff Golden (simplificador, linguagem, sistema), RW Gosper ( soma definida , funções especiais , simplificação, teoria dos números ), Carl Hoffman (simplificador geral, macros, simplificador não comutativo , portas para Multics e LispM , sistema, editor de equação visual ), Charles Karney (plotagem), John Kulp, Ed Lafferty ( solução ODE , funções especiais ), Stavros Macrakis ( partes reais / imaginárias , compilador, sistema), Richard Pavelle ( cálculo tensorial indicial , pacote de relatividade geral , equações diferenciais ordinárias e parciais ), David A. Spear ( Gröbner ), Barry Trager (integração algébrica, fatoração , Gröbner ), Paul S. Wang ( fatoração polinomial e GCD , números complexos , limites, integração definida , geração de código Fortran e LaTeX ), David YY Yun ( GCDs polinomiais ), Gail Zacharias ( Gröbner ) e Rich Zippel ( séries de potências , fatoração polinomial , teoria dos números , combinatória ).

Macsyma foi escrito em Maclisp e foi, em alguns casos, um motivador chave para melhorar esse dialeto do Lisp nas áreas de computação numérica, compilação eficiente e design de linguagem. O próprio Maclisp rodou principalmente em computadores PDP-6 e PDP-10 , mas também no Multics OS e nas arquiteturas Lisp Machine . Macsyma era um dos maiores, senão o maior, programas Lisp da época.

Comercialização

Em 1979, em resposta a um pedido de Richard Fateman, então professor da UC Berkeley , o MIT forneceu uma licença temporária para o código Macsyma. Isso foi quase imediatamente mencionado no novo computador VAX-11/780 usando um dialeto de Maclisp, Franz Lisp , escrito pelo grupo de Fateman. O MIT licenciou relutantemente versões do VAX Macsyma de Berkeley para cerca de 50 universidades, começando com a Caltech, sob a condição de que as licenças seriam revogadas quando as negociações para uma licença apropriada estivessem concluídas. Na verdade, isso aconteceu quando a negociação com a Symbolics (veja abaixo) foi concluída. A Symbolics estava relutante em licenciar o produto VAX, uma vez que VAX constituía hardware competitivo para suas próprias máquinas Lisp e, portanto, suprimiu o software VAX por cinco anos. A UC Berkeley também trouxe cópias do Macsyma em sistemas baseados no Motorola 68000 , principalmente nas estações de trabalho Sun. A simbólica também os suprimiu. Ao mesmo tempo, Fateman trabalhou para mudar a licença temporária (agora revogada) para Macsyma em algo mais permanente.

Em última análise, o Departamento de Energia dos Estados Unidos impôs ao MIT a exigência de liberar uma cópia na biblioteca do National Energy Software Center (NESC) em 1982, permitindo ao MIT impor restrições em termos de preço alto e sem redistribuição. O objetivo era proteger a transferência de tecnologia para a Symbolics. (Tais restrições foram levantadas desde 2002 ou mais.) Este chamado DOE Macsyma foi reescrito no MIT em um dialeto pré- Common Lisp chamado NIL lisp , implementado de forma incompleta no VAX / VMS , um sistema impopular na academia, onde Berkeley VAX Unix era comum. O DOE Macsyma formou a base para o muito posterior sistema de código aberto Maxima .

Em 1981, Moses e Richard Pavelle , um membro da equipe do MIT e proponente da aplicação do Macsyma à engenharia e à ciência, tentaram formar uma empresa para comercializar o Macsyma. Pavelle escreveu muitos artigos científicos usando Macsyma. Com os papéis em mãos, Pavelle e Moses abordaram várias empresas de capital de risco que mostraram interesse em financiar uma startup Macsyma. Com negócios em potencial perto da finalização, o MIT repentinamente decidiu que o pessoal do MIT não deveria lucrar diretamente com os desenvolvimentos do MIT. No início de 1982, Macsyma foi licenciado pelo MIT para Arthur D. Little , Inc. (ADL), que se tornou o corretor para Macsyma e logo licenciou Macsyma para Symbolics no final de 1982. Moses foi forçado a sair de cena por ADL e Pavelle tornou-se o chefe da divisão Macsyma da Symbolics. Era evidente que a Symbolics não estava tão interessada no código quanto em manter o Macsyma fora do catálogo de software de seu concorrente no negócio de máquinas Lisp, LMI . O acordo comercial entre a Symbolics e a Arthur D. Little exigia um pagamento de royalties para a ADL de 15% das vendas brutas da Macsyma. Esse royalty levou a especulações sobre o desejo do MIT e da ADL de ver o MACSYMA prosperar. O desenvolvimento do Macsyma continuou na Symbolics apesar de ter sido visto como um desvio da venda de máquinas Lisp , que a Symbolics considerava seu principal negócio, apesar de as vendas Macsyma e as vendas alavancadas de Máquinas Lisp terem atingido 10% do total vendas na Symbolics em dois anos. Apesar da resistência de muitos em Symbolics, Macsyma foi lançado para computadores DEC VAX e estações de trabalho Sun usando Franz Lisp de Berkeley no início dos anos 80.

No entanto, problemas na Symbolics sobre as vendas do Macsyma em computadores diferentes do Symbolics acabaram levando ao declínio das vendas do Macsyma. No primeiro semestre de 1986, as receitas da Macsyma foram menores do que no primeiro semestre de 1985, em uma indústria em crescimento. O programa SMP da Wolfram e o Waterloo Maple estavam crescendo nessa época, embora o MACSYMA fosse facilmente superior a esses outros pacotes em matemática simbólica.

Pavelle comandou a divisão Macsyma da Symbolics até o início de 1986. No segundo semestre de 1986, Richard Petti se tornou o gerente da empresa Macsyma para reduzir as vendas e evitar conflitos com os funcionários da Symbolics. A Macsyma reduziu o número de funcionários, mas expandiu sua força de vendas e marketing, e concentrou seus desenvolvedores mais nos recursos que os clientes pediam. (Por exemplo, o algoritmo básico de Spear-Zacharias ( Gröbner ) implementado na década de 1970 no MIT não foi instalado em um Macsyma de remessa até 1987.) Em 1987, a receita anual da Macsyma praticamente dobrou. MACSYMA tornou-se mais amigável: a documentação e a ajuda on-line foram reorganizadas e expandidas; alguns nomes de comando foram alterados para serem mais mnemônicos. O sistema foi portado para Common Lisp (por Kent M. Pitman ). Petti argumentou à administração da Symbolics que a Macsyma era uma "unidade de negócios estratégica" que deveria ser financiada com base em seu desempenho e potencial, não com base nas perspectivas do negócio principal de estações de trabalho. No entanto, a Symbolics reduziu o número de funcionários da Macsyma após esse período de forte crescimento; A Symbolics tentou usar Macsyma como uma minúscula vaca leiteira para financiar as perdas do negócio de estações de trabalho que era 30 vezes maior.

A maior fraqueza do produto Macsyma era sua análise numérica. Dominar a matemática simbólica era uma tarefa hercúlea; mas as capacidades numéricas eram críticas para obter uma parte da engenharia muito maior e dos mercados científicos de ponta. No MIT, Macsyma tinha um link para as bibliotecas numéricas IMSL (agora um produto da Perforce Software ), mas esse link foi rompido quando o Macsyma mudou para o Symbolics. Os desenvolvedores Lisp na Symbolics geralmente acreditavam que a análise numérica era uma tecnologia antiga que não era importante para os aplicativos Lisp, então eles se recusaram a investir nela. A aritmética de precisão dupla no Macsyma (em uma versão para PC ) era cerca de seis vezes mais lenta do que no Fortran. Além disso, as matrizes de Macsyma foram implementadas como listas de listas, que custam outro fator de talvez 5-10 em velocidade para algoritmos chave. Macsyma não tinha muitos dos algoritmos básicos da álgebra linear numérica, como a decomposição LU .

Em 1987-88, o grupo Macsyma tentou construir um PC Macsyma com Gold Hill Lisp . (Anteriormente, a Symbolics encerrou seu próprio projeto de construir um compilador Lisp para computadores padrão para evitar competir com as vendas de máquinas Lisp. Essa foi uma jogada polêmica que, segundo alguns relatos, foi realizada sem a aprovação da gerência sênior. A Symbolics também se recusou a cooperar com A Sun disponibilizará Lisp nas estações de trabalho da Sun pelo mesmo motivo.) Gold Hill Lisp era muito instável e sua arquitetura fraca tornava impossível para Gold Hill eliminar os bugs. Este foi um fracasso crucial para Macsyma. Isso significava que o Macsyma não poderia responder nos PCs quando o Mathematica apareceu nos computadores da Apple em meados de 1988. Macsyma apareceu em PCs com Windows em agosto de 1989 usando o CLOE Lisp da Symbolics. No entanto, a equipe do Macsyma era muito pequena e não tinha a combinação de habilidades necessárias para adicionar o tipo de gráficos, interface de notebook e números melhores que o Mathematica tinha.

Em 1989, estava claro para Petti que a Symbolics implodiria devido a uma estratégia de produto ruim e que levaria Macsyma com ela. (Alguns problemas do produto: (1) O software da Symbolics foi projetado para desenvolvedores de software de classe MIT sem concessões suficientes para outros. (2) O software de classe mundial da Symbolics estava perdendo participação no mercado devido à dependência de hardware de custo muito alto. (3) Ao mudar para o hardware VLSI em meados da década de 1980, o Symbolics converteu de um tamanho de palavra de 36 bits para um de 40 bits, sem justificativa do mercado para o enorme custo de desenvolvimento dessa mudança.) nossa equipe devido à falta de cooperação do MIT. Depois de se manter razoavelmente quieto desde 1986 sobre os problemas do produto, Petti tentou, no final de 1988, persuadir a Symbolics a adotar uma estratégia apenas de software ou de nível de placa; mas o quarto presidente em quatro anos não quis saber de nada. Em 1990, Petti trocou a Symbolics por uma start-up.

Macsyma, Inc.

A Macsyma, Inc. foi fundada em 1992 por Russell Noftsker (presidente, que co-fundou a Symbolics ) e Richard Petti (presidente, que mudou a Macsyma por um tempo na Symbolics), levantando fundos e comprando os direitos da Macsyma do enfermos simbólicos. Embora o mercado estivesse crescendo rapidamente, as vendas do Macsyma em 1991 e no início de 1992 ainda estavam caindo rapidamente. A participação de mercado da Macsyma em software de matemática simbólica caiu de 70% em 1987 para 1% em 1992. Em 1993, o crescimento do mercado desacelerou e o mercado padronizou o Mathematica e o Maple. Os concorrentes tinham equipes de desenvolvimento 4 a 8 vezes maiores do que a da Macsyma Inc. na década de 1990.

No início de 1995, a empresa lançou o Macsyma 2.0.5, com muitas melhorias: No grande teste de matemática simbólica de Wester, o Macsyma 2.0.5 teve uma pontuação 10% melhor do que o Maple e 15% melhor do que o Mathematica. Embora o Macsyma 2.0.5 ainda fosse muito lento em números, ele tinha um portfólio bastante fortalecido de análises numéricas e rotinas de álgebra linear. (Em 1996, Macsyma adicionou o LAPACK, que aumentou muito a velocidade da maioria da álgebra linear numérica.).

A equipe de desenvolvimento, neste momento, incluía Jeff Golden (linguagem, compilador, etc.), Bill Gosper (funções especiais, soma), Howard Cannon (interface de usuário, otimização) e vários consultores. Bill Dubuque trabalhou na integração, solução de equações, banco de dados e otimização. Christopher Stacy e David H. Wood adicionaram a linguagem e a funcionalidade de matriz do MATLAB . Outros desenvolvedores fizeram contribuições importantes em análise numérica, gráficos e sistemas de ajuda.

A empresa não poderia continuar indefinidamente a superar o desempenho das equipes de 4 a 8 vezes maior e reverter o ímpeto do mercado. A participação de mercado não aumentou acima de 2%, porque os concorrentes estavam consolidados em todas as contas-chave, a conversão para um novo produto é muito cara em tempo de aprendizagem e o crescimento do mercado diminuiu. Além disso, a partir de 1992 ou 1993, a Mathsoft se engajou na estratégia de Pirro de gastar US $ 10 milhões em mala direta a preços muito baixos, o que conquistou grande parte do crescimento restante no mercado de matemática simbólica, exatamente quando a Macsyma Inc. estava lutando para reconstruir seu mundo produto de classe.

Em 1999, a Macsyma foi adquirida pela Tenedos LLC , uma holding que anteriormente havia adquirido a Symbolics. A holding não relançou ou revendeu o Macsyma, mas o Macsyma continua a ser distribuído pela Symbolics para versões do Microsoft Windows até o Windows XP .

Versões disponíveis

Há também uma versão licenciada pela GPL , chamada Maxima , baseada na versão 1982 do DOE Macsyma, posteriormente adaptada para Common Lisp e aprimorada por William Schelter . Ele está em desenvolvimento ativo e pode ser compilado em vários sistemas Common Lisp . Estão disponíveis executáveis ​​para download para Linux , Microsoft Windows , Mac OS X e outros sistemas, incluindo interfaces gráficas de usuário . Maxima não inclui muitos dos numerosos recursos adicionados durante o período de desenvolvimento comercial entre 1982-1999, mas é uma base de código aberta e gratuita que inclui vários recursos adicionais, vários front-ends alternativos e funciona com uma série de motores Common Lisp . Embora isso tenha resultado em algumas incompatibilidades entre Macsyma e Maxima, programas escritos na linguagem algébrica Macsyma podem ser executados, com apenas pequenas alterações, em qualquer um dos sistemas.

Referências

links externos