Rubyで作る奇妙なプログラミング言語
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Rubyで作る奇妙なプログラミング言語

on

  • 1,111 views

Rubyで作る奇妙なプログラミング言語

Rubyで作る奇妙なプログラミング言語

Statistics

Views

Total Views
1,111
Views on SlideShare
1,099
Embed Views
12

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 12

https://cybozulive.com 12

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows
  • Been working on a new design for 6 months. Host of new features that old did not have. Look and feel have been reinvented New concepts in place like member directory, online calendar, online map – both using tech from Google Info more easily updated Special pags - Committee pages, ministry pages, youth pages, missions pages Home page that gives quick access to current news, information, and links Archives section to store video, audio, documents, images that can be searched Members area for sensitive information Possible Email Newsletter & Photo slideshows

Rubyで作る奇妙なプログラミング言語 Presentation Transcript

  • 1. [email_address] 「 Ruby で作る奇妙なプログラミング言語の」紹介
  • 2. 本書について
    • 2008/12/20 発売
    • 著者 原 悠( yhara) 氏
    • 編集 usu-ya 氏
    • usu-ya 氏のほかの編集本
  • 3. 内容
      • 奇妙な言語 (Esoteric Language) を題材にプログラミング言語の作り方を解説
      • 紹介されている奇妙な言語の数 => 18
        • HQ9+
        • Brainf*ck
        • Whitespace
        • Grass
        • Taxi4
        • などなど
  • 4. 忘れてはいけない本書の目的
      • プログラミング言語を作ること
  • 5.
      • HQ9+
    最初の言語
  • 6. 最初につくるのは HQ9+
      • 命令は 'H' 、 'Q' 、 '9' 、 '+' の 4 つだけ
        • H… 文字列 "Hello, world!" を出力する。
        • Q… プログラムのソースコードを出力する
        • 9… 「 99 Bottles of Beer 」の全文を出力する
        • +…カウンタを 1 増やす
  • 7.
      • H
    HQ9+ での Hello world
  • 8. HQ9+ のここがすごい
      • 実装が簡単
      • 誰も「 Hello world! 」でつまずかない
      • +でインクリメントしても想像して楽しむしかない
      • この言語から学んだこと
      • こんなのでもプログラミング言語には違いない
  • 9.
      • Brainf*ck
    次の言語
  • 10. 次につくるのは Brainf*ck
      • 命令は 8 個もある。 HQ9+ の 2 倍!
        • + … 現在のポインタの値を 1 増やす
        • - … 現在のポインタの値を 1 減らす
        • >… ポインタを 1 つ右に動かす
        • <… ポインタを 1 つ左に動かす
        • .… 現在のポインタの値をアスキーコードとして出力する
        • ,… 標準入力から 1 文字読み込み、現在のポインタに書き込む
        • [… ポインタの値が 0 なら、対応する ] までジャンプ
        • ]… ポインタの値が 0 以外なら、対応する [ までジャンプ
      • テープと呼ばれる配列を操作するだけの言語
    0 1 0 12 0 0
  • 11.
      • +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
      • ------------.<++++++++.--------.+++.------.--------.>+.
    Brainf*ck での Hello world
  • 12. Brainf*ck のここがすごい
      • チューリング完全
      • コードを書くより言語自体を実装するほうが簡単
      • この言語から学んだこと
      • これでも &quot; 本物の &quot; プログラミング言語
  • 13.
      • Whitespace
    次の言語
  • 14. 次につくるのは Whitespace
      • スタックとヒープを扱う
      • ジャンプ命令、サブルーチンがある
      • 命令はスペース、タブ、改行で構成される
        • [Space][Space](n) 数値 n をスタックに積む
        • [Space][LF][LF] スタックの一番上の値を取り除く
        • [Tab][Space][Space][Space] 足し算
        • [Tab][Space][Space][Tab] 引き算
        • [Tab][Tab][Space] ヒープへの書き込み
        • [Tab][LF][Space][Space] 文字列出力
        • などなど 20 種類ぐらい
      • 無視されてきた空白との公平性のための言語
  • 15.
    Whitespace での Hello world
  • 16. Whitespace のここがすごい
      • 印刷できない
      • この言語から学んだこと
      • すべてプログラミング言語が
      • プログラマのために設計されているとは限らない
  • 17. その他に紹介される奇妙な言語
      • コードが 2 次元に広がる言語「 Wired 」
      • シェイクスピアを暗記していないとかけない言語「 Shakespeare 」
      • wvW だけの関数型言語「 Grass 」
      • 処理系が作れない言語「 NULL 」
      • などなど
  • 18. 忘れてはいけない本書の目的
      • プログラミング言語を作ること
  • 19. この本のすばらしいところ
      • HQ9+ => 言語ってこんなに簡単だ YO!
      • Brainf*ck => インタプリタ
      • Whitespace => 中間言語+ VM 方式
      • Starry => スタック型
      • Bolic => パーサの実装
      • Unlamda => λ の偉大さ( < これは紹介のみ
      • 本書を読み進めていくと…
      • 知らず知らずのうちに、一通り学んでしまっている!
  • 20. まとめ
      • 奇妙な言語は、暇をもてあました神々の遊び
      • 奇妙なだけで終らない奥の深さがある
      • プログラミング言語に対する先入観が壊れた
      • 変な言語を作っているうちに、 Ruby と言語の実装の基礎を学べる本書はお得
      • 僕も言語を作ってみたい・・・・
  • 21.
      • 作ってみた
  • 22.
      • その名も
  • 23.
      • ジョジョ言語
  • 24.
      • ジョジョ言語
  • 25.
      • みなさん、ご一緒に!
  • 26.
      • やれやれだぜ!
  • 27.
      • バトル風言語
      • 日本語でプログラミング可能
      • バージョン3
    特徴
  • 28. ジョジョ言語
      • 命令は 8 個
        • オラ … 現在のポインタの値を 1 増やす
        • 無駄 …現在のポインタの値を 1 減らす
        • スターフィンガー ! 、やれやれだぜ …ポインタを 1 つ右に動かす
        • ロードローラーだ!、貧弱ゥ …ポインタを 1 つ左に動かす
        • ハーミットパープル …現在のポインタの値をアスキーコードとして出力する
        • 新手のスタンド使いか! …標準入力から 1 文字読み込み、現在のポインタに書き込む
        • あ…ありのまま 今 起こった事を話すぜ! …ポインタの値が 0 なら、対応する ザ・ワールド ! までジャンプ
        • ザ・ワールド ! … ポインタの値が 0 以外なら、対応する あ…ありのまま 今 起こった事を話すぜ! までジャンプ
  • 29. ジョジョ言語で Hello world
      • オラオラオラオラオラオラオラオラオラッ!!
      • 「あ・・・ありのまま今起こったことを話すぜ
      • 俺は奴の前で階段を登っていたと思ったら、いつの間にか降りていた
      • な…何を言っているのかわからねーと思うが、
      • 俺も何をされたのかわからなかった…
      • 頭がどうにかなりそうだった…催眠術だとか超スピードだとか、
      • そんなチャチなもんじゃあ断じてねえ。
      • もっと恐ろしいものの片鱗を味わったぜ…」
      • スターフィンガー!
      • オラオララララ!
      • オラッ!オラオラララララオラオラオラァ!!!
      • スターフィンガー!!!
      • オラァオラオラオラオラオラオラッオラ!!
      • オラオラァァァァァオララララララララララ!
      • スターフィンガー!
      • オラオラオラオラオラ! つけの領収書だぜ!
      • 力比べというわけか!
      • 知るがいい…!『ザ・ ワールド』の真の能力は…まさに!『世界を支配する』能力だと言うことを!
      • 「ロードローラだ!ロードローラだ!ロードローラだ!」
      • 無駄ッッッ!
      • ザ・ワールドッッ
      • スターフィンガー!
      • 「ハーミットパープル」
      • スターフィンガー
      • オラオラ!
      • 「ハーミットパープル」
      • オラオラオラオラオラオラオラ
      • ハーミットパープル!ハーミットパープル!
      • オラオラオラ
      • ハーミットパープル!
      • スターフィンガー!
      • 無駄ァ!
      • ハーミットパープル
      • 無駄!無駄!
      • 無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄
      • WRYYYYYYYYYYYYYY !
      • “ ジョースター・エジプト・ツアー御一行様”は貴様にとどめを刺して全滅の最後というわけだな
      • ーーーーー中略ーーーーーーーーーーーーー
      • てめーの敗因は・・・たったひとつだぜ・・・DIO たったひとつの単純(シンプル)な答えだ・・・ 『てめーは おれを怒らせた』
  • 30.
      • ご清聴有難う御座いました。