매스매티카(Mathematica)는 스티븐 울프램이 처음 고안하고 Wolfram Research에 의해 개발된 과학, 공학 등에서 널리 사용하는 계산용 소프트웨어이다. 1988년에 버전 1.0을 발매하였으며, 2019년 4월 16일 12.0.0을, 2021년 6월 12.3.1을, 2021년 12월 13일 13을 출시하였으며 2024년 1월 9일 14.0.0이 7월 31일 최신 버전인 14.1.0이 출시되었다.
개요
매스매티카는 기호적 수학 계산 프로그램으로서 해석적인 계산이 가능하며 컴퓨터 대수학 시스템이라 칭하기도 한다. 매스매티카는 수많은 과학, 공학, 수학 및 컴퓨팅 분야에서 사용되어오고 있다. 예를 들어 어떤 함수의 적분을 구할 때 수치적인 방법으로 적분값을 구하는 것뿐만 아니라 해석적인 방법으로 부정적분 값을 구할 수 있다.
Wolfram Research의 창시자인 스티븐 울프램과 그의 팀은 1986년부터 새로운 수식 처리 시스템의 개발을 시작하여 1988년 그 첫 번째 버전을 출시했다. 울프램은 당초 이 시스템을 Omega 그 후 PolyMath라 칭했으나, 당시 NeXT 사의 사장이었던 스티브 잡스와 상담 후 보다 일반적인 단어를 재해석하여 "Mathematica"라 이름 붙여졌다.[5]
역대 Mathematica의 로고에 사용되고있는 것은 "스파이키"라는 3 차원 다면체로 초대 Mathematica는 대형 이십 면체, 이후 버전에서는 쌍곡선 이십 면체를 장식 한 것이 사용되고있다[6][7].
Mathematica는 C/C++ 및 Java로 구현되어 있지만, 확장 가능한 라이브러리는 모두 Wolfram 언어로 쓰여져있다. 실제로 새로운 코드 (Wolfram 언어로 작성된 텍스트 파일)은 Mathematica의 "패키지 (.m 파일)"로 추가된다. Mathematica는 4,000개 이상의 고도로 정교한 내장 함수[8]를 포함하고 있으며 이것을 빌딩 블록처럼 조합해 사용하는 것으로, 프로그램 생성이 용이하다. 시스템으로의 Mathematica는 Wolfram 언어를 해석하여 실제로 계산을 수행하는 커널과 그 계산 결과를 표시하는 프런트 엔드의 두 부분으로 구성된다. 커널 및 프론트 엔드 사이의 통신은 "MathLink" 프로토콜이 사용된다.
인터넷 접속시 "자유 형식 언어 입력" (자연어 사용자 인터페이스)[12][13]과 Wolfram 언어를 노트북에 모두 사용
인터페이스
Mathematica는 사용자와 상호 작용할 수 있는 프론트 엔드와 Wolfram 언어 코드로 연산을 수행하는 커널의 두 부분으로 구성된다. 노트북 형식의 프론트 엔드는 Mathematica 시스템의 GUI를 담당하는 부분이며 포맷된 텍스트 및 수학 타입셋, 그래픽, GUI 요소, 테이블, 음향 결과와 함께 프로그램 코드를 포함하는 노트북 문서의 생성 및 수정이 가능하다. 모든 내용 및 서식 설정은 알고리즘 또는 인터랙티브하게 편집 가능하며 일반적인 프로세싱 기능 대부분을 지원하고 있다. 프론트 엔드와 커널은 서로 독립적으로 시작하고 "MathLink"라는 프로토콜을 사용하여 통신하고 있다.
하나의 노트북에서 데이터의 처리부터 시각화, 문서 작성까지 원활하게 수행할 수 있는 것은 Mathematica의 가장 큰 장점 중 하나이다. 노트북에서는 사용자의 입력 (텍스트와 Wolfram 코드)과 커널 연산 결과 (그래픽과 사운드 포함)는 모두 계층화 된 '셀'에 포함되어 문서의 개요 및 섹션 분할을 용이하게 할 수 있다. 노트북의 내용은 모두 Wolfram 언어로 기술되어 있으며, 그 자체를 Wolfram 언어로 생성, 수정, 해석하는 것이 가능하다. 노트북에서 TeX 나 XML 등의 다른 포맷으로의 변환은 이 기능을 이용한 구문 분석을 통해 실현되고있다.
Mathematica 표준 노트북 이외에도 대체 프런트 엔드가 존재한다. 2006년에는 Eclipse 기반 통합 개발 환경의, Wolfram Workbench가 등장했다. Mathemarica의 프로젝트 기반 코드 개발 도구가되고 있으며, 버전 관리, 디버깅, 프로파일링, 테스팅[14] 등의 기능이있다. 또한 Mathematica 커널은 커멘드 라인 프론트 엔트 역시 포함하고있으며,[15] 다른 인터페이스로는 GNU readline, MASH[16] 기반의 JMath,[17]가 있으며 UNIX 명령 줄에서 직접 커널을 호출하여 상호작용할 수 있다.
계산 가능한 데이터
Mathematica는 일관된 프레임 워크에서 관리되는 데이터 집합이 포함되어 있으며, 즉시 계산에 사용할 수 있는 엄선된 데이터 컬랙션을 포함하고 있다. 또한 Mathematica는 지속적으로 데이터를 업데이트하는 온라인 서비스 Wolfram Alpha와 통합되어 있다. 수학 데이터,[18] 뿐만 아니라 천문학 데이터, 화학 데이터, 지정학적 데이터, 언어 데이터, 생명 과학 데이터, 금융 데이터, 기상 데이터 등 다수의 계산 가능한 데이터를 포함하고 있다.
라이선스 및 사용 가능한 플랫폼
Mathematica는 영리 목적, 교육용, 그리고 사용 용도[19]에 따른 각기 다른 컴퓨터 사유 소프트웨어이다. Mathematica 10은 마이크로소프트 윈도우 (Vist, 7,8, 10), Apple 사의 OS X, 리눅스, Raspbian, 그리고 온라인 서비스 등 다양한 버전을 지원한다.[20] 모든 플랫폼은 64 비트 구현을 지원한다.[21]