Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
{ Scala で 作る 奇妙な プログラミング言語?? } 1 2012/04/29 超エンジニアミーティングʙHappy Hacking!ʙ in ニコニコ超会議meeting 124݄29༵
Slide 2
Slide 2 text
ID:yuroyoro ゆろよろ 2 お前、誰よ? 124݄29༵
Slide 3
Slide 3 text
株式会社ScaleOutで ろくろ廻してます 3 124݄29༵
Slide 4
Slide 4 text
http://scaleout.jp 4 124݄29༵
Slide 5
Slide 5 text
「難解プログラミング言語」 (Esoteric Programing Language) 5 124݄29༵
Slide 6
Slide 6 text
難解プログラミング言語 (なんかいプロ グラミングげんご)とは、意図的に読解が 困難なように設計されたプログラミング 言語である。英語では、Esoteric programming language (略してesolang とも)と言われる。 難解プログラミング言語 - Wikipedia http://ja.wikipedia.org/wiki/難解プログラミング言語 6 124݄29༵
Slide 7
Slide 7 text
代表的なEsolang 7 124݄29༵
Slide 8
Slide 8 text
8 Brainf*ck +++++++++[>++++++++>+++++++++++>++ +++<<<-]>.>++.+++++++..+++.>-. 8つの命令(><+-.,[])でメモリ/ポインタを 操作する。チューリング完全 124݄29༵
Slide 9
Slide 9 text
9 Befunge v @_ v >0"!dlroW"v v :# < >" ,olleH" v 二次元の格子状に命令が配置されてい る。行・桁数が意味をもつ。チューリン グ完全ではない 124݄29༵
Slide 10
Slide 10 text
10 HQ9+ H H/Q/9/+の4命令だけで構成される。H で”Hello, world!”を出力、Qは実行中の ソースコードを出力する(クワイン) 124݄29༵
Slide 11
Slide 11 text
11 KEMURI ` | 6つの命令からなるスタックマシン 。 チューリング完全。 ` で”Hello, world!”をスタックに積む 124݄29༵
Slide 12
Slide 12 text
Esolangは他にも まだまだあります。 INTERCAL/Malbolge/ Shakespeare/FALSE/ Chef/... 12 124݄29༵
Slide 13
Slide 13 text
「チューリングの泥沼 (Turing tarpit)へ ようこそ」 13 124݄29༵
Slide 14
Slide 14 text
ねた言語作りは プログラマの嗜み 14 124݄29༵
Slide 15
Slide 15 text
「○○だけで プログラミングできる言語」 15 124݄29༵
Slide 16
Slide 16 text
Lesson 1 Brainf*ck派生 16 124݄29༵
Slide 17
Slide 17 text
Brainf*ckの8つの命令を 任意の文字列に置き換える 17 124݄29༵
Slide 18
Slide 18 text
名状しがたいプログラミング 言語のようなもの Nyaruko 18 124݄29༵
Slide 19
Slide 19 text
> : "(」・ω・)」うー(/・ω・)/にゃー" + : "(」・ω・)」うー!(/・ω・)/にゃー" < : "(」・ω・)」うー!!(/・ω・)/にゃー!" - : "(」・ω・)」うー!!!(/・ω・)/にゃー!!" [ : "CHAOS☆CHAOS!" ] : "I WANNA CHAOS!" . : "Let's\(・ω・)/にゃー" , : "cosmic!" 19 124݄29༵
Slide 20
Slide 20 text
Demo 20 124݄29༵
Slide 21
Slide 21 text
「Q:なんでScalaで書くの?」 21 124݄29༵
Slide 22
Slide 22 text
「A:ParserCombinator」 22 124݄29༵
Slide 23
Slide 23 text
ParserCombinator 構文解析ライブラリ 23 124݄29༵
Slide 24
Slide 24 text
// tokenは+-><,.のどれか def token = "+" ||| "-" ||| ">" ||| "<"||| ","||| "." 24 124݄29༵
Slide 25
Slide 25 text
// instructionはloopか // tokenかcomment def instruction = loop | token | comment 25 124݄29༵
Slide 26
Slide 26 text
// loopは、[instruction] // []の対応が取れていないと // 解析エラー def loop = “[“ ~> rep(instruction) <~ “]” 26 124݄29༵
Slide 27
Slide 27 text
// loopは、[instruction] // []の対応が取れていないと // 解析エラー def loop = “[“ ~> rep(loop | token | comment) <~ “]” 27 124݄29༵
Slide 28
Slide 28 text
// プログラムは // instructionの繰り返し def brainfuck = rep(instruction) 28 124݄29༵
Slide 29
Slide 29 text
ParserCombinator使うと 構文解析できるし、 命令の差し替えも簡単 29 124݄29༵
Slide 30
Slide 30 text
JoJo言語/Misa... 30 124݄29༵
Slide 31
Slide 31 text
Brainf*ck派生 シンボル数: 8 31 124݄29༵
Slide 32
Slide 32 text
Lesson 2 Grass派生 32 124݄29༵
Slide 33
Slide 33 text
33 Grass wvwWwwwwWwwwwwwWWWWWwWWWW WwwwwvwwwwWWWwwWwwWWWWWWw wwwWwwvwWWwWwwvwwWWwvwWWWw wWWWWWwwwWwwWWWWWWwWWWWW WWwWWWWwWWWWWwWWWWWWwWW 「ちょっと草植えときますね型言語 」。型無しラムダ計算をベースをした関 数型言語。w/W/vの三文字を使う 124݄29༵
Slide 34
Slide 34 text
スタック(初期状態) In W Succ Out 34 124݄29༵
Slide 35
Slide 35 text
関数適用: App(m,n) WWW...(m個)...WWWwww...(n個)...www スタックのm番目の値を取り出しn番目の 値に適用する。結果をスタックに積む。 35 124݄29༵
Slide 36
Slide 36 text
関数定義: Abs(n) www...(n個)...www 関数適用* n個の引数をとる関数を定義してスタッ クにつむ。引数は、呼び出しの際に渡さ れた値がスタックに積まれる。関数本体 は、関数適用の1回以上の繰り返し 36 124݄29༵
Slide 37
Slide 37 text
例: wを出力する wWWwwww Abs( 1 ) App( 2, 4 ) 1引数の関数定義 スタックの2番目(Out)に4番目(w)を適 用 Out(w) 37 124݄29༵
Slide 38
Slide 38 text
w/W/vを 違う文字列にしてみる 38 124݄29༵
Slide 39
Slide 39 text
プログラミング言語 「ブブゼラ」 w :ェ W : エ v : ベ 39 124݄29༵
Slide 40
Slide 40 text
ヴェ ベ ェエェェェェエェェェェェェエエエエエェエエエエエェェェェ ベ ェェェェエエエェェエェェエエエヴエエエェェェェエェェ ベ ェエエェエェェ ベ ェェエエェ ベ ェエエエェェエエエエエェェェエェヴェエエエエエエェエエエエエ エエェエエエエヴェエエエエエェエエエエエエェエエエエエエエエエエエエエ エェェェェェェェェエェエェエエエェェエエエエェェェェェェェエエエエエ ヴェェェェェェェエエエエエエェェェェェェェエエエエエエエエエエエエエエエ エエエエエエェェェェェヴェェェェェェェェェェェェェェェェ エェェェェェェェェェェェェェェェェェェェェエェェェェェェェェェェェェェ エェェェェェェエエェェェェェェエエエェェェェヴェェエエエエエ エェェェェェェェェェェェェェェェェェェェェエェェェェェェェェェェエ エェェェェエヴエエェェェェエエエエェエエエエ エェェェェェェェェェェェェェェェェェェエエエエエエエエエエエェエェェェエ エェエエエェエエエヴエェエエエエエエエエエエエエヴエエエエ エェェェェェェェェェェェェェェェェェ エェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェ ェェヴェエェェェェェェェェェェェエエェェェェェェェェェェェエエ エェェェェェェェエエエエェエエヴエエヴエェェェェェェェェエエエエヴエ エェェェェェェェェェェェェェェェェェェェェェエエエエエエ エェェェェェェェェェェェェェェェェェェェェェェェェェェェェエエヴエエエエ エエエェェェェェェェェ エェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェエ エェェェェェェェェェェヴェェェエエエェェェェェェェェェェェェェエエエ エェェェェェェェェエエエエエェェェェェェェェェ ヴェェェェェェェェェェェェェェェヴェェエエエエエ エェェェェェェェェェェェェェェェェェェェェェェェェェ 40 124݄29༵
Slide 41
Slide 41 text
プログラミング言語 「天使ちゃんマジ天使!」 w : 天使 W : マジ v : ! 41 124݄29༵
Slide 42
Slide 42 text
天使ちゃん ! 天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマ ジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん ! 天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマ ジ天使天使ちゃんマジ天使天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん ! 天使ちゃんマ ジマジ天使マジ天使天使ちゃん ! 天使ちゃん天使ちゃんマジマジ天使 ! 天使ちゃんマジマジマジ天使天使ちゃんマジマジマジマジマジ天 使天使ちゃん天使ちゃんマジ天使天使ちゃんマジマジマジマジマジマジ天使マジマジマジマジマジマジマジ天使マジマジマジマジ天使マジマ ジマジマジマジ天使マジマジマジマジマジマジ天使マジマジマジマジマジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使マジ天使マジマジマジ天使天使ちゃんマジマジマジマジ天使天使ちゃん天使 ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジマジマジ マジマジマジマジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天使ちゃんマジ マジマジ天使天使ちゃん天使ちゃん天使ちゃんマジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃんマジマジマジマジマジマジマジマジマジマジマジ天使マジ天使天使ちゃん天使ちゃんマジマジ天使マジマジマジ天使マジマジマジマジ 天使マジマジマジマジマジマジマジマジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃんマジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ マジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジ天使天使ちゃん天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ天使天使ちゃん天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジ天 使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジ天使天使ちゃん天使ちゃん天使ちゃん 天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使 ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジ天使天 使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃ ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん 42 124݄29༵
Slide 43
Slide 43 text
さらにパーサーをいじって 43 124݄29༵
Slide 44
Slide 44 text
プログラミング言語 「ほむほむ」 w : ほむ W : スペースに挟まれたほむ v : タブ/改行 44 124݄29༵
Slide 45
Slide 45 text
ほむ ほむ ほむ ほむほむほむほむ ほむ ほむほむほむほむほむほむ ほむほむほむほむほむ ほむ ほむほむほむほむほ む ほむほむほむほむ ほむほむほむほむ ほむほむほむ ほむほむ ほむ ほむほむ ほむほむほむほむほむほむ ほむほむほむほむ ほむ ほむほむ ほむ ほむほむ ほむ ほむ ほむほむ ほむほむ ほむほむ ほむ ほむ ほむほむほむ ほむほむ ほむほむほむほむほむ ほむほむほむ ほむ ほむほむ ほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむ ほむ ほむほむほむほむ ほむ ほむほむほむほむほむ ほむ ほむほむほむほ むほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほ むほむ ほむ ほむ ほむ ほむ ほむほむほむ ほむほむ ほむほむほむほむ ほむほむほむほむほむほむほむ ほむほ むほむほむほむ ほむほむほむほむほむほむほむ ほむほむほむほむほむほむ ほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむほむ ほむほむほむほむほむ ほむ ほむほむほむほむほむほむ ほむほむ ほむほむほむほむほむほむ ほむほむほむ ほ むほむほむほむほむほむ ほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむ ほむほむ ほむほむほむ ほむ ほむほむほむ ほむほむほむほむ ほむほむほむほむ ほむ ほむほむほむほむほむ ほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむ ほ む ほむ ほむほむほむ ほむほむ ほむ ほむほむほむ ほむ ほむほむほむほむ ほむ ほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむ ほむほむほむほむほ むほむほむほむほむほむほむ ほむほむ ほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむ ほむ ほむほむほむほむほむほむ ほむほむほむほむ ほむ ほむほむほむほむほむ ほむほむほむほむほむほむほむほ む ほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむ ほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほむほむほむほむ ほ むほむほむほむほむほむほむほむ ほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむ ほむほむほむほむほむほ むほむほむほむほむほむほむほむ ほむほむほむ ほむほむほむほむほむほむほむほむほむほむほむほむほむ ほ むほむほむほむ ほむほむほむほむほむほむほむほむ ほむほむほむほむほむ ほむほむほむほむほむほむほむほ むほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむ ほむほむほむほむほむほ む ほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほむほ むほむ 45 124݄29༵
Slide 46
Slide 46 text
Grass派生 シンボル数: 3 46 124݄29༵
Slide 47
Slide 47 text
Lesson 3 Iota派生 47 124݄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派生。 124݄29༵
Slide 49
Slide 49 text
SKIコンビネータで あらゆる計算を 表現できるので 49 124݄29༵
Slide 50
Slide 50 text
構文の説明とかタルいので skk = i i = *ι k = *ι*ι*ι ι s = *ι*ι*ι*ι ι 50 124݄29༵
Slide 51
Slide 51 text
シンボルを変えてみる 51 124݄29༵
Slide 52
Slide 52 text
Iota版 「名状しがたいプログラミング言語のようなもの」 * = (」・ω・)」うー!(/・ω・)/にゃー! i = スペース 52 124݄29༵
Slide 53
Slide 53 text
(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/ にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー! (」・ω・)」うー!(/・ ω・)/にゃー! (」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー! (」・ 53 124݄29༵
Slide 54
Slide 54 text
IotaからJotが派生 Unlambda + Iota + Jot = LazyK 54 124݄29༵
Slide 55
Slide 55 text
シンボル数2なので 任意のバイト列を Iotaプログラムと みなせる 55 124݄29༵
Slide 56
Slide 56 text
56 謎プログラミング言語UCAS ᖪᖫᓫᔧᕏᕔᒨᕕᔨᒪᖫᓕᕕᕓᓫᔻᕎᒖᒖᑶᒞᒧᕋᕋᔾᒨᒪᑊ ᖫᓫᔶᑖᑕᔶᑶᒞᒥᖪᖫᓫᔶᑖᑕᗫᔻᕎᒖᒖᑏᕔᒨᒪᖫᓕ ᕕᕓᓫᔻᕎᒖᒖᑻᕊᑶᒞᒧᕋᕋᔧᕏᕔᕕᔶᑶᒛᔾᒥᔻᕏ ᕔᒦᒦᒔᖫᒔᕕᗖᑫᒫᒪᖫᓫᔶᑖᑕᔶᑶᒞᒥᖪᖫᓕᗫᔥᗖ ᑶᒛᔫᔫᒟᕓᒞᒨᒪᕓᕓᕏᕔᕕᖪᒪᒥᖪᖫᓫᔧᕏᕔᕕᖪᒪ Unicodeコードポイントから5121を差し 引いた数のビット列をiotaコードと見な す。 124݄29༵
Slide 57
Slide 57 text
Iota派生 シンボル数: 2 57 124݄29༵
Slide 58
Slide 58 text
Lesson4 プログラミング言語A 58 124݄29༵
Slide 59
Slide 59 text
どうにかシンボル数を 1にできないか? 59 124݄29༵
Slide 60
Slide 60 text
60 A Aが8進数で 2222222226022222222022222222222022 22211137040224222222244222403433333 33333334122222222433333333422243333 334333333334024 個つづく Aを並べた数がプログラムになる。Aの数 を8で割った剰余がbrainf*ckの命令にな り、商が7以下になるまで繰り返す 124݄29༵
Slide 61
Slide 61 text
問題点: Hello world!を出力するプログ ラムを格納するディスク容量 が地球上に存在しない 61 124݄29༵
Slide 62
Slide 62 text
約10の134乗kbyte 62 124݄29༵
Slide 63
Slide 63 text
「人類には早すぎたプログラ ミング言語 A」 63 124݄29༵
Slide 64
Slide 64 text
Lesson5 おわりに 64 124݄29༵
Slide 65
Slide 65 text
esolang処理系を 自分で書いておくと いろいろいいことある 65 124݄29༵
Slide 66
Slide 66 text
コンパイラ/処理系/ポインタ/ レジスタ/スタック/ラムダ計 算/コンビネータ理論/... の勉強になる 66 124݄29༵
Slide 67
Slide 67 text
インターネット上の トレンドに対する 瞬発力向上 67 124݄29༵
Slide 68
Slide 68 text
ギズモードデビューorz 68 124݄29༵
Slide 69
Slide 69 text
本日のコード 宇宙的な深淵から這い寄る名状しがたいプログラミング言語が見る者のSAN値を 容赦なくすり減らすプロジェクト yuroyoro/esoteric-languages-on-scala : https://github.com/yuroyoro/esoteric-languages-on-scala 69 124݄29༵
Slide 70
Slide 70 text
おわりです 70 124݄29༵