본문으로 이동

울프럼 언어

위키백과, 우리 모두의 백과사전.

울프럼 언어
Wolfram Language
패러다임다중 패러다임: 용어 재작성, 함수형, 절차적, 배열
설계자스티븐 울프럼
개발자울프럼 리서치
발표일1988년(37년 전)(1988)
최근 버전14.2.0[1]
최근 버전 출시일2025년 1월 23일(54일 전)(2025-01-23)
자료형 체계동적, 스트롱
운영 체제크로스 플랫폼
라이선스사유
파일 확장자.nb, .m, .wl
웹사이트www.wolfram.com/language/
주요 구현체
매스매티카, 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]

외부 링크

[편집]
  1. “Launching Version 14.2 of Wolfram Language & Mathematica: Big Data Meets Computation & AI”. 《Stephen Wolfram Writings》 (영어). 2025년 1월 23일. 2025년 1월 23일에 확인함. 
  2. Wolfram, Stephen. “Tini Veltman (1931–2021): From Assembly Language to a Nobel Prize—Stephen Wolfram Writings”. 《stephenwolfram.comwritings.》 (영어). 2021년 1월 22일에 확인함. 
  3. Maeder, Roman E. (1994). 《The Mathematica® Programmer》. Academic Press, Inc. 6쪽. ISBN 978-1-48321-415-3. 
  4. “Wolfram Language Q&A”. Wolfram Research. 2016년 12월 5일에 확인함. 
  5. Somers, James. “The Scientific Paper Is Obsolete”. 《The Atlantic》 (미국 영어). 2018년 4월 10일에 확인함. 
  6. Hickey, Rich. “Clojure Bookshelf”. 《Amazon.com》. 2017년 10월 3일에 원본 문서에서 보존된 문서. 2020년 5월 6일에 확인함. 
  7. “Notes for Programming Language Experts about Wolfram Language”. Wolfram.com. 2015년 11월 5일에 확인함. 
  8. “What Should We Call the Language of Mathematica?—Stephen Wolfram Blog”. Blog.stephenwolfram.com. 2013년 2월 12일. 2015년 11월 5일에 확인함. 
  9. “Celebrating Mathematica's First Quarter Century—Wolfram Blog”. Blog.wolfram.com. 2015년 11월 5일에 확인함. 
  10. Wolfram (1988). Mathematica, a System for Doing Mathematics By Computer.
  11. Hayes, Brian (1990년 1월 1일). “Thoughts on Mathematica” (PDF). 《Pixel》. 
  12. “Wolfram Language & System Documentation Center”. Reference.wolfram.com. 2015년 11월 5일에 확인함. 
  13. “Putting the Wolfram Language (and Mathematica) on Every Raspberry Pi—Wolfram Blog”. Blog.wolfram.com. 2013년 11월 21일. 2015년 11월 5일에 확인함. 
  14. Sherr, Ian (2013년 11월 22일). “Premium Mathematica software free on budget Raspberry Pi - CNET”. News.cnet.com. 2015년 11월 5일에 확인함. 
  15. Daniel AJ Sokolov (2014년 11월 22일). “Intels Edison: Pentium-System im Format einer SD-Karte | heise online”. Heise.de. 2015년 11월 5일에 확인함. 
  16. “The Wolfram Language will soon be integrated into Unity”. Gamasutra. 2014년 3월 10일. 2015년 11월 5일에 확인함. 
  17. “Is there a way to use Wolfram Language in Unity3D?”. Wolfram. 2017. 2017년 7월 19일에 원본 문서에서 보존된 문서. 2017년 4월 11일에 확인함. 
  18. McLoone, J (2019년 4월 2일). “Why Wolfram Tech Isn't Open Source—A Dozen Reasons—Wolfram Blog” (영어). 
  19. “codeparser: Parse Wolfram Language source code as abstract syntax trees (ASTs) or concrete syntax trees (CSTs)”. 《GitHub》. Wolfram Research, Inc. 
  20. “Open Materials from Wolfram: Open Code, Open Source, Open Data, Open Resources”. 《www.wolfram.com》 (영어). 
  21. Simon. “Is there an open source implementation of Mathematica-the-language?”. 《Mathematica Stack Exchange》. 
  22. Wolfram, Steven (2019년 5월 21일). “Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Writings” (영어). 
  23. “Free Wolfram Engine for Developers”. 《www.wolfram.com》 (영어). 2021년 1월 19일에 확인함.