Mathomatic: Символдық есептеулер жүйесінің тарихы мен мүмкіндіктері
Mathomatic
Mathomatic – қарапайым алгебраны шешу, дифференциалдау, келесідей мүмкіндіктері бар компьютерлік алгебра жүйесі: есептеу, кескіндеу. DOS үшін жасалған.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік алгебра жүйесі
Computer algebra system
Ерекшеліктері
Mathomatic элементар алгебраны шешуге, дифференциалдауға, оңайлатуға, есептеуге және визуализациялауға қабілетті. Ол бастапқыда MS DOS үшін Microsoft C тілінде жазылған. 1- және 2-нұсқалары 1987 және 1988 жылдары Нью-Йорк штатының Рочестер қаласындағы Dynacomp компаниясымен DOS жүйесіне арналған ғылыми бағдарламалық өнім ретінде жарияланды. Кейін ол 2D теңдеулер графигін құру бағдарламасымен бірге shareware, содан кейін emailware ретінде таралды. 20-шы ғасырдың басында Mathomatic Linux жүйесіндегі GNU C компиляторына көшіріліп, ақысыз бағдарламалық құралға айналды. Графикалық бағдарлама қолданудан тоқтатылды; теңдеулердің 2D/3D графигі gnuplot арқылы жасалады. "Mathomatic" атауы "математика" және "автоматтық" сөздерінің қосындысынан құралған, және ол жасанды интеллект саласындағы алғашқы тәжірибе болған Rog O Matic-тің аталғандығы мен автоматтандырылуынан шабыт алды. Автордың 2013 жылдың 24 ақпанында қайтыс болуына байланысты әзірлеу тоқтаған сияқты.
Mathomatic is capable of solving, differentiating, simplifying, calculating, and visualizing elementary algebra. It was originally written in Microsoft C for MS DOS. Versions 1 and 2 were published by Dynacomp of Rochester, New York in 1987 and 1988 as a scientific software product for DOS. Afterwards it was released as shareware and then emailware, with a 2D equation graphing program. At the turn of the century, Mathomatic was ported to the GNU C Compiler under Linux and became free software. The graphing program was discontinued; 2D/3D graphing of equations is now accomplished with gnuplot. The name "Mathomatic" is a portmanteau of "math" and "automatic", and was inspired by the naming and automation of Rog O Matic, which was an early experiment in artificial intelligence. Development appears to have ceased as a result of the death of the author on February 24, 2013.
Қол жетімді платформалар
Mathomatic дерлік барлық платформаларда қолжетімді, оның ішінде Microsoft Windows-та MinGW арқылы. Ол Mac OS X, iOS, Android және Nintendo DS үшін DSLinux және дербес түрде де қолжетімді. Fedora Linux, Slackware, Debian, Ubuntu, Gentoo Linux және барлық негізгі BSD Unix дистрибутивтері Mathomatic-ті автоматты түрде орнатылатын пакет ретінде қамтиды. Emscripten арқылы JavaScript-ке портталған, бұл Mathomatic-ті веб-браузерде іске қосуға мүмкіндік береді. Порттарды әрқайсысы жеке адамдар күзетеді.
Mathomatic is available for almost all platforms, including Microsoft Windows using MinGW. It is available for Mac OS X, for iOS, for Android, and for the Nintendo DS under DSLinux and stand alone. Fedora Linux, Slackware, Debian, Ubuntu, Gentoo Linux, and all of the main BSD Unix distributions include Mathomatic as an automatically installable package. There is a port to JavaScript using Emscripten, allowing Mathomatic to run in a web browser. The ports are all maintained by separate individuals.
Талаптар
Көзден құрастыру үшін стандартты POSIX C кітапханалары бар C компиляторы қажет. Егер Mathomatic Unix сияқты операциялық жүйе үшін GCC C компиляторымен немесе Tiny C компиляторымен құрастырылса, бастапқы кодқа ешқандай өзгеріс енгізудің қажеті жоқ. Mathomatic компиляторға тән кодты пайдаланбайды, сондықтан ол әдетте кез келген C компиляторымен оңай құрастырылады. Mathomatic Symbolic Math Library пайдалану бағдарламалау тілдерін араластыруға мүмкіндік береді және операциялық жүйеге тәуелсіз. Mathomatic кем дегенде 1 мегабайт бос RAM-ы бар кез келген компьютерге орнатылуы мүмкін. Mathomatic стандартты тарату үшін жад талабы, теңдеу кеңістіктерінің мөлшеріне және қанша өрнек енгізілгеніне байланысты, ең көп дегенде 400 мегабайтты құрайды. Теңдеу кеңістіктері – қажеттілікке қарай бөлінетін, көлемі компиляция немесе іске қосылған кезде белгіленетін, белгілі бір мөлшердегі массивтер. Басты сұраныста енгізілген әрбір алгебралық өрнек немесе теңдеу теңдеу кеңістігінде сақталады. Mathomatic жадты жылжыту арқылы көптеген символдық манипуляцияларды орындау үшін, ассемблер тіліндегі бағдарлама сияқты жазылған. Бұл Mathomatic-ті жаңа LLVM артқы бөлігімен қолданғанда құлауына себеп болады, себебі ол стандартты C кітапханасының memmove(3) функциясын дұрыс қабылдамайды. Mathomatic-ті LLVM артқы бөлігін пайдаланатын C компиляторымен пайдалану үшін, C компиляторының команда жолында "O0" арқылы барлық оптимизацияларды өшіріңіз. Әйтпесе, регрессиялық тесттер шексіз циклге түсіп кетеді. Бұл LLVM-дегі оптимизациялық қате. Бұл оптимизациялық қатені жоюға тырысатындарға көмектесу үшін, Mathomatic LLVM (32^.5) өрнегін 4*(2^.5) түрінде оңайлатқанда сәтсіздікке ұшырайды және әрқашан шексіз циклге түседі.
Building from source requires a C compiler with the standard POSIX C libraries. If Mathomatic is compiled with the GCC C compiler or the Tiny C Compiler for a Unix like operating system, no changes need to be made to the source code. Mathomatic uses no compiler specific code, so it will usually compile easily with any C compiler. Use of the Mathomatic Symbolic Math Library allows mixing programming languages and is operating system independent. Mathomatic can be ported to any computer with at least 1 megabyte of free RAM. The Mathomatic standard distribution memory requirement defaults to a maximum of 400 megabytes, depending on the size of the equation spaces and how many expressions have been entered. Equation spaces are fixed size arrays that are allocated as needed, the size of which is set during compilation or startup. Each algebraic expression or equation entered at the main prompt is stored in an equation space. Mathomatic is written to do most symbolic manipulations with memory moves, like an assembly language program. This causes Mathomatic to crash when used with the new LLVM backend, which doesn't seem to like the standard C library function memmove(3). To use Mathomatic with a C compiler that uses an LLVM backend, disable all optimizations with " O0" on the C compiler command line. Otherwise the regression tests will loop endlessly. This is most certainly an optimization bug in LLVM. To help those trying to debug this optimization error, Mathomatic will fail when LLVM optimizes the simplification of (32^.5) to 4*(2^.5), and the like, going into an endless loop every time.