울프람어
Wolfram Language![]() |
![]() | |
패러다임 | 멀티패러다임: 용어 개서, 기능, 절차, 어레이 |
---|---|
설계자 | 스티븐 울프람 |
개발자 | 울프람 리서치 |
처음 등장한 | 전 |
안정된 릴리스 | 13.1.0[1] / 2022년 6월 29일; 전( |
타이핑 분야 | 다이내믹하고 강력함 |
OS | 크로스 플랫폼 |
면허증. | 독자 사양 |
파일 이름 확장자 | .nb, .m, .wl |
웹 사이트 | www |
주요 구현 | |
Mathematica, Wolfram One, Mathematics, Expreduce, MockMMA, WolframAlpha | |
영향을 받다 | |
영향받은 | |
울프람 언어(/wwlflfrmm/WUL-frmm)는 울프람 리서치가 개발한 일반적인 다중 파라다임 프로그래밍 언어입니다[7].기호 계산, 함수 프로그래밍 및 규칙 기반[8] 프로그래밍을 강조하며 임의 구조와 [8]데이터를 사용할 수 있습니다.수학 기호 계산 프로그램인 매스매티카의 [9]프로그래밍 언어입니다.
역사
울프람 언어는 1988년 [10]매스매티카의 초기 버전의 일부였다.
엔진의 상징적 측면은 그것을 컴퓨터 대수 체계로 만든다.이 언어는 적분, 미분, 행렬 조작을 수행하고 일련의 규칙을 사용하여 미분 방정식을 풀 수 있습니다.또한 1988년에는 Theodore Gray의 [11]특허에 따르면 노트북 모델과 소리와 이미지를 삽입할 수 있는 기능도 있었다.
이 언어의 온라인 프런트엔드인 WolframAlpha는 2009년에 출시되었습니다.Wolfram은 자연어 문장을 Wolfram 언어 쿼리로 변환하여 데이터베이스에 링크함으로써 이 웹사이트를 구현했습니다.Wolfram Alpha로 이어지는 작업은 또한 Wolfram의 언어 구현이 자연어 처리 기능뿐만 아니라 지식 기반에 대한 내장 액세스를 제공한다는 것을 의미합니다.
울프램은 또한 3D [12]모델링과 같은 더 복잡한 작업을 위해 기능을 추가했습니다.
울프램 리서치가 라즈베리 파이 사용자들을 위해 언어 엔진의 버전을 무료로 만들기로 결정함에 따라,[13] 2013년에 이 언어에 대한 이름이 마침내 채택되었다.이는 라즈베리 파이 재단이 초보자용으로 제공하는 권장 소프트웨어 번들에 포함되어 울프램 언어의 소유권 [14]특성으로 인해 약간의 논란을 일으켰다.울프램 언어를 인텔 에디슨에 이식하는 계획은 CES 2014에서 이사회가 소개된 후 발표되었지만 [15]발표되지는 않았습니다.2019년에는 울프람 라이브러리가 유니티 게임 엔진과 호환되도록 링크가 추가되어 게임 개발자들이 울프람의 고급 [16][17]기능에 접근할 수 있게 되었다.
구문
Wolfram Language 구문은 전체적으로 infix 연산자와 "함수 알림" 함수 호출을 지원하는 1960년대 LISP의 M 식과 유사합니다.
기본
Wolfram 언어는 infix 연산자를 사용하여 기본적인 산술식을 작성합니다.
(*댓글입니다)*) 4 + 3 (* = 7 *) 1 + 2 * (3 + 4) (* = 15 *) (* 곱하기 생략 가능: 1 + 2 (3 + 4 ) * ) (* 부문은 합리적인 숫자를 반환합니다.* ) 6 / 4 (* = 3/2 *)
함수 호출은 대괄호로 나타냅니다.
신[파이] (* = 0 *) (* 유리수를 부동소수로 변환하는 함수입니다.* ) N[3 / 2] (* = 1.5 *)
목록은 중괄호로 둘러싸여 있습니다.
홀수 리스트={1,3,5} (* = {1,3,5} *)
구문설탕
대체적이고 인간 친화적인 표현 방법을 사용할 수 있는 경우 언어는 M-표현 패러다임에서 벗어날 수 있습니다.
- 이 언어에는 다음과 같은 형식 지정 규칙이 사용됩니다.
TeXForm
식자 및InputForm
언어 입력에 사용합니다. - 프리픽스 식을 사용하여 함수를 적용할 수도 있습니다.
@
postfix 표현은//
. - 파생어는 아포스트로피로 나타낼 수 있습니다.
'
. - infix 연산자 자체는 함수 표기 체계에서 "설탕"으로 간주됩니다.
A FullForm
formatter는 [18]입력을 해제합니다.
풀 폼[1+2] (* = 플러스[1, 2] *)
기능 프로그래밍
카레링이 지원되고 있습니다.
패턴 매칭
Wolfram Language의 기능은 사실상 단순한 교체 패턴의 경우입니다.
F[x_] := x ^ 0
그:=
는 "SetDelayed 연산자"이므로 x가 즉시 검색되지 않습니다. x_
의 구문설탕입니다.Pattern[x, Blank[]]
(즉, 나머지 평가에서 x를 대체할 값에 대한 "빈칸"입니다).
버블 정렬의 반복은 다음과 같이 표현됩니다.
정렬 규칙 := {x___,y_,z_,k___} /; y>z -> {x,z,y,k} (* Rule [ List [ Pattern Sequence [ x , Blank Null Sequence [ ] ] 、 Pattern Sequence [ k , Blank Null Sequence [ ]] 、 List [ x , z , k ]) * )
그/;
연산자는 "condition"이므로 규칙이 적용되는 것은y>z
. 3개의 밑줄은 의 구문입니다.BlankNullSequence[]
null일 수 있는 시퀀스의 경우.
A Replace Repeated(반복)//.
연산자를 사용하여 이 규칙을 더 이상 변경하지 않을 때까지 반복 적용할 수 있습니다.
{ 9, 5, 3, 1, 2, 4 } //. 정렬 규칙 (* = ReplaceRepeated [{ 9, 5, 3, 1, 2, 4 }, sortRule]*) (* = {1, 2, 3, 4, 5, 9} *)
패턴 매칭 시스템은 또한 규칙 기반의 통합과 파생을 쉽게 발생시킵니다.다음은 규칙의 Rubi [19]패키지에서 발췌한 것입니다.
(* 상호 규칙 *) 내부[1/x_,x_심볼] := 로그.[x]; (* 전원 규칙 *) 내부[x_^m_.,x_심볼] := x^(m+1)/(m+1) /; 프리큐[m,x] & & 니큐[m,-1]
실장
Wolfram Language의 공식 및 참조는 Mathematica 및 관련 온라인 서비스에 있습니다.이것들은 비공개 [20]소스입니다.그러나 Wolfram Research는 오픈 소스 MIT [21]라이선스로 이 언어의 C++ 파서를 출시했습니다.참고서는 [22]공개되어 있습니다.
Wolfram 언어가 3년 이상 존재하면서 많은 오픈 소스 서드파티 구현도 개발되었습니다.1991년 리처드 Fateman의 Mock MMA는 가장 이른 재실시 및 울프램으로부터 정지 및 절제를 받은 것으로 역사적으로 유명하다.2020년 4월[update] 현재도 유지되고 있는 최신 모델에는 Java의 Symja, Golang의 expreduce, SymPy 기반의 Mathics [23]등이 있습니다.이러한 구현은 Wolfram의 온라인 "knowledgebase" 기능이 아니라 핵심 언어와 그것이 암시하는 컴퓨터 대수 시스템에 초점을 맞추고 있습니다.
2019년 [24]울프램 리서치는 비영리 소프트웨어에서 [25]프로그래밍 라이브러리로 사용되는 프리웨어 울프램 엔진을 출시했다.
명명
이 언어는 2013년 6월에 공식 명칭으로 지정되었지만, 컴퓨터 시스템 Mathematica의 백엔드로서 Mathematica의 최초 [9][26]출시 이후 30년 이상 다양한 형태로 사용되고 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Revision History".
- ^ Wolfram, Stephen. "Tini Veltman (1931–2021): From Assembly Language to a Nobel Prize—Stephen Wolfram Writings". stephenwolfram.comwritings. Retrieved 22 January 2021.
- ^ Maeder, Roman E. (1994). The Mathematica® Programmer. Academic Press, Inc. p. 6. ISBN 978-1-48321-415-3.
- ^ "Wolfram Language Q&A". Wolfram Research. Retrieved 2016-12-05.
- ^ Somers, James. "The Scientific Paper Is Obsolete". The Atlantic. Retrieved 2018-04-10.
- ^ Hickey, Rich. "Clojure Bookshelf". Amazon.com. Archived from the original on 2017-10-03. Retrieved 2020-05-06.
- ^ "Notes for Programming Language Experts about Wolfram Language". Wolfram.com. Retrieved 2015-11-05.
- ^ a b "What Should We Call the Language of Mathematica?—Stephen Wolfram Blog". Blog.stephenwolfram.com. 2013-02-12. Retrieved 2015-11-05.
- ^ a b "Celebrating Mathematica's First Quarter Century—Wolfram Blog". Blog.wolfram.com. Retrieved 2015-11-05.
- ^ 울프람(1988)컴퓨터로 수학을 하는 시스템인 매스매티카.
- ^ Hayes, Brian (1990-01-01). "Thoughts on Mathematica" (PDF). Pixel.
- ^ "Wolfram Language & System Documentation Center". Reference.wolfram.com. Retrieved 2015-11-05.
- ^ "Putting the Wolfram Language (and Mathematica) on Every Raspberry Pi—Wolfram Blog". Blog.wolfram.com. Retrieved 2015-11-05.
- ^ Sherr, Ian (2013-11-22). "Premium Mathematica software free on budget Raspberry Pi - CNET". News.cnet.com. Retrieved 2015-11-05.
- ^ Daniel AJ Sokolov (2014-11-22). "Intels Edison: Pentium-System im Format einer SD-Karte heise online". Heise.de. Retrieved 2015-11-05.
- ^ "The Wolfram Language will soon be integrated into Unity". Gamasutra. 2014-03-10. Retrieved 2015-11-05.
- ^ "Is there a way to use Wolfram Language in Unity3D?". Wolfram. 2017. Archived from the original on 19 July 2017. Retrieved 11 April 2017.
- ^ "FullForm". Wolfram Language Documentation.
- ^ "Welcome to Rubi, the Rule-based Integrator". Rule-based Integration.
- ^ McLoone, J. "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. 13 April 2020.
- ^ "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. "Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Writings".
- ^ "Free Wolfram Engine for Developers". www.wolfram.com. Retrieved 19 January 2021.
- ^ "Stephen Wolfram Says He Has An Algorithm For Everything — Literally". Readwrite.com. Retrieved 2015-11-05.
외부 링크
- Wolfram 언어
- 울프람 언어의 기초 입문
- 울프램 프로그래밍 클라우드
- WolframLanguage.org: Wolfram Language 커뮤니티 리소스 가이드
- "Mathematica language", Code Golf Stack Exchange 커뮤니티 Wiki 쇼케이스
- 울프람 언어를 사용한 수학, 물리, 화학 (세계과학, 2022년)