ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)

3,150 views

Published on

1枚目のタイトルはフェイクです
中盤に出てくる方が真のタイトルです

サンプル解説:http://d.hatena.ne.jp/parrot_studio/20120304/1330823756
発表補足:http://d.hatena.ne.jp/parrot_studio/20120307/1331047077

Published in: Technology
  • Be the first to comment

ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)

  1. 1. プログラミング言語”Gunma”Gunma.web #8 @ 2012/03/03Presented by ぱろっと(@parrot_studio)
  2. 2. Profile
  3. 3. @parrot_studio
  4. 4. parrot-studio.com
  5. 5. 前回のおさらい
  6. 6. 発表テーマ
  7. 7. プログラマに なれないあなたのための 言語戦略
  8. 8. 言及
  9. 9. Gunma.web 言語担当
  10. 10. その後の雑談テーマ
  11. 11. 群馬を どうやって盛り上げる?
  12. 12. ある人: プログラム言語を 作れば?
  13. 13. 私: Brainf**k準拠で よければすぐ (`・ω・́)
  14. 14. parrot$ ./gunma hello.gunmaHelloGunma
  15. 15. できましたΣ(・ω・ノ)ノ
  16. 16. いけない!
  17. 17. 1分で終わってしまう! (lll゚Д゚)
  18. 18. そもそもBrainf**k とは?
  19. 19. 8個の実行可能な 命令
  20. 20. <>+-.,[]
  21. 21. こんな記号だけでプログラムが書けるか(ノ゚Д゚)ノ彡┻━┻
  22. 22. でも書けちゃう・・・ くやしい(́-ω-)
  23. 23. ・・・という「ネタ」言語
  24. 24. 例:Hello World
  25. 25. 出典:Wikipedia - Hello worldプログラムの一覧
  26. 26. 単純なので派生もいっぱい
  27. 27. 派生: JOJO / misa KQ / etc…
  28. 28. 例:プログラム言語JOJO の定義
  29. 29. 出典:kmaebashi.com/zakki/lang0003.html
  30. 30. 出典:kmaebashi.com/zakki/lang0003.html
  31. 31. ※今からプログラムの話をします
  32. 32. ※興味がない方は 1分くらい寝ていてください
  33. 33. 8個の実行可能な 命令
  34. 34. <>+-.,[]
  35. 35. 出典:kmaebashi.com/zakki/lang0003.html
  36. 36. どれも原理は同じ
  37. 37. 8個の実行可能な 命令
  38. 38. (゚Д゚)!!
  39. 39. 抽象化すればいいんじゃない (́・ω・)?
  40. 40. ソースコード定義 > = hoge, < = piyo,... Parser 抽象的な命令列 [:pinc, :inc, Machine :dec, :pdec...] 結果
  41. 41. Parserの「定義」を 入れ替えれば、 いくらでも 言語が作れる ような・・・
  42. 42. ※さあ、起きてください щ(゚Д゚щ)
  43. 43. というわけで真のタイトル
  44. 44. ネタプログラミング言語クリエイターGunma “Youma”Gunma.web #8 @ 2012/03/03Presented by ぱろっと(@parrot_studio)
  45. 45. "Youma"
  46. 46. プログラミング言語 Gunmaの母体
  47. 47. 内部で使われる ライブラリ
  48. 48. "Windstorm"
  49. 49. 意味:暴風
  50. 50.
  51. 51. 上州名物 空っ風
  52. 52. ※ここから 約1分間の熟睡タイムです (́-ω-)zzz...
  53. 53. Windstorm:- Parser- Machine- Executor
  54. 54. ソースコード定義 > = hoge, < = piyo,... Parser 抽象的な命令列 [:pinc, :inc, Machine :dec, :pdec...] 結果
  55. 55. ソースコード Windstorm定義 Parser 抽象的な命令列 Machine 結果
  56. 56. オリジナル命令を 二つ追加 clip / paste
  57. 57. Youma: Windstormを叩く RubyのRakeタスク群
  58. 58. install: $ git clone git://github.com/parrot-studio/youma.git $ cd youma $ bundle
  59. 59. create: $ rake create:exec gunma gunma.yml
  60. 60. execute: $ bin/gunma hello.gunma
  61. 61. ※そろそろ起きて ください щ(゚Д゚щ)
  62. 62. というわけで・・・
  63. 63. 既存のBF系言語を実装してみた (́・ω・)っ
  64. 64. - BF- JOJO- misa
  65. 65. parrot$ bin/bf hello.bfHello, world!
  66. 66. 動く・・・動くぞぉぉぉぉっ! щ(゚Д゚щ)
  67. 67. 新しくネタ言語を作ってみた(́・ω・)っ
  68. 68. プログラミング言語 Gunma
  69. 69. 司会:"シリーズ・ぐんまの未来について語る"今日も群馬についてお話をうかがっていこうと思います。解説は群馬研究が専門で群馬文化大学教授でもある、群馬太郎先生です。よろしくお願いします。教授:群馬太郎です。生まれも育ちも群馬の、生粋の群馬人です。群馬のことなら何でも聞いてください。(中略)それでは、また来週お目にかかりましょう。------------------------result:HelloGunma
  70. 70. プログラミング言語 Shoborn
  71. 71. (´・ω・)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(`・ω・)(・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・)(´-ω-)(・ω・´)(・ω・`)(´-ω・)(´・ω・)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(`・ω・)(・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・)(´-ω-)(・ω・´)(・ω・`)(・ω・)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(・ω・)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(・ω・)(・ω-`)(´-ω-)(´-ω-)(・ω・)(・ω-`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(・ω・)(´・ω・`)(´・ω・`)(´・ω・`)(・ω・)(´-ω-)(´-ω-)(´-ω-)(´-ω-)(・ω・)------------------------result:shoborn
  72. 72. プログラミング言語 Suzuha
  73. 73. 失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した(中略)失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗したゴメン。あたしは失敗あたしは失敗あたしは失敗あたしは失敗あたしは失敗あたしは失敗あたしは失敗(中略)こんな人生は無意味だった------------------------result:IBN5100
  74. 74. ※わかる人だけ笑ってくれれば いいです (́-ω-)
  75. 75. 他にもいろいろ作ったけど・・・
  76. 76. Youmaを 動かして確認してね (`・ω・́)
  77. 77. https://github.com/parrot-studio/youmahttps://github.com/parrot-studio/windstorm
  78. 78. この発表の 直後に push予定Σ(゚Д゚)ガーン
  79. 79. 参考文献
  80. 80. 「プログラム言語を作る」前橋和弥・著「数学ガール・ゲーデルの不完全性定理」              結城浩・著「Rubyソースコード完全解説」         青木峰郎・著 http://i.loveruby.net/ja/rhg/book/
  81. 81. DEMO
  82. 82. ありがとうございました(́・ω・)っ旦
  83. 83. 【おまけ】
  84. 84. #5の発表で参考文献に 「数学ガール」 を挙げた理由
  85. 85. 数学は厳密に言葉や定義を使う ということが、強く関数型言語に反映されていると感じたから
  86. 86. 今回「数学ガール」を挙げた理由
  87. 87. それは・・・
  88. 88. このパワポはそれを書くには 狭すぎる
  89. 89. 続きはWebで!! Σ(・ω・ノ)ノhttp://d.hatena.ne.jp/parrot_studio/

×