2016年11月05日のプレゼン下書き
Essenまでの歴史[3分]
- OSASK計画とは?
- OSASK計画とは、超軽量OSである「OSASK(おさすく)」を開発するためのオープンソースコミュニティ。川合秀実が代表。
- 2000年: OSASKをせっせと開発。
- 一定の成果を達成。
- OSのインストールサイズ:100KB未満
- インベーダーゲーム: 1108バイト
- 2008年: 第二世代OSASKを開発。
- 川合は優秀なAPIを使いたいからOSを作ったのであって、OSを作ることはそのための一つの方法でしかないと気付いた。だからOSではない方法でもやってみた。
- これも一応の成果を達成。
- 2013年: OSECPU-VM(おせくぷ・ぶいえむ)(第三世代OSASK)を開発。
- x86にこだわらずJavaみたいなものを作れば、さらに限界が突破できるのではないかと考えた。
- 理想のAPIを考えているうちに、理想の命令セットを追及してみたくなった感じ。
- これも一応の成果を達成。
- VM処理系:29.0KB。
- インベーダゲーム : 430バイト
- 2016年: 理想のプログラミング言語がほしくなって開発を開始した。「Essen」(えっせん)。
Essenの基本的な考え方[4分]
- 川合の主張:
- RubyやPythonは本当に素晴らしい言語だと思うけど、処理系が大きすぎると感じる。
- 何万行、何十万行と、たくさん書けば、いろいろできるようになるのは「当たり前」では?
- 処理系の行数が少ないのに、意外にあれこれできてしまうような処理系こそ良い処理系なのでは?
- 移植しやすい
- 結果的に仕様がシンプルなので例外が少なく仕様を理解しやすい
- どんな言語を目指すか?
- プログラミング初心者がEssenを勉強して覚えた後、もしEssenには不得意なことをやりたくなったら、他の言語にスムーズに移行できるような言語。
- だからビジュアルなプログラミング言語は目指さない。
- C言語やJavaにある程度似ていることが望ましい(スムーズな移行)。
- 八方美人は目指さない。
- 構文や演算子を自由に定義できる言語。
- 既存の構文を再定義することができる。新規の構文を定義することもできる。
- 既存の演算子を再定義することができる。新規の演算子を定義することもできる。
- C言語は関数を自由に定義できる。C++は型を自由に定義できる。
- でもC++では演算子は既存の物をオーバーライドできるだけで新規には作れない。
- C++もJavaも構文は自由には作れない。
- これからは演算子や構文も自由に作る時代だー。
- Essenはシンプルなインタプリタ。
- 実行速度は遅い。
- 変数は型を持たない(変数宣言をさせたくなかったので)。
- 対話式で操作できる。
- 初心者にはそのほうが分かりやすいのではないかと川合は考えた。
- 既存言語との共存を目指す言語。
- 「Essenひとつで何でもできるようになる」を目指さない。
- Essenの中で既存言語を混ぜて書くことができる(インライン・アセンブラみたいな感覚、インラインC++とか)。
- スピードが必要な部分だけをC++などの高速な言語で書けばいいのでは?
- スピードが必要な部分なんて全体のうちの1~2割程度のはず。残りの8~9割をEssenで書けばいい。
- この仕様はEssenの後に他の言語を学ぶ際にも敷居を下げるはず。
基本機能紹介[3分]
つなぎ
- 残りの時間では、Essenのよきライバル言語を作ってくれている学生2名に発表してもらいます。Essenのアイデアも彼らとの競争の過程で生まれたものや、彼らの言語仕様をまねしたものがあります。
こめんと欄
|