Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Susisu
July 11, 2015

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

Susisu

July 11, 2015
Tweet

More Decks by Susisu

Other Decks in Programming

Transcript

  1. Ի ήʔ Λ ࡞ ͬͯ ͍ ͨ ͱ ࢥ ͬ

    ͨ Β ͍ ͭ ͷ · ʹ ͔ ݴ ޠ Λ ࡞ ͬͯ ͍ ͨ 2 0 1 5 ೥ 7 ݄ 1 1 ೔ O U C C LT ͷ ձ
  2. Θ ͨ ͠Ͱ ͢ • ͢͢͠ • ৘ใܥ (෺ཧ) •

    Twitter: @susisu2413 • GitHub: susisu
  3. ख ஈ ͷ ໨ త Խ • ໨త • Իήʔͷේ໘Λ࡞Γ͍ͨ

    • Ͱ͖Ε͹ָʹ • खஈ • DSL Λ࡞Ζ͏
  4. ख ஈ ͷ ໨ త Խ • ໨త • DSL

    Λ࡞Ζ͏ • खஈ • ͳΜ͔͍Ζ͍Ζ
  5. ΄ ͠ ͍ ΋ ͷ Ϧε τ ม਺ ੍ޚจ ؔ਺

    ഑ྻ ԋࢉࢠ ٕज़ ຤ඌݺͼग़͠࠷దԽ ΦϒδΣΫτࢦ޲ ͓ۚ
  6. ࡞ ͬ ͨ ΋ ͷ • ύʔα (ߏจղੳث) • AST

    ΠϯλϓϦλ • ඪ४ϥΠϒϥϦ
  7. Π ϯ λ ϓ Ϧ λ • ύʔα͕ు͖ग़ͨ͠ߏจ໦ ʹै࣮ͬͯߦ •

    JavaScript ૊ΈࠐΈͷػೳ Λ͝ʹΐ͝ʹΐͯ͠ߴ଎Խ
  8. Ͱ ͖ ͨ ΋ ͷ • github.com/susisu/milktea • ଎౓͸ V8

    ্Ͱ Flash ≦ 8 ͷ VM ͱಉ͘͡Β͍ʁ
  9. ί ʔ υ ྫ ( ֊ ৐ ) 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
  10. ί ʔ υ ྫ ( Φ ϒ δΣ Ϋ τ

    ࢦ ޲ ) 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
  11. ސ ٬ ͕ ຊ ౰ ʹ ඞ ཁ ͩ ͬ

    ͨ ΋ ͷ _人人人人_   > 音ゲー <   ‾ ̄^Y^Y^Y^Y‾ ̄