Slide 1

Slide 1 text

{ Scala で 作る 奇妙な プログラミング言語?? } 1 2012/04/29 超エンジニアミーティングʙHappy Hacking!ʙ in ニコニコ超会議meeting 12೥4݄29೔೔༵೔

Slide 2

Slide 2 text

ID:yuroyoro ゆろよろ 2 お前、誰よ? 12೥4݄29೔೔༵೔

Slide 3

Slide 3 text

株式会社ScaleOutで ろくろ廻してます 3 12೥4݄29೔೔༵೔

Slide 4

Slide 4 text

http://scaleout.jp 4 12೥4݄29೔೔༵೔

Slide 5

Slide 5 text

「難解プログラミング言語」 (Esoteric Programing Language) 5 12೥4݄29೔೔༵೔

Slide 6

Slide 6 text

難解プログラミング言語 (なんかいプロ グラミングげんご)とは、意図的に読解が 困難なように設計されたプログラミング 言語である。英語では、Esoteric programming language (略してesolang とも)と言われる。 難解プログラミング言語 - Wikipedia http://ja.wikipedia.org/wiki/難解プログラミング言語 6 12೥4݄29೔೔༵೔

Slide 7

Slide 7 text

代表的なEsolang 7 12೥4݄29೔೔༵೔

Slide 8

Slide 8 text

8 Brainf*ck +++++++++[>++++++++>+++++++++++>++ +++<<<-]>.>++.+++++++..+++.>-. 8つの命令(><+-.,[])でメモリ/ポインタを 操作する。チューリング完全 12೥4݄29೔೔༵೔

Slide 9

Slide 9 text

9 Befunge v @_ v >0"!dlroW"v v :# < >" ,olleH" v 二次元の格子状に命令が配置されてい る。行・桁数が意味をもつ。チューリン グ完全ではない 12೥4݄29೔೔༵೔

Slide 10

Slide 10 text

10 HQ9+ H H/Q/9/+の4命令だけで構成される。H で”Hello, world!”を出力、Qは実行中の ソースコードを出力する(クワイン) 12೥4݄29೔೔༵೔

Slide 11

Slide 11 text

11 KEMURI ` | 6つの命令からなるスタックマシン 。 チューリング完全。 ` で”Hello, world!”をスタックに積む 12೥4݄29೔೔༵೔

Slide 12

Slide 12 text

Esolangは他にも まだまだあります。 INTERCAL/Malbolge/ Shakespeare/FALSE/ Chef/... 12 12೥4݄29೔೔༵೔

Slide 13

Slide 13 text

「チューリングの泥沼 (Turing tarpit)へ ようこそ」 13 12೥4݄29೔೔༵೔

Slide 14

Slide 14 text

ねた言語作りは プログラマの嗜み 14 12೥4݄29೔೔༵೔

Slide 15

Slide 15 text

「○○だけで プログラミングできる言語」 15 12೥4݄29೔೔༵೔

Slide 16

Slide 16 text

Lesson 1 Brainf*ck派生 16 12೥4݄29೔೔༵೔

Slide 17

Slide 17 text

Brainf*ckの8つの命令を 任意の文字列に置き換える 17 12೥4݄29೔೔༵೔

Slide 18

Slide 18 text

名状しがたいプログラミング 言語のようなもの Nyaruko 18 12೥4݄29೔೔༵೔

Slide 19

Slide 19 text

> : "(」・ω・)」うー(/・ω・)/にゃー" + : "(」・ω・)」うー!(/・ω・)/にゃー" < : "(」・ω・)」うー!!(/・ω・)/にゃー!" - : "(」・ω・)」うー!!!(/・ω・)/にゃー!!" [ : "CHAOS☆CHAOS!" ] : "I WANNA CHAOS!" . : "Let's\(・ω・)/にゃー" , : "cosmic!" 19 12೥4݄29೔೔༵೔

Slide 20

Slide 20 text

Demo 20 12೥4݄29೔೔༵೔

Slide 21

Slide 21 text

「Q:なんでScalaで書くの?」 21 12೥4݄29೔೔༵೔

Slide 22

Slide 22 text

「A:ParserCombinator」 22 12೥4݄29೔೔༵೔

Slide 23

Slide 23 text

ParserCombinator 構文解析ライブラリ 23 12೥4݄29೔೔༵೔

Slide 24

Slide 24 text

// tokenは+-><,.のどれか def token = "+" ||| "-" ||| ">" ||| "<"||| ","||| "." 24 12೥4݄29೔೔༵೔

Slide 25

Slide 25 text

// instructionはloopか // tokenかcomment def instruction = loop | token | comment 25 12೥4݄29೔೔༵೔

Slide 26

Slide 26 text

