Talk Proposal Submission
If you are interested in attending this talk at PyCon JP 2017, please use the social media share buttons below. We will consider the popularity of the proposals when making our selection.
talk
Erlang VM上で動くPython風言語『Mochi 2』のご紹介(ja)
Speakers
Yasushi Itoh
Audience level:
Intermediate
Category:
Concurrency
Description
近年、並列処理、分散処理を記述しやすく、耐障害性のあるプログラムを作りやすいという理由で、Erlangが注目を集めています。その一方で、Erlang言語のシンタックスは普及している言語(たとえばPythonやJava、Rubyなど)のそれとは大きく異なるため、多くのプログラマーにとってErlangの習得は容易ではないようです。
その問題を解消するため、さまざまな言語がErlangのVM上で実現されています(Reia、LFE、Elixir、ErRubyなど)。
本発表では、Erlang VM上で動作するPython風言語『Mochi 2』のご紹介と、Mochi 2 とcPythonなどとの連携方法についてお話しします。
Objectives
- ErlangとMochi 2を知る。
- Mochi 2を使って、Erlang VM上で動作するプログラムを作れるようになる。
- ErlangとMochi 2とPythonの連携方法を知る。
Abstract
近年、並列処理、分散処理を記述しやすく、耐障害性のあるプログラムを作りやすいという理由で、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