Maple
Autor | Waterloo Maple (Maplesoft) |
---|---|
Aktualna wersja stabilna | 2023 (9 marca 2023) [±] |
Język programowania | C, Java, Maple |
System operacyjny | Microsoft Windows, MacOS, Linux |
Rodzaj | język programowania, matematyka |
Licencja | Zamknięte oprogramowanie |
Strona internetowa |
Maple – program komputerowy typu CAS służący do wykonywania obliczeń symbolicznych, stworzony w 1981 roku przez Symbolic Computation Group na Uniwersytecie Waterloo w Kanadzie. Od 1988 rozwijany i sprzedawany komercyjnie przez firmę Waterloo Maple (znaną również jako Maplesoft).
Język programowania Maple jest językiem interpretowanym o dynamicznych typach danych. Wyrażenia symboliczne przechowywane są w pamięci jako skierowane grafy acykliczne.
Historia
[edytuj | edytuj kod]Pierwsza koncepcja Maple powstała w listopadzie 1980 roku na Uniwersytecie w Waterloo. Naukowcy z uniwersytetu chcieli kupić komputer wystarczająco potężny, aby uruchomić Macsymę. Zamiast tego zdecydowano, że opracują własny system algebry komputerowej, który będzie mógł działać na komputerach o znacznie niższej cenie. W ten sposób projekt rozpoczął się od stworzenia systemu symbolicznego algebry dostępnego dla badaczy i studentów.
Początkowy rozwój Maple przebiegał bardzo szybko, a pierwsza ograniczona wersja pojawiła się w grudniu 1980 roku. Naukowcy próbowali i odrzucali wiele różnych pomysłów, tworząc ciągle ewoluujący system. Maple został zademonstrowany jako pierwszy na konferencjach rozpoczynających się w 1982 roku. Nazwa „Maple” nie jest skrótem ani akronimem, ale po prostu odniesieniem do kanadyjskiego dziedzictwa Ontario Research Center for Computer Algebra.
Pod koniec 1983 roku ponad 50 uniwersytetów miało zainstalowane kopie Maple na swoich maszynach. Ze względu na dużą liczbę próśb o wsparcie i udzielenie licencji, w 1984 roku grupa badawcza zorganizowała z WATCOM Products Inc licencję i dystrybucję Maple.
W 1988 roku w związku z rosnącymi prośbami o wsparcie, powstała firma Waterloo Maple Inc. Pierwotnym celem firmy było zarządzanie dystrybucją oprogramowania. W końcu firma rozwinęła się o dział badawczo-rozwojowy, w którym dzisiaj odbywa się znaczna część rozwoju Maple. Znaczący rozwój trwa nadal w uniwersyteckich laboratoriach badawczych, w tym: w Laboratorium Obliczeniowym na Uniwersytecie w Waterloo; na Uniwersytecie Western Ontario.
W 1989 r. Opracowano pierwszy graficzny interfejs użytkownika dla Maple i dołączono go do wersji 4.3 na komputery Macintosh. Poprzednie wersje Maple zawierały tylko interfejs wiersza poleceń z dwuwymiarowym wyjściem. Wersje nowego interfejsu w wersjach X11 i Windows pojawiły się w 1990 roku w Maple V. W 1999 roku wraz z wydaniem Maple 6 dodano niektóre elementy biblioteki numerycznej NAG i ulepszono arytmetyczną arytmetykę precyzyjną.
W 2003 roku obecny „standardowy” interfejs został wprowadzony w Maple 9. Ten interfejs jest przede wszystkim napisany w Javie (chociaż części, takie jak zasady składu formuł matematycznych, są napisane w języku Maple). Interfejs Java został skrytykowany za powolność. Ten interfejs nie jest już obsługiwany.
Od połowy lat 1995–2005, ze względu na słabszy interfejs użytkownika, Maple stracił znaczny udział w rynku na rzecz konkurentów. W 2008 roku Maple 12 dodał dodatkowe funkcje interfejsu użytkownika, w tym arkusze stylów specjalnego przeznaczenia, kontrolę nagłówków i stopek, dopasowywanie nawiasów, automatyczne wykonywanie, szablony uzupełnień poleceń, sprawdzanie składni. Dodano dodatkowe funkcje ułatwiające korzystanie z Maple jako przybornika Matlaba.
Podstawowa funkcjonalność
[edytuj | edytuj kod]Użytkownicy mogą wpisywać problemy matematyczne w tradycyjny zapis matematyczny. Można również tworzyć niestandardowe interfejsy użytkownika. Obsługiwane są obliczenia numeryczne, a także obliczenia symboliczne i wizualizacja.
Maple zawiera dynamicznie napisany styl programowania podobny do Pascala. Język dopuszcza zmienne o zakresie leksykalnym. Istnieją również interfejsy do innych języków (C, C#, Fortran, Java, MATLAB i Visual Basic). Istnieje również interfejs do programu Excel.
Maple obsługuje MathML 2.0, format W3C do reprezentowania i interpretowania wyrażeń matematycznych, w tym ich wyświetlania na stronach internetowych
Architektura
[edytuj | edytuj kod]Maple oparty jest na małym jądrze, napisanym w języku C. Większość bibliotek jest napisana w języku Maple, mają one widoczny kod źródłowy. Wiele obliczeń numerycznych przeprowadzanych jest przez biblioteki numeryczne NEG, biblioteki ATLAS lub biblioteki GMP.
Różne funkcje w Maple wymagają danych liczbowych w różnych formatach. Wyrażenia symboliczne są zapisywane w pamięci jako skierowane wykresy acykliczne. Standardowy interfejs i interfejs kalkulatora są napisane w Javie.
Przykładowy kod
[edytuj | edytuj kod]Poniższy kod oblicza dokładne rozwiązanie równania różniczkowego:
dsolve ({diff(y(x),x,x) – 3*y(x) = x, y(0)=1, D(y)(0)=2}, y(x)).