// loopは、[instruction] // []の対応が取れていないと // 解析エラー def loop = “[“ ~> rep(instruction) <~ “]” 26 12೥4݄29೔೔༵೔

Slide 27

Slide 27 text

// loopは、[instruction] // []の対応が取れていないと // 解析エラー def loop = “[“ ~> rep(loop | token | comment) <~ “]” 27 12೥4݄29೔೔༵೔

Slide 28

Slide 28 text

// プログラムは // instructionの繰り返し def brainfuck = rep(instruction) 28 12೥4݄29೔೔༵೔

Slide 29

Slide 29 text

ParserCombinator使うと 構文解析できるし、 命令の差し替えも簡単 29 12೥4݄29೔೔༵೔

Slide 30

Slide 30 text

JoJo言語/Misa... 30 12೥4݄29೔೔༵೔

Slide 31

Slide 31 text

Brainf*ck派生 シンボル数: 8 31 12೥4݄29೔೔༵೔

Slide 32

Slide 32 text

Lesson 2 Grass派生 32 12೥4݄29೔೔༵೔

Slide 33

Slide 33 text

33 Grass wvwWwwwwWwwwwwwWWWWWwWWWW WwwwwvwwwwWWWwwWwwWWWWWWw wwwWwwvwWWwWwwvwwWWwvwWWWw wWWWWWwwwWwwWWWWWWwWWWWW WWwWWWWwWWWWWwWWWWWWwWW 「ちょっと草植えときますね型言語 」。型無しラムダ計算をベースをした関 数型言語。w/W/vの三文字を使う 12೥4݄29೔೔༵೔

Slide 34

Slide 34 text

スタック(初期状態) In W Succ Out 34 12೥4݄29೔೔༵೔

Slide 35

Slide 35 text

関数適用: App(m,n) WWW...(m個)...WWWwww...(n個)...www スタックのm番目の値を取り出しn番目の 値に適用する。結果をスタックに積む。 35 12೥4݄29೔೔༵೔

Slide 36

Slide 36 text

関数定義: Abs(n) www...(n個)...www 関数適用* n個の引数をとる関数を定義してスタッ クにつむ。引数は、呼び出しの際に渡さ れた値がスタックに積まれる。関数本体 は、関数適用の1回以上の繰り返し 36 12೥4݄29೔೔༵೔

Slide 37

Slide 37 text

例: wを出力する wWWwwww Abs( 1 ) App( 2, 4 ) 1引数の関数定義 スタックの2番目(Out)に4番目(w)を適 用 Out(w) 37 12೥4݄29೔೔༵೔

Slide 38

Slide 38 text

w/W/vを 違う文字列にしてみる 38 12೥4݄29೔೔༵೔

Slide 39

Slide 39 text

プログラミング言語 「ブブゼラ」 w :ェ W : エ v : ベ 39 12೥4݄29೔೔༵೔

Slide 40

Slide 40 text

ヴェ ベ ェエェェェェエェェェェェェエエエエエェエエエエエェェェェ ベ ェェェェエエエェェエェェエエエヴエエエェェェェエェェ ベ ェエエェエェェ ベ ェェエエェ ベ ェエエエェェエエエエエェェェエェヴェエエエエエエェエエエエエ エエェエエエエヴェエエエエエェエエエエエエェエエエエエエエエエエエエエ エェェェェェェェェエェエェエエエェェエエエエェェェェェェェエエエエエ ヴェェェェェェェエエエエエエェェェェェェェエエエエエエエエエエエエエエエ エエエエエエェェェェェヴェェェェェェェェェェェェェェェェ エェェェェェェェェェェェェェェェェェェェェエェェェェェェェェェェェェェ エェェェェェェエエェェェェェェエエエェェェェヴェェエエエエエ エェェェェェェェェェェェェェェェェェェェェエェェェェェェェェェェエ エェェェェエヴエエェェェェエエエエェエエエエ エェェェェェェェェェェェェェェェェェェエエエエエエエエエエエェエェェェエ エェエエエェエエエヴエェエエエエエエエエエエエエヴエエエエ エェェェェェェェェェェェェェェェェェ エェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェ ェェヴェエェェェェェェェェェェェエエェェェェェェェェェェェエエ エェェェェェェェエエエエェエエヴエエヴエェェェェェェェェエエエエヴエ エェェェェェェェェェェェェェェェェェェェェェエエエエエエ エェェェェェェェェェェェェェェェェェェェェェェェェェェェェエエヴエエエエ エエエェェェェェェェェ エェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェエ エェェェェェェェェェェヴェェェエエエェェェェェェェェェェェェェエエエ エェェェェェェェェエエエエエェェェェェェェェェ ヴェェェェェェェェェェェェェェェヴェェエエエエエ エェェェェェェェェェェェェェェェェェェェェェェェェェ 40 12೥4݄29೔೔༵೔

