Axiom (počítačový algebraický systém) - Axiom (computer algebra system)
Vývojáři | Nezávislá skupina lidí |
---|---|
Stabilní uvolnění | Kontinuální používání Přístavní dělník |
Úložiště | |
Operační systém | Cross-platform |
Typ | Počítačový algebraický systém |
Licence | Upravená licence BSD |
webová stránka | www |
Axiom je volný, uvolnit, univerzální počítačový algebraický systém. Skládá se z prostředí tlumočníka, kompilátoru a knihovny, která definuje silně napsanou hierarchii.
Dějiny
Dva pojmenované systémy počítačové algebry Scratchpad byly vyvinuty IBM. První zahájil v roce 1965 James Griesmer[1] na žádost Ralph Gomory a napsáno v Fortran.[1] Vývoj tohoto softwaru byl zastaven před jakýmkoli veřejným vydáním. Druhý Scratchpad, původně pojmenovaný Scratchpad II, byl vyvinut od roku 1977 dne, v Výzkumné centrum Thomase J. Watsona pod vedením Richarda Dimicka Jenkse.[2]
Za design v zásadě stojí Richard D. Jenks (IBM Research), James H. Davenport (University of Bath), Barry M. Trager (IBM Research), David Y.Y. Yun (Southern Methodist University) a Victor S. Miller (IBM Research). Prvními konzultanty projektu byli David Barton (University of California, Berkeley) a James W. Thatcher (IBM Research). Implementace zahrnovala Robert Sutor (IBM Research), Scott C. Morrison (University of California, Berkeley), Christine J. Sundaresan (IBM Research), Patrizia Gianni (University of Pisa), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt ( IBM Research and University of Waterloo), Josh Cohen (Yale University) a Michael Rothstein (Kent State University).[3]
Scratchpad II byl přejmenován Axiom když se IBM, kolem roku 1990, rozhodla udělat z něj komerční produkt. O několik let později byl prodán KOBYLKA. V roce 2001 byla stažena z trhu a znovu uvedena pod Upravená licence BSD. Od té doby je hlavním vývojářem projektu Tim Daly.
V roce 2007 byl Axiom rozeklaný dvakrát, pocházející ze dvou různých open-source projekty: OpenAxiom[4] a FriCAS,[5] následující „vážná neshoda ohledně cílů projektu“.[6] Projekt Axiom nadále vyvíjel Tim Daly.
Současný směr výzkumu je „Proving Axiom Sane“, to znamená logické, racionální, uvážlivé a zdravé.
Dokumentace
Axiom je a gramotný program. [7] Zdrojový kód je k dispozici v sadě svazků, které jsou k dispozici na webu axiom-developer.org
webová stránka. Tyto svazky obsahují skutečný zdrojový kód systému.
Aktuálně dostupné dokumenty jsou:
- Kombinovaný obsah
- Svazek 0: Axiom Jenks a Sutor —Hlavní učebnice
- Hlasitost 1: Výukový program Axiom —Jednoduchý úvod
- Svazek 2: Uživatelská příručka Axiom —Podrobné příklady použití domény (neúplné)
- Svazek 3: Průvodce programátory Axiom —Pokyny pro psaní programu (neúplné)
- Svazek 4: Průvodce vývojáři Axiom —Krátké eseje o tématech specifických pro vývojáře (neúplné)
- Svazek 5: Tlumočník Axiom —Zdrojový kód pro tlumočníka Axiom (neúplný)
- Svazek 6: Příkaz Axiom —Zdrojový kód pro systémové příkazy a skripty (neúplné)
- Svazek 7: Axiom Hyperdoc —Zdrojový kód a vysvětlení prohlížeče nápovědy X11 Hyperdoc
- Svazek 7.1 Stránky Axiom Hyperdoc —Zdrojový kód pro stránky Hyperdoc
- Svazek 8: Axiom Graphics —Zdrojový kód pro grafický subsystém X11
- Svazek 8.1 Galerie Axiom —Galerie obrázků Axiom
- Svazek 9: Překladač Axiom —Zdrojový kód kompilátoru Spad (neúplný)
- Svazek 10: Implementace algebry Axiom —Komise o problémech s implementací (neúplné)
- Svazek 10.1: Teorie axiomové algebry —Testy obsahující teorii pozadí
- Svazek 10.2: Kategorie Axiom Algebra —Zdrojový kód pro kategorie Axiom
- Svazek 10.3: Axiomové algebrické domény —Zdrojový kód pro domény Axiom
- Svazek 10.4: Balíčky Axiom Algebra —Zdrojový kód pro balíčky Axiom
- Svazek 10.5: Axiom Algebra Numerics —Zdrojový kód pro numeriku Axiomu
- Svazek 11: Prohlížeč Axiom —Zdrojové stránky pro klientské rozhraní prohlížeče Axiom Firefox
- Svazek 12: Axiom Crystal —Zdrojový kód pro front-end Axiom Crystal (neúplný)
- Svazek 13: Správně prokazující axiom —Prove Axiom Algebra (neúplné)
- Svazek 15: Kompilátor Axiom SANE
- Bibliografie: Axiom bibliografie —Odkazy na literaturu
- Seznam chyb: Seznam chyb Axiom -Bug List
- Referenční karta: Referenční karta Axiom - Užitečné shrnutí funkcí
Videa
Projekt Axiom se zaměřuje především na poskytování dokumentace. Nedávno projekt oznámil první ze série instruktážních videí, která jsou rovněž k dispozici na internetu axiom-developer.org
[8] webová stránka. První video[9] poskytuje podrobnosti o informačních zdrojích Axiom.[9]
Filozofie
Projekt Axiom se zaměřuje na „30letý horizont“. Primární filozofií je, že Axiom potřebuje vyvinout několik základních funkcí, aby byl užitečný pro další generaci výpočetních matematiků. Knuth gramotné programování technika se používá v celém zdrojovém kódu. Axiom plánuje použít důkazní technologii k prokázání správnosti algoritmů (např Coq a ACL2 ).
Axiom používá Přístavní dělník Kontejnery jako součást procesu nepřetržitého uvolňování. Nejnovější obrázek je k dispozici na jakékoli platformě pomocí boot2docker [2] a příkazy:
docker pull daly / axiomdocker run -i -t daly / axiom axiom
Design
V Axiomu má každý objekt typ. Příklady typů jsou matematické struktury (např prsteny, pole, polynomy ), jakož i datové struktury z informatiky (např. seznamy, stromy, hash tabulky ).
Funkce může brát typ jako argument a jeho návratovou hodnotou může být také typ. Například, Zlomek
je funkce, která trvá IntegralDomain
jako argument a vrátí pole zlomků jeho argumentu. Dalším příkladem je prsten matice s racionálními položkami by byly konstruovány jako SquareMatrix (4, zlomkové celé číslo)
. Při práci v této doméně samozřejmě 1
je interpretován jako matice identity a A ^ -1
dá inverzi matice A
, pokud existuje.
Několik operací může mít stejný název a typy obou argumentů a výsledku se používají k určení, která operace se použije (srov. přetížení funkce ).
Axiom přichází s rozšířeným jazykem nazvaným SPAD. Všechny matematické znalosti Axiomu jsou psány v tomto jazyce. Tlumočník přijímá zhruba stejný jazyk.
Funkce
V prostředí tlumočníka Axiom používá odvození typu a heuristický algoritmus, aby byly anotace explicitního typu většinou zbytečné.
Je vybaven „HyperDoc“, což je interaktivní systém nápovědy podobný prohlížeči, a dokáže zobrazit dvourozměrnou a trojrozměrnou grafiku a také poskytuje interaktivní funkce, jako je rotace a osvětlení. Má také speciální režim interakce pro Emacs, stejně jako plugin pro TeXmacs editor.
HyperDoc zobrazující dostupné operace pro doménu
Axiom zobrazující povrch
Rozhraní prohlížeče Axiom Firefox
Axiom zjednodušující rovnici tepla
Manipulace s maticí axiomu
Axiom výpočet Rischova integrálu
Axiom má implementaci Rischův algoritmus pro základní integraci, kterou provedli Manuel Bronstein a Barry Trager.
Viz také
Reference
- ^ Domovská stránka Axiom
- ^ Richard Dimick Jenks - životopisné informace
- ^ https://www.springer.com/gp/book/9783540159841
- ^ open-axiom.org
- ^ fricas.sourceforge.net
- ^ Historie FriCAS
- ^ Proč gramotné programování? na Web axiom-developer.org
- ^ Axiom-developer.org
- ^ A b "Informační zdroje systému Axiom Computer Algebra". Youtube. 30. listopadu 2008.
Další čtení
- James H. Griesmer; Richard D. Jenks (1971). „SCRATCHPAD / 1: Interaktivní zařízení pro symbolickou matematiku“: 42–58. Citovat deník vyžaduje
| deník =
(Pomoc) - Richard D. Jenks (1971). META / PLUS - Syntax Extension Facility pro SCRATCHPAD (Zpráva o výzkumu). IBM Výzkumné centrum Thomase J. Watsona. RC 3259.
- James H. Griesmer; Richard D. Jenks (1972). "Zkušenosti s online symbolickým matematickým systémem". 1. Brunel University: 457–476. Citovat deník vyžaduje
| deník =
(Pomoc) - James H. Griesmer; Richard D. Jenks (1972). „Scratchpad“. Oznámení ACM SIGPLAN. 7 (10): 93–102. doi:10.1145/942576.807019.
- Richard D. Jenks (1974). "Jazyk SCRATCHPAD". Bulletin ACM SIGSAM. 8 (2): 20–30. doi:10.1145/1086830.1086834.
- Arthur C. Norman (1975). "Výpočet s formální výkonovou řadou". Transakce ACM na matematickém softwaru. 1 (4): 346–356. doi:10.1145/355656.355660. ISSN 0098-3500.
- Richard D. Jenks (1976). „A pattern compiler“: 60–65. Citovat deník vyžaduje
| deník =
(Pomoc) - E. Lueken (1977). Ueberlegungen zur Implementierung eines Formelmanipulationssystems (Diplomová práce) (v němčině). Německo: Technischen Universitat Carolo-Wilhelmina zu Braunschweig.
- George E. Andrews (1984). "Ramanujan a SCRATCHPAD". Schenectady: General Electric: 383–408. Citovat deník vyžaduje
| deník =
(Pomoc) - James H. Davenport; P. Gianni; Richard D. Jenks; V. Miller; Scott Morrison; M. Rothstein; C. Sundaresan; Robert S. Sutor; Barry Trager (1984). „Scratchpad“. Oddělení matematických věd, IBM Výzkumné centrum Thomase J. Watsona. Citovat deník vyžaduje
| deník =
(Pomoc) - Richard D. Jenks (1984). "Nový jazyk a systém SCRATCHPAD pro počítačovou algebru". Sborník konference uživatelů MACSYMA z roku 1984: 409–416.
- Richard D. Jenks (1984). "Základní nátěr: 11 kláves k novému zápisníku". Springer: 123–147. Citovat deník vyžaduje
| deník =
(Pomoc) - Robert S. Sutor (1985). Msgstr "Jazyk a systém počítačové algebry Scratchpad II". Springer: 32–33. Citovat deník vyžaduje
| deník =
(Pomoc) - Rüdiger Gebauer; H. Michael Möller (1986). Buchbergerův algoritmus a střídavé lineární báze. ACM. 218–221. ISBN 978-0-89791-199-3.
- Richard D. Jenks; Robert S. Sutor; Stephen M. Watt (1986). Scratchpad II: abstraktní systém datových typů pro matematické výpočty (Zpráva o výzkumu). IBM Výzkumné centrum Thomase J. Watsona. RC 12327.
- Michael Lucks; Bruce W. Char (1986). Rychlá implementace polynomiální faktorizace. ACM. str. 228–232. ISBN 978-0-89791-199-3.
- J. Purtilo (1986). Aplikace softwarového propojovacího systému v prostředích řešení matematických problémů. ACM. s. 16–23. ISBN 978-0-89791-199-3.
- William H. Burge; Stephen M. Watt (1987). Nekonečná struktura ve SCRATCHPAD II (Zpráva o výzkumu). IBM Výzkumné centrum Thomase J. Watsona. RC 12794.
- Pascale Sénéchaud; Françoise Siebert; Gilles Villard (1987). Scratchpad II: Prezentace nového stylu jazyka. TIM (Výzkumná zpráva) (ve francouzštině). IMAG, Technologický institut v Grenoblu. 640-M.
- Robert S. Sutor; Richard D. Jenks (1987). Msgstr "Typ odvození a donucovací prostředky v tlumočníku zápisníku II". Příspěvky sympozia o tlumočnických a interpretačních technikách - SIGPLAN '87. 56–63. doi:10.1145/29650.29656. ISBN 978-0-89791-235-8.
- George E. Andrews (1988). R. Janssen (ed.). "Aplikace SCRATCHPAD na problémy se speciálními funkcemi a kombinatorikou". Přednášky z informatiky (296). Springer: 159–166. Citovat deník vyžaduje
| deník =
(Pomoc) - James H. Davenport; Yvon Siret; Evelyne Tournier (1993) [1988]. Počítačová algebra: Systémy a algoritmy pro algebraické výpočty. Akademický tisk. ISBN 978-0122042300.
- Rüdiger Gebauer; H. Michael Möller (1988). "O instalaci Buchbergerova algoritmu". Journal of Symbolic Computation. 6 (2–3): 275–286. doi:10.1016 / s0747-7171 (88) 80048-8. ISSN 0747-7171.
- Fritz Schwarz (1988). R. Janssen (ed.). "Programování s abstraktními datovými typy: balíček symetrie (SPDE) ve Scratchpadu". Přednášky z informatiky. Springer: 167–176. Citovat deník vyžaduje
| deník =
(Pomoc) - David Shannon; Moss Sweedler (1988). „Použití Gröbnerových bází k určení členství v algebře, rozdělené homomorfismy rozdělené surjektivní algebry určují birační ekvivalenci“. Journal of Symbolic Computation. 6 (2–3): 267–273. doi:10.1016 / s0747-7171 (88) 80047-6.
- Hans-J. Boehm (1989). "Odvození typu za přítomnosti abstrakce typu". Oznámení ACM SIGPLAN. 24 (7): 192–206. doi:10.1145/74818.74835.
- Manuel Bronstein (1989). Msgstr "Zjednodušení skutečných elementárních funkcí". ACM: 207–211. Citovat deník vyžaduje
| deník =
(Pomoc) - Claire Dicrescenzo; Dominique Duval (1989). P. Gianni (ed.). Msgstr "Algebraické rozšíření a algebraické uzavření ve Scratchpadu II". Springer: 440–446. Citovat deník vyžaduje
| deník =
(Pomoc) - Timothy Daly „Axiom - třicet let Lisp“
- Timothy Daly „Axiom“, pozvaný přednáška, konference o svobodném softwaru, Lyon, Francie, květen 2002
- Timothy Daly "Axiom" Pozvaná přednáška, Libre Software Meeting, Metz, Francie, 9. – 12. Července 2003
externí odkazy
- Domovská stránka Axiom
- Online pískoviště, kde můžete vyzkoušet Axiom
- Úložiště zdrojového kódu: Github, SourceForge, GNU Savannah
- Jenks, R.D. a Sutor, R. „Axiom, The Scientific Computation System“
- Daly, T. "Axiom Volume 1: Tutorial"
Softwarové vidlice: