울프럼 언어
패러다임 | 다중 패러다임: 용어 재작성, 함수형, 절차적, 배열 |
---|---|
설계자 | 스티븐 울프럼 |
개발자 | 울프럼 리서치 |
발표일 | 1988년 |
최근 버전 | 14.2.0[1] |
최근 버전 출시일 | 2025년 1월 23일 |
자료형 체계 | 동적, 스트롱 |
운영 체제 | 크로스 플랫폼 |
라이선스 | 사유 |
파일 확장자 | .nb, .m, .wl |
웹사이트 | www |
주요 구현체 | |
매스매티카, Mathics, Expreduce, MockMMA | |
영향을 받은 언어 | |
영향을 준 언어 | |
울프럼 언어(Wolfram Language)는 울프럼 리서치가 개발한 범용 다중 패러다임 프로그래밍 언어이다.[7] 기호계산, 함수형 프로그래밍, 규칙 기반 프로그래밍을 강조하며[8] 무작위 자료 구조와 데이터를 채용할 수 있다.[8] 수식 기호 계산 프로그램 매스매티카의 프로그래밍 언어이다.[9]
역사
[편집]Wolfram 언어는 1988년 Mathematica의 초기 버전에 포함되었다.[10]
엔진의 기호적 측면은 컴퓨터 대수 시스템을 만든다. 이 언어는 일련의 규칙을 사용하여 적분, 미분, 행렬 조작을 수행하고 미분방정식을 풀 수 있다. 또한 초기 버전은 Theodore Gray의 특허에 따라 노트북 모델과 사운드 및 이미지를 내장하는 기능을 도입했다.[11]
Wolfram은 또한 3D 모델링과 같은 더 복잡한 작업을 위한 기능을 추가했다.[12]
Wolfram Research가 라즈베리 파이 사용자에게 언어 엔진의 버전을 무료로 제공하기로 결정하고 이에 대한 이름을 생각해내야 했기에 2013년 언어에 대한 이름이 마침내 채택되었다.[13] Wolfram 언어의 독점적 특성으로 인해 Raspberry Pi Foundation이 초보자에게 제공하는 권장 소프트웨어 번들 사유 소프트웨어에 포함되었는데, 이는 논란을 일으켰다.[14] Wolfram 언어를 인텔 에디슨으로 이식하려는 계획은 CES 2014에서 보드가 소개된 후 발표되었지만 결국 출시되지는 않았다.[15] 2019년에는 Wolfram 라이브러리를 유니티 (게임 엔진)과 호환되도록 만드는 링크가 추가되어 게임 개발자가 해당 언어의 고급 기능에 접근할 수 있게 되었다.[16][17]
구문
[편집]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와 관련 온라인 서비스에 있다. 이들은 폐쇄 소스이다.[18] 그러나 Wolfram Research는 오픈 소스 MIT 허가서에 따라 언어 파서를 출시했다.[19] 파서는 원래 C++로 개발되었지만 2023년에 러스트 (프로그래밍 언어)로 다시 작성되었다. 참조서는 오픈 액세스이다.[20]
Wolfram 언어가 30년 이상 존재하면서 여러 오픈 소스 타사 구현도 개발되었다. Richard Fateman의 1991년 MockMMA는 가장 초기의 재구현이라는 점과 Wolfram으로부터 중단 및 중지 명령을 받았다는 점에서 역사적으로 주목할 만하다. 2020년 4월 현재도 유지 관리 중인 최신 구현에는 자바의 Symja, Go의 expreduce, SymPy 기반 Mathics가 있다.[21] 이러한 구현은 Wolfram의 온라인 "지식 기반" 기능이 아닌 핵심 언어와 그것이 의미하는 컴퓨터 대수 시스템에 초점을 맞춘다.
2019년[22] Wolfram Research는 비상업적 소프트웨어에서 프로그래밍 라이브러리로 사용할 수 있는 무료 소프트웨어 Wolfram Engine을 출시했다. 이 개발자 전용 엔진은 Mathematica 평가기의 명령줄 셸(제한된 수의 커널 포함)을 제공하며 웹에서 가입 및 라이선스 활성화가 필요하다. 무료로 제공되는 Jupyter Notebook/Lab 프로젝트는 다양한 언어에 노트북을 연결하는 프로토콜(ZMQ)을 제공하며, 이는 Jupyter용 Wolfram 커널을 통한 텍스트 전용 CLI 인터페이스의 대안으로 제공된다.[23]
외부 링크
[편집]- ↑ “Launching Version 14.2 of Wolfram Language & Mathematica: Big Data Meets Computation & AI”. 《Stephen Wolfram Writings》 (영어). 2025년 1월 23일. 2025년 1월 23일에 확인함.
- ↑ Wolfram, Stephen. “Tini Veltman (1931–2021): From Assembly Language to a Nobel Prize—Stephen Wolfram Writings”. 《stephenwolfram.comwritings.》 (영어). 2021년 1월 22일에 확인함.
- ↑ Maeder, Roman E. (1994). 《The Mathematica® Programmer》. Academic Press, Inc. 6쪽. ISBN 978-1-48321-415-3.
- ↑ “Wolfram Language Q&A”. Wolfram Research. 2016년 12월 5일에 확인함.
- ↑ Somers, James. “The Scientific Paper Is Obsolete”. 《The Atlantic》 (미국 영어). 2018년 4월 10일에 확인함.
- ↑ Hickey, Rich. “Clojure Bookshelf”. 《Amazon.com》. 2017년 10월 3일에 원본 문서에서 보존된 문서. 2020년 5월 6일에 확인함.
- ↑ “Notes for Programming Language Experts about Wolfram Language”. Wolfram.com. 2015년 11월 5일에 확인함.
- ↑ 가 나 “What Should We Call the Language of Mathematica?—Stephen Wolfram Blog”. Blog.stephenwolfram.com. 2013년 2월 12일. 2015년 11월 5일에 확인함.
- ↑ “Celebrating Mathematica's First Quarter Century—Wolfram Blog”. Blog.wolfram.com. 2015년 11월 5일에 확인함.
- ↑ Wolfram (1988). Mathematica, a System for Doing Mathematics By Computer.
- ↑ Hayes, Brian (1990년 1월 1일). “Thoughts on Mathematica” (PDF). 《Pixel》.
- ↑ “Wolfram Language & System Documentation Center”. Reference.wolfram.com. 2015년 11월 5일에 확인함.
- ↑ “Putting the Wolfram Language (and Mathematica) on Every Raspberry Pi—Wolfram Blog”. Blog.wolfram.com. 2013년 11월 21일. 2015년 11월 5일에 확인함.
- ↑ Sherr, Ian (2013년 11월 22일). “Premium Mathematica software free on budget Raspberry Pi - CNET”. News.cnet.com. 2015년 11월 5일에 확인함.
- ↑ Daniel AJ Sokolov (2014년 11월 22일). “Intels Edison: Pentium-System im Format einer SD-Karte | heise online”. Heise.de. 2015년 11월 5일에 확인함.
- ↑ “The Wolfram Language will soon be integrated into Unity”. Gamasutra. 2014년 3월 10일. 2015년 11월 5일에 확인함.
- ↑ “Is there a way to use Wolfram Language in Unity3D?”. Wolfram. 2017. 2017년 7월 19일에 원본 문서에서 보존된 문서. 2017년 4월 11일에 확인함.
- ↑ McLoone, J (2019년 4월 2일). “Why Wolfram Tech Isn't Open Source—A Dozen Reasons—Wolfram Blog” (영어).
- ↑ “codeparser: Parse Wolfram Language source code as abstract syntax trees (ASTs) or concrete syntax trees (CSTs)”. 《GitHub》. Wolfram Research, Inc.
- ↑ “Open Materials from Wolfram: Open Code, Open Source, Open Data, Open Resources”. 《www.wolfram.com》 (영어).
- ↑ Simon. “Is there an open source implementation of Mathematica-the-language?”. 《Mathematica Stack Exchange》.
- ↑ Wolfram, Steven (2019년 5월 21일). “Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Writings” (영어).
- ↑ “Free Wolfram Engine for Developers”. 《www.wolfram.com》 (영어). 2021년 1월 19일에 확인함.