Slide 41

Slide 41 text

プログラミング言語 「天使ちゃんマジ天使!」 w : 天使 W : マジ v : ! 41 12೥4݄29೔೔༵೔

Slide 42

Slide 42 text

天使ちゃん ! 天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマ ジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん ! 天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマ ジ天使天使ちゃんマジ天使天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん ! 天使ちゃんマ ジマジ天使マジ天使天使ちゃん ! 天使ちゃん天使ちゃんマジマジ天使 ! 天使ちゃんマジマジマジ天使天使ちゃんマジマジマジマジマジ天 使天使ちゃん天使ちゃんマジ天使天使ちゃんマジマジマジマジマジマジ天使マジマジマジマジマジマジマジ天使マジマジマジマジ天使マジマ ジマジマジマジ天使マジマジマジマジマジマジ天使マジマジマジマジマジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使マジ天使マジマジマジ天使天使ちゃんマジマジマジマジ天使天使ちゃん天使 ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジマジマジ マジマジマジマジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天使ちゃんマジ マジマジ天使天使ちゃん天使ちゃん天使ちゃんマジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃんマジマジマジマジマジマジマジマジマジマジマジ天使マジ天使天使ちゃん天使ちゃんマジマジ天使マジマジマジ天使マジマジマジマジ 天使マジマジマジマジマジマジマジマジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃんマジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ天使天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジ天 使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジ天使天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 42 12೥4݄29೔೔༵೔

Slide 43

Slide 43 text

さらにパーサーをいじって 43 12೥4݄29೔೔༵೔

Slide 44

Slide 44 text

プログラミング言語 「ほむほむ」 w : ほむ W : スペースに挟まれたほむ v : タブ/改行 44 12೥4݄29೔೔༵೔

Slide 45

Slide 45 text

ほむ ほむ ほむ ほむほむほむほむ ほむ ほむほむほむほむほむほむ ほむほむほむほむほむ ほむ ほむほむほむほむほ む ほむほむほむほむ ほむほむほむほむ ほむほむほむ ほむほむ ほむ ほむほむ ほむほむほむほむほむほむ ほむほむほむほむ ほむ ほむほむ ほむ ほむほむ ほむ ほむ ほむほむ ほむほむ ほむほむ ほむ ほむ ほむほむほむ ほむほむ ほむほむほむほむほむ ほむほむほむ ほむ ほむほむ ほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむ ほむ ほむほむほむほむ ほむ ほむほむほむほむほむ ほむ ほむほむほむほ むほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほ むほむ ほむ ほむ ほむ ほむ ほむほむほむ ほむほむ ほむほむほむほむ ほむほむほむほむほむほむほむ ほむほ むほむほむほむ ほむほむほむほむほむほむほむ ほむほむほむほむほむほむ ほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむほむ ほむほむほむほむほむ ほむ ほむほむほむほむほむほむ ほむほむ ほむほむほむほむほむほむ ほむほむほむ ほ むほむほむほむほむほむ ほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむ ほむほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむほむ ほむほむほむほむ ほむ ほむほむほむほむほむ ほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむ ほ む ほむ ほむほむほむ ほむほむ ほむ ほむほむほむ ほむ ほむほむほむほむ ほむ ほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむ ほむほむほむほむほ むほむほむほむほむほむほむ ほむほむ ほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむ ほむ ほむほむほむほむほむほむ ほむほむほむほむ ほむ ほむほむほむほむほむ ほむほむほむほむほむほむほむほ む ほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむ ほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむ ほ むほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむ ほむほむほむほむほむほ むほむほむほむほむほむほむほむ ほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむ ほ むほむほむほむ ほむほむほむほむほむほむほむほむ ほむほむほむほむほむ ほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほ む ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむ 45 12೥4݄29೔೔༵೔

Slide 46

Slide 46 text

Grass派生 シンボル数: 3 46 12೥4݄29೔೔༵೔

Slide 47

Slide 47 text

Lesson 3 Iota派生 47 12೥4݄29೔೔༵೔

Slide 48

Slide 48 text

48 Iota **i*i*ii***i*i*i*ii***i*i*i*ii*ii**i*i*ii***i*i*i *ii**i*i*ii****i*i*i*ii*ii*ii***i*i*i*ii***i*i*i* ii**i*i*ii*i*i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii **i*i*ii*i*i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i *i*ii*i*i*i*ii*i*i*ii****i*i*i*ii***i*i*i*ii*ii*ii コンビネータ理論を元にSKIコンビネー タをιコンビネータと適用で表現した関 数型言語。Unlambda派生。 12೥4݄29೔೔༵೔

