プロポーザル

これは応募されたプロポーザルです。聞きたいと思うプロポーザルを各ページの下部にあるSNSのボタンで拡散しましょう。拡散された投稿をプロポーザルへの投票としてカウントし、選考時に参考にさせていただきます。

talk

Erlang VM上で動くPython風言語『Mochi 2』のご紹介(ja)

スピーカー

Yasushi Itoh

対象レベル:

中級

カテゴリ:

Concurrency

説明

近年、並列処理、分散処理を記述しやすく、耐障害性のあるプログラムを作りやすいという理由で、Erlangが注目を集めています。その一方で、Erlang言語のシンタックスは普及している言語(たとえばPythonやJava、Rubyなど)のそれとは大きく異なるため、多くのプログラマーにとってErlangの習得は容易ではないようです。 その問題を解消するため、さまざまな言語がErlangのVM上で実現されています(Reia、LFE、Elixir、ErRubyなど)。 本発表では、Erlang VM上で動作するPython風言語『Mochi 2』のご紹介と、Mochi 2 とcPythonなどとの連携方法についてお話しします。

目的

- ErlangとMochi 2を知る。 - Mochi 2を使って、Erlang VM上で動作するプログラムを作れるようになる。 - ErlangとMochi 2とPythonの連携方法を知る。

概要

近年、並列処理、分散処理を記述しやすく、耐障害性のあるプログラムを作りやすいという理由で、Erlangが注目を集めています。その一方で、Erlang言語のシンタックスは普及している言語(たとえばPythonやJava、Rubyなど)のそれとは大きく異なるため、多くのプログラマーにとってErlangの習得は容易ではないようです。 その問題を解消するため、さまざまな言語がErlangのVM上で実現されています(Reia、Joxa、LFE、Elixir、ErRubyなど)。 しかし、私の知る限り、今をときめくPythonの処理系もしくはPython風言語の処理系は存在していません。 そこで、Python風言語をErlangのASTに変換する言語処理系『Mochi 2』を作ることにしました。名前を『Mochi 2』とした理由は、その言語仕様が私が以前から作っているPython風言語『[Mochi][1]』に似ていることと、Mochiという名前が気に入っているからです。 本発表では、以下を説明します。 - Erlang/OTP、Erlang VMの特徴 - Pythonとの相違を中心にお話しします。 - Mochi 2の言語仕様 - PythonやErlangとの相違を中心にお話しします。 - Mochi 2はPythonのサブセット+αにしたいと考えています。 - +αの部分はErlangの持つパターンマッチや軽量プロセスに関する機能です。 - ただし、現状は、Pythonのサブセットになりきっていません。その辺の相違についてもご説明したいと思います。 - Mochi 2の処理概要 - クラスとインスタンス、メソッド呼び出し(同期、非同期)、iteratorプロトコルなどの実現方法をお話しします。 - Mochi 2とcPythonとPyPyとの連携方法 - Mochi 2で実装されたプログラムとPythonで実装されたプログラムの連携方法をご説明します。 * Mochi 2はMochiの後継ではありません。Mochiの開発も継続します。 * Mochiは餅です。餅はモチモチとした弾力性のある食べ物なので、耐障害性のある弾力性のあるプログラムの開発に向いているErlang VM用言語の名前に合っているとも思いました。 * Mochi 2は既に公開している[Manju][2]とは異なる方法でクラスとインスタンスを実現しており、別リポジトリとして公開予定です。 [1]: https://github.com/i2y/mochi [2]: https://github.com/i2y/manju
  • このエントリーをはてなブックマークに追加
CONTACT