Mathematica崇めよBlank讃えよObject ~Free Wolfram Engineに向けて accepted

Abstract

Mathematicaが強力なソルバーであることは良く知られていますが、プログラム言語としてはマイナーな立場にあります。そこでMathematicaのプログラム言語部分である、Wolfram言語について、その原初の部分から始めて、実はオーセンティックなオブジェクト指向機能を持っていること、そして連想と組み合わせることで生まれる、新たな展開までの、概略を説明します。

Wolfram言語は項置き換え型言語の一つですが、関数型言語の特徴を備え、イベントドリブン計算やラムダ計算も可能です。しかし、唯一オブジェクト指向を標榜していません。このため、例えばマルチエージェントモデルの構築や、グラフィックスオブジェクトの取り扱いに難がありました。

一方筆者は、Wolfram言語でクロージャを作った時に、クロージャとオブジェクト指向の関連から、Wolfram言語にオブジェクト指向の可能性があることに気づき、継承とカプセル化と多態性の全てを、二重の遅延定義とUpSet関数により実現できることを示しました。
https://community.wolfram.com/web/kobayashikorio/home
そして、Wolfram言語のオブジェクト指向が、実はオーセンティックなものであること、すなわち、パッケージその他を用いずに、純粋にWolfram言語の基本的関数のみで実現できることを明らかにしました。

Wolfram言語をオブジェクト指向から見直すと、例えば、クラスと連想とのマッチングの良さ、インスタンスからみた並列計算の在り方、RaspberryPiのような組み込み言語としての素質、など多くの気づきが得られます。特に、オブジェクト指向がWolfram言語の基本的関数から表現できることを通じて、オブジェクト指向そのものとは如何なるものであるかの理解が容易に得られます。

Wolfram言語については、多くの人が最初に戸惑うであろう、アンダーバー(Blank)を使った関数定義が、なぜそう在るのかを、オブジェクト指向の話題の導入として説明します。そして、アンダーバーが言語の原初の位置にあるもので、同時に数式処理システムとしてのMathematicaの原点であることを説明します。説明を通じて、多くの人にMathematicaが単なる高価なソルバーではなく、実は強力なプログラミング環境でもあることをお示ししたいと思います。

Video
Slides
Session Information
Confirmed confirmed
Starts On 8/30/19, 1:20 PM
Room Seminar Room 1204
Session Duration 20 min session
Spoken Language Japanese
Interpretation Unavailable
Slide Language Japanese