울프럼 언어

울프럼 언어(Wolfram Language)는 울프럼 리서치가 개발한 범용 다중 패러다임 프로그래밍 언어이다. 기호계산, 함수형 프로그래밍, 규칙 기반 프로그래밍을 강조하며 무작위 자료 구조와 데이터를 채용할 수 있다. 수식 기호 계산 프로그램 매스매티카의 프로그래밍 언어이다.

 역사 
Wolfram 언어는 1988년 Mathematica의 초기 버전에 포함되었다.Wolfram (1988). Mathematica, a System for Doing Mathematics By Computer.

엔진의 기호적 측면은 컴퓨터 대수 시스템을 만든다. 이 언어는 일련의 규칙을 사용하여 적분, 미분, 행렬 조작을 수행하고 미분방정식을 풀 수 있다. 또한 초기 버전은 Theodore Gray의 특허에 따라 노트북 모델과 사운드 및 이미지를 내장하는 기능을 도입했다.

Wolfram은 또한 3D 모델링과 같은 더 복잡한 작업을 위한 기능을 추가했다.

Wolfram Research가 라즈베리 파이 사용자에게 언어 엔진의 버전을 무료로 제공하기로 결정하고 이에 대한 이름을 생각해내야 했기에 2013년 언어에 대한 이름이 마침내 채택되었다. Wolfram 언어의 독점적 특성으로 인해 Raspberry Pi Foundation이 초보자에게 제공하는 권장 소프트웨어 번들 사유 소프트웨어에 포함되었는데, 이는 논란을 일으켰다. Wolfram 언어를 인텔 에디슨으로 이식하려는 계획은 CES 2014에서 보드가 소개된 후 발표되었지만 결국 출시되지는 않았다. 2019년에는 Wolfram 라이브러리를 유니티 (게임 엔진)과 호환되도록 만드는 링크가 추가되어 게임 개발자가 해당 언어의 고급 기능에 접근할 수 있게 되었다.

 구문 
Wolfram 언어 구문은 전반적으로 1960년대 리스프의 M-표현식과 유사하며, 중위 표기법과 "함수 표기법" 함수 호출을 지원한다.

 기초 
울프럼 언어는 중위 표기법을 사용하여 기초 수식을 쓴다.

(* This is a comment. *)

4 + 3
(* = 7 *)

1 + 2 * (3 + 4)
(* = 15 *)
(* Note that Multiplication can be omitted: 1 + 2 (3 + 4) *)

(* Divisions return rational numbers: *)
6 / 4
(* = 3/2 *)

함수 호출은 대괄호로 표시한다.

Sin[Pi]
(* = 0 *)

(* This is the function to convert rationals to floating point: *)
N[3 / 2]
(* = 1.5 *)

목록은 중괄호로 묶는다.

Oddlist={1,3,5}
(* = {1,3,5} *)

 구현 
Wolfram 언어의 공식 및 참조 구현은 Mathematica와 관련 온라인 서비스에 있다. 이들은 폐쇄 소스이다. 그러나 Wolfram Research는 오픈 소스 MIT 허가서에 따라 언어 파서를 출시했다. 파서는 원래 C++로 개발되었지만 2023년에 러스트 (프로그래밍 언어)로 다시 작성되었다. 참조서는 오픈 액세스이다.

Wolfram 언어가 30년 이상 존재하면서 여러 오픈 소스 타사 구현도 개발되었다. Richard Fateman의 1991년 MockMMA는 가장 초기의 재구현이라는 점과 Wolfram으로부터 중단 및 중지 명령을 받았다는 점에서 역사적으로 주목할 만하다. 2020년 4월 현재도 유지 관리 중인 최신 구현에는 자바의 Symja, Go의 expreduce, SymPy 기반 Mathics가 있다. 이러한 구현은 Wolfram의 온라인 "지식 기반" 기능이 아닌 핵심 언어와 그것이 의미하는 컴퓨터 대수 시스템에 초점을 맞춘다.

2019년 Wolfram Research는 비상업적 소프트웨어에서 프로그래밍 라이브러리로 사용할 수 있는 무료 소프트웨어 Wolfram Engine을 출시했다. 이 개발자 전용 엔진은 Mathematica 평가기의 명령줄 셸(제한된 수의 커널 포함)을 제공하며 웹에서 가입 및 라이선스 활성화가 필요하다. 무료로 제공되는 Jupyter Notebook/Lab 프로젝트는 다양한 언어에 노트북을 연결하는 프로토콜(ZMQ)을 제공하며, 이는 Jupyter용 Wolfram 커널을 통한 텍스트 전용 CLI 인터페이스의 대안으로 제공된다.

 외부 링크 
 Documentation for the Wolfram Language
 An Elementary Introduction to the Wolfram Language

분류:배열 프로그래밍 언어
분류:컴퓨터 대수학 시스템
분류:크로스 플랫폼 소프트웨어
분류:동적 타입 프로그래밍 언어
분류:함수형 프로그래밍 언어
분류:다중 패러다임 프로그래밍 언어
분류:1988년 개발된 프로그래밍 언어
분류:고급 프로그래밍 언어