Your SlideShare is downloading. ×
0
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
音ゲーを作っていたと思ったらいつのまにか言語を作っていた
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply
iPhone sideview for SlideShare app

音ゲーを作っていたと思ったらいつのまにか言語を作っていた

729

Published on

2015年7月11日 OUCC LTの会
http://oucc.org/
JavaScript で自作言語インタプリタを作った話です

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
729
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. 1. 音 ゲー を 作 って い た と 思 っ た ら い つ の ま に か 言 語 を 作 って い た 2 0 1 5 年 7 月 1 1 日 O U C C LT の 会
  2. 2. わ た しで す • すしす • 情報系 (物理) • Twitter: @susisu2413 • GitHub: susisu
  3. 3. 手 段 の 目 的 化 • 目的 • 音ゲーの譜面を作りたい • できれば楽に • 手段 • DSL を作ろう
  4. 4. 手 段 の 目 的 化 • 目的 • DSL を作ろう • 手段 • なんかいろいろ
  5. 5. ほ し い も の リス ト 変数 制御文 関数配列 演算子 技術 末尾呼び出し最適化 オブジェクト指向 お金
  6. 6. 折角だから汎用の言語にしましょう!
  7. 7. 目 標 • JavaScript 上で動作 • そこそこの速度 • オブジェクト指向 • 関数型
  8. 8. 作 っ た も の • パーサ (構文解析器) • AST インタプリタ • 標準ライブラリ
  9. 9. パー サ • なんかパーサコンビネータ ライブラリを作ってあった • github.com/susisu/Loquat • ほぼ Parsec (Haskell の) の クローン • あとは書くだけ
  10. 10. イ ン タ プ リ タ • パーサが吐き出した構文木 に従って実行 • JavaScript 組み込みの機能 をごにょごにょして高速化
  11. 11. 標 準 ラ イ ブ ラ リ • 今作ってる (8割くらい?)
  12. 12. で き た も の • github.com/susisu/milktea • 速度は V8 上で Flash ≦ 8 の VM と同じくらい?
  13. 13. コ ー ド 例 ( 階 乗 ) factorial n = let itr n p = if n >= 1 then itr (n - 1) (p * n) else p in itr n 1 ; print $ factorial 10; -- 3628800
  14. 14. コ ー ド 例 ( オ ブ ジェ ク ト 指 向 ) Person = Class:new:extends Object; Person!new $ this name -> Class.proto.new this name; Person!ctor $ this name -> const this $ this!name name; Person.proto!printName $ this -> print this.name; ! alice = Person:new "Alice"; alice:printName; -- Alice
  15. 15. ま と め • 自作言語作るの楽しいので みんなやりましょう
  16. 16. 顧 客 が 本 当 に 必 要 だ っ た も の _人人人人_   > 音ゲー <   ‾ ̄^Y^Y^Y^Y‾ ̄
  17. 17. 寄 付 • お願いします (切実) • お金と技術ときんいろモザ イクが不足 • www.amazon.co.jp/registry/ wishlist/3FX8NJ35LKRGC

×