Wolfram (プログラミング言語)

ウィキペディアから無料の百科事典

Wolfram言語
パラダイム マルチパラダイム: 項書き換え, 関数型, 手続き型, 配列
登場時期 1988
設計者 スティーブン・ウルフラム
開発者 ウルフラム・リサーチ
最新リリース 14.0.0 / 2024年1月9日[1]
型付け 動的, 強い
主な処理系 Mathematica, Wolfram Development Platform, Mathics, MockMMA
影響を受けた言語
影響を与えた言語 Julia[4]
プラットフォーム クロスプラットフォーム
ライセンス プロプライエタリ(プラットフォームによっては無料で利用可能)[5]
ウェブサイト www.wolfram.com/language & WolframLanguage.org
拡張子 .nb, .m, .wl
テンプレートを表示

Wolfram言語ウルフラム・リサーチが開発した汎用性の高いマルチパラダイムプログラミング言語[6]であり、MathematicaとWolfram Programming Cloudのプログラミング言語である[7]。 記号プログラミング、関数型プログラミングルールベースプログラミング[8]に重点を置いており、任意の構造やデータが扱える[8]

チューリングマシンの生成および実行、グラフィックスと音声の作成、三次元モデルの解析、行列の操作、微分方程式の解法のための組み込み関数などが含まれている。ドキュメントも豊富である[9]

Wolfram言語はRaspberry Piのすべてのシステムソフトウェアにバンドルされている[10][11]CES 2014で発表されたIntel EdisonもWolfram言語を統合している[12][13]Unityゲームエンジンにも統合される予定である[14]

名称[編集]

Wolfram言語という呼び方が正式とされたのは2013年6月からである。しかしそれ以前から30年以上Mathematicaのプログラミング言語を指し示す名称として使われていた[7][15]。他にも関係者間では「M」などいくつかの呼び名が使われた。公式名として検討に上がったものに「Lingua」や「Express」がある[8]

大衆文化[編集]

スティーブン・ウルフラムとクリストファー・ウルフラムは、映画『メッセージ』の制作において、Wolfram言語を使って異星人の言語の作成に携わった[16][17]

文法[編集]

Wolfram言語は基本的にLispのM式と似た形式である。多くのシンタックスシュガーが用意されているため、構文を親しみやすい形式で表現することができる。

Wolfram 言語の例
シンタックスシュガー

による表現 (InputForm)

基本形式 (FullForm)
(a + b) * c Times[Plus[a,b],c]
{1, 2, 3} List[1, 2, 3]
f[x, y] f[x, y]

関数の定義[編集]

以下は引数 x をとる関数 f の定義の例である。

f[x_] := x ^ 2 (*SetDelayed[f[Pattern[x,Blank[]],Power[x,2]*) 

:=は遅延代入演算子と呼ばれ、これにより割り当てられた値は、値が必要になるたびに再評価される。x_ はあらゆる式にマッチするパターンで x という名前で参照される。Wolfram言語では関数はパターンに関する変換規則として与えられる。

純関数[編集]

Wolfram言語では無名関数が用意されており、純関数と呼ばれる。

1を足す純関数は以下のように表される。

(#+1)& (* Plus[Slot[1], 1] *) 

以下の式

(#+1)&[50] (*=51*) 

は51に評価される。

パターン・置換[編集]

Wolfram言語では部分式に対してパターンマッチングを行い、置換を行う構文が用意されている。

f[a] /. a->b  (* ReplaceAll[f[a], Rule[a, b] *) 

を評価するとf[b]が得られる。

手続き型プログラム[編集]

Wolfram言語では手続き型のプログラムもサポートしている。ただし、多くの場合は必要でない。

以下のc言語のプログラム

int func(int n){  int i,r=0;  for(i=1;i<n;i++){    r+=i*i;  }  return r; } 

はMathematicaでは

func[n_]:=Module[{i,r=0},  For[i=0,i<n,i++,   r+=i*i;  ];  r ] 

と表現される。

脚注[編集]

  1. ^ 出典URL: https://writings.stephenwolfram.com/2024/01/the-story-continues-announcing-version-14-of-wolfram-language-and-mathematica/, 出版日: 2024年1月9日, 閲覧日: 2024年1月10日, 題名: The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica, 作品または名前の言語: 英語, この作品が含まれる作品: スティーブン・ウルフラム
  2. ^ Maeder, Roman E. (1994). The Mathematica® Programmer. Academic Press, Inc.. p. 6. ISBN 978-1-48321-415-3 
  3. ^ Wolfram Language Q&A”. Wolfram Research. 2016年12月5日閲覧。
  4. ^ Why We Created Julia”. Julia Language (2012年2月14日). 2016年12月1日閲覧。
  5. ^ Stephen Wolfram Aims to Democratize His Software by Steve Lohr, The New York Times, December 14, 2015
  6. ^ Notes for Programming Language Experts about Wolfram Language”. Wolfram.com. 2015年11月5日閲覧。
  7. ^ a b Celebrating Mathematica’s First Quarter Century—Wolfram Blog”. Blog.wolfram.com. 2015年11月5日閲覧。
  8. ^ a b c What Should We Call the Language of Mathematica?—Stephen Wolfram Blog”. Blog.stephenwolfram.com (2013年2月12日). 2015年11月5日閲覧。
  9. ^ Wolfram Language & System Documentation Center”. Reference.wolfram.com. 2015年11月5日閲覧。
  10. ^ Putting the Wolfram Language (and Mathematica) on Every Raspberry Pi—Wolfram Blog”. Blog.wolfram.com. 2015年11月5日閲覧。
  11. ^ Sherr, Ian (2013年11月22日). “Premium Mathematica software free on budget Raspberry Pi - CNET”. News.cnet.com. 2015年11月5日閲覧。
  12. ^ Daniel AJ Sokolov (2014年11月22日). “Intels Edison: Pentium-System im Format einer SD-Karte | heise online”. Heise.de. 2015年11月5日閲覧。
  13. ^ MSN.com - Hotmail, Outlook, Skype, Bing, Latest News, Photos & Videos”. Tech.ca.msn.com (2015年7月16日). 2015年11月5日閲覧。
  14. ^ The Wolfram Language will soon be integrated into Unity”. Gamasutra (2014年3月10日). 2015年11月5日閲覧。
  15. ^ Stephen Wolfram Says He Has An Algorithm For Everything — Literally”. Readwrite.com. 2015年11月5日閲覧。
  16. ^ SF映画「メッセージ」の異星人の恒星間航行は非常に高いレベルで考証済み、監修したのは理論物理学者であのMathematicaの生みの親スティーブン・ウルフラム, Gigazine, 2016年11月16日
  17. ^ How Arrival's Designers Crafted a Mesmerizing Language, Margaret Rhodes, Wired, November 16, 2016.

関連項目[編集]

外部リンク[編集]