Slide 49

Slide 49 text

SKIコンビネータで あらゆる計算を 表現できるので 49 12೥4݄29೔೔༵೔

Slide 50

Slide 50 text

構文の説明とかタルいので skk = i i = *ι k = *ι*ι*ι ι s = *ι*ι*ι*ι ι 50 12೥4݄29೔೔༵೔

Slide 51

Slide 51 text

シンボルを変えてみる 51 12೥4݄29೔೔༵೔

Slide 52

Slide 52 text

Iota版 「名状しがたいプログラミング言語のようなもの」 * = (」・ω・)」うー!(/・ω・)/にゃー! i = スペース 52 12೥4݄29೔೔༵೔

Slide 53

Slide 53 text

(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ 53 12೥4݄29೔೔༵೔

Slide 54

Slide 54 text

IotaからJotが派生 Unlambda + Iota + Jot = LazyK 54 12೥4݄29೔೔༵೔

Slide 55

Slide 55 text

シンボル数2なので 任意のバイト列を Iotaプログラムと みなせる 55 12೥4݄29೔೔༵೔

Slide 56

Slide 56 text

56 謎プログラミング言語UCAS ᖪᖫᓫᔧᕏᕔᒨᕕᔨᒪᖫᓕᕕᕓᓫᔻᕎᒖᒖᑶᒞᒧᕋᕋᔾᒨᒪᑊ ᖫᓫᔶᑖᑕᔶᑶᒞᒥᖪᖫᓫᔶᑖᑕᗫᔻᕎᒖᒖᑏᕔᒨᒪᖫᓕ ᕕᕓᓫᔻᕎᒖᒖᑻᕊᑶᒞᒧᕋᕋᔧᕏᕔᕕᔶᑶᒛᔾᒥᔻᕏ ᕔᒦᒦᒔᖫᒔᕕᗖᑫᒫᒪᖫᓫᔶᑖᑕᔶᑶᒞᒥᖪᖫᓕᗫᔥᗖ ᑶᒛᔫᔫᒟᕓᒞᒨᒪᕓᕓᕏᕔᕕᖪᒪᒥᖪᖫᓫᔧᕏᕔᕕᖪᒪ Unicodeコードポイントから5121を差し 引いた数のビット列をiotaコードと見な す。 12೥4݄29೔೔༵೔

Slide 57

Slide 57 text

Iota派生 シンボル数: 2 57 12೥4݄29೔೔༵೔

Slide 58

Slide 58 text

Lesson4 プログラミング言語A 58 12೥4݄29೔೔༵೔

Slide 59

Slide 59 text

どうにかシンボル数を 1にできないか? 59 12೥4݄29೔೔༵೔

Slide 60

Slide 60 text

60 A Aが8進数で 2222222226022222222022222222222022 22211137040224222222244222403433333 33333334122222222433333333422243333 334333333334024 個つづく Aを並べた数がプログラムになる。Aの数 を8で割った剰余がbrainf*ckの命令にな り、商が7以下になるまで繰り返す 12೥4݄29೔೔༵೔

Slide 61

Slide 61 text

問題点: Hello world!を出力するプログ ラムを格納するディスク容量 が地球上に存在しない 61 12೥4݄29೔೔༵೔

Slide 62

Slide 62 text

約10の134乗kbyte 62 12೥4݄29೔೔༵೔

Slide 63

Slide 63 text

「人類には早すぎたプログラ ミング言語 A」 63 12೥4݄29೔೔༵೔

Slide 64

Slide 64 text

Lesson5 おわりに 64 12೥4݄29೔೔༵೔

Slide 65

Slide 65 text

esolang処理系を 自分で書いておくと いろいろいいことある 65 12೥4݄29೔೔༵೔

Slide 66

Slide 66 text

コンパイラ/処理系/ポインタ/ レジスタ/スタック/ラムダ計 算/コンビネータ理論/... の勉強になる 66 12೥4݄29೔೔༵೔

Slide 67

Slide 67 text

インターネット上の トレンドに対する 瞬発力向上 67 12೥4݄29೔೔༵೔

Slide 68

Slide 68 text

ギズモードデビューorz 68 12೥4݄29೔೔༵೔

Slide 69

Slide 69 text

本日のコード 宇宙的な深淵から這い寄る名状しがたいプログラミング言語が見る者のSAN値を 容赦なくすり減らすプロジェクト yuroyoro/esoteric-languages-on-scala : https://github.com/yuroyoro/esoteric-languages-on-scala 69 12೥4݄29೔೔༵೔

Slide 70

Slide 70 text

おわりです 70 12೥4݄29೔೔༵೔