Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Nmimineko
PPTX, PDF
444 views
プログラミング言語「A」 2019 07 08
難解プログラミング言語(Brainfuck, A)のLTをした際の資料です。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 94
2
/ 94
3
/ 94
4
/ 94
5
/ 94
6
/ 94
7
/ 94
8
/ 94
9
/ 94
10
/ 94
11
/ 94
12
/ 94
13
/ 94
14
/ 94
15
/ 94
16
/ 94
17
/ 94
18
/ 94
19
/ 94
20
/ 94
21
/ 94
22
/ 94
23
/ 94
24
/ 94
25
/ 94
26
/ 94
27
/ 94
28
/ 94
29
/ 94
30
/ 94
31
/ 94
32
/ 94
33
/ 94
34
/ 94
35
/ 94
36
/ 94
37
/ 94
38
/ 94
39
/ 94
40
/ 94
41
/ 94
42
/ 94
43
/ 94
44
/ 94
45
/ 94
46
/ 94
47
/ 94
48
/ 94
49
/ 94
50
/ 94
51
/ 94
52
/ 94
53
/ 94
54
/ 94
55
/ 94
56
/ 94
57
/ 94
58
/ 94
59
/ 94
60
/ 94
61
/ 94
62
/ 94
63
/ 94
64
/ 94
65
/ 94
66
/ 94
67
/ 94
68
/ 94
69
/ 94
70
/ 94
71
/ 94
72
/ 94
73
/ 94
74
/ 94
75
/ 94
76
/ 94
77
/ 94
78
/ 94
79
/ 94
80
/ 94
81
/ 94
82
/ 94
83
/ 94
84
/ 94
85
/ 94
86
/ 94
87
/ 94
88
/ 94
89
/ 94
90
/ 94
91
/ 94
92
/ 94
93
/ 94
94
/ 94
More Related Content
PDF
Omraam mikhael aivanhov de la om la dumnezeu-1
by
eyla70
PDF
超絶技巧プログラミングの世界(FTD2015)
by
mametter
PDF
実用Brainf*ckプログラミング
by
京大 マイコンクラブ
PDF
人工無脳バトル 1st STEP 回答と解説
by
JustSystems Corporation
PDF
講座C入門
by
Tokai University
PDF
Usp友の会勉強会、ジャクソン構造図の巻(後編)
by
umidori
PDF
X hago2 shortcoding 20110827
by
uskey512
PPT
計算機理論入門02
by
Tomoyuki Tarumi
Omraam mikhael aivanhov de la om la dumnezeu-1
by
eyla70
超絶技巧プログラミングの世界(FTD2015)
by
mametter
実用Brainf*ckプログラミング
by
京大 マイコンクラブ
人工無脳バトル 1st STEP 回答と解説
by
JustSystems Corporation
講座C入門
by
Tokai University
Usp友の会勉強会、ジャクソン構造図の巻(後編)
by
umidori
X hago2 shortcoding 20110827
by
uskey512
計算機理論入門02
by
Tomoyuki Tarumi
Similar to プログラミング言語「A」 2019 07 08
PDF
C-HelperでC言語を効率的に学習しよう
by
Kota Uchida
PDF
プログラミング作法
by
Kota Uchida
PDF
Javaセキュアコーディングセミナー東京第2回講義
by
JPCERT Coordination Center
PDF
Material
by
_TUNE_
PDF
SSE4.2の文字列処理命令の紹介
by
MITSUNARI Shigeo
PPTX
C言語 学習教材
by
Jun MITANI
PDF
[xDNCL] 配布資料
by
Ryota Nakamura
PDF
KLab勉強会#6 発表資料
by
Suguru Oho
PPTX
md5のアルゴリズム
by
aomori ringo
PPT
Test12 16
by
chibi_LT
PDF
Misrac20150523
by
Kiyoshi Ogawa
PPTX
YAPC::ASIA 2012 LT GaiaX
by
Kazuyuki Todo
PDF
#6:実数と繰り返し
by
長岡技術科学大学 自然言語処理研究室
PDF
Cプログラマのためのカッコつけないプログラミングの勧め
by
MITSUNARI Shigeo
PDF
プログラマ講習第3回
by
Yuma Yoshimoto
PDF
Processing授業テキスト
by
Suzuki Junko
PDF
関数型言語初心者がHaskellに挑戦してみた
by
ikaro1192
PDF
PFI Seminar 2010/02/18
by
Preferred Networks
PPTX
C言語ポインタ講座 (Lecture of Pointer in C)
by
kakira9618
PPTX
C言語 学習教材
by
Jun MITANI
C-HelperでC言語を効率的に学習しよう
by
Kota Uchida
プログラミング作法
by
Kota Uchida
Javaセキュアコーディングセミナー東京第2回講義
by
JPCERT Coordination Center
Material
by
_TUNE_
SSE4.2の文字列処理命令の紹介
by
MITSUNARI Shigeo
C言語 学習教材
by
Jun MITANI
[xDNCL] 配布資料
by
Ryota Nakamura
KLab勉強会#6 発表資料
by
Suguru Oho
md5のアルゴリズム
by
aomori ringo
Test12 16
by
chibi_LT
Misrac20150523
by
Kiyoshi Ogawa
YAPC::ASIA 2012 LT GaiaX
by
Kazuyuki Todo
#6:実数と繰り返し
by
長岡技術科学大学 自然言語処理研究室
Cプログラマのためのカッコつけないプログラミングの勧め
by
MITSUNARI Shigeo
プログラマ講習第3回
by
Yuma Yoshimoto
Processing授業テキスト
by
Suzuki Junko
関数型言語初心者がHaskellに挑戦してみた
by
ikaro1192
PFI Seminar 2010/02/18
by
Preferred Networks
C言語ポインタ講座 (Lecture of Pointer in C)
by
kakira9618
C言語 学習教材
by
Jun MITANI
プログラミング言語「A」 2019 07 08
1.
猿でもわかる 難解プログラミング言語 3年5組 **** TwitterID @3_3_nk
2.
自己紹介とか ■ みみねこです – フォローしてください ■
アイコン描いてもらった!! – ゆき(@TNCT_yuki)さんからです – ファンアートお待ちしてます ■ プロコン競技部門予選突破!! – がんばります
3.
突然ですが
4.
キーボードのキーが 突然反応しなくなるときって ありますよね
5.
キーボードの「A」キー以外 全部反応しなくなるときって ありますよね
6.
キーボードが「A」キー以外 全部反応しなくなったけど プログラミングしなきゃいけないとき ありますよね
7.
そんな時に知っておくと便利なのが
8.
プログラミング言語「A」!!!
9.
プログラミング言語「A」とは? ■ 「A」という文字だけで記述するのが最大の特徴 – 他の文字や改行や空白などはすべてコメント扱いとなる –
むしろこれしか特徴がない ■ 「A言語」とは明確に異なるため、言語「A」と表記 ■ 難解プログラミング言語のひとつである ■ Brainfuckから派生した言語のひとつである
10.
プログラミング言語「A」とは? ■ 「A」という文字だけで記述するのが最大の特徴 – 他の文字や改行や空白などはすべてコメント扱いとなる –
むしろこれしか特徴がない ■ 「A言語」とは明確に異なるため、言語「A」と表記 ■ 難解プログラミング言語のひとつである ■ Brainfuckから派生した言語のひとつである
11.
Brainfuckとは? ■ 難解プログラミング言語のひとつ ■ 8種類の文字のみをつかって記述するのが最大の特徴 ■
コンパイラのサイズをなるべく小さくしようとしてできた 言語(らしい)
12.
ということは ■ Brainfuckを理解すれば言語「A」も理解できる ■ →Brainfuckを学んでおけばキーボードがいつ壊れてもプ ログラミングできる!!!! ■
→Brainfuckを学ぼう!
13.
Brainfuckの言語仕様 ■ 言語仕様について – 無限長のメモリ(配列のようなもの)が一つと、そのメモリのあ る要素を指すポインタがある –
メモリのすべての要素は実行時に0に初期化され、ポインタは 最初0番目の要素を指している – 変数などないので、すべての値はこのメモリ上で管理する
14.
Brainfuck講座 ■ 使う文字は8種類のみ ■ 各文字には独立した命令が割り振られている ■
関係ない文字はすべてコメント扱いされる
15.
文字の種類 命令 C言語で対応する構文 >
ポインタを1増やす ptr++; < ポインタを1減らす ptr--; + 要素の値を1増やす (*ptr)++; - 要素の値を1減らす (*ptr)--; . 要素を出力する putchar(*ptr); , 入力を1バイト受け取り 要素に代入する *ptr = getchar(); [ 要素が0なら]まで飛ぶ while(*ptr){ ] [まで飛ぶ }
16.
文字の種類 命令 C言語で対応する構文 >
ポインタを1増やす ptr++; < ポインタを1減らす ptr--; + 要素の値を1増やす (*ptr)++; - 要素の値を1減らす (*ptr)--; . 要素を出力する putchar(*ptr); , 入力を1バイト受け取り 要素に代入する *ptr = getchar(); [ 要素が0なら]まで飛ぶ while(*ptr){ ] [まで飛ぶ }
17.
>> << {0} {1}
{2} {3} {4} {5} 0 0 0 0 0 0 ☝
18.
>> << {0} {1}
{2} {3} {4} {5} 0 0 0 0 0 0 ☝
19.
>> << {0} {1}
{2} {3} {4} {5} 0 0 0 0 0 0 ☝
20.
>> << {0} {1}
{2} {3} {4} {5} 0 0 0 0 0 0 ☝
21.
>> << {0} {1}
{2} {3} {4} {5} 0 0 0 0 0 0 ☝
22.
文字の種類 命令 C言語で対応する構文 >
ポインタを1増やす ptr++; < ポインタを1減らす ptr--; + 要素の値を1増やす (*ptr)++; - 要素の値を1減らす (*ptr)--; . 要素を出力する putchar(*ptr); , 入力を1バイト受け取り 要素に代入する *ptr = getchar(); [ 要素が0なら]まで飛ぶ while(*ptr){ ] [まで飛ぶ }
23.
++ > -- {0}
{1} {2} {3} {4} {5} 0 0 0 0 0 0 ☝
24.
++ > -- {0}
{1} {2} {3} {4} {5} 1 0 0 0 0 0 ☝
25.
++ > -- {0}
{1} {2} {3} {4} {5} 2 0 0 0 0 0 ☝
26.
++ > -- {0}
{1} {2} {3} {4} {5} 2 0 0 0 0 0 ☝
27.
++ > -- {0}
{1} {2} {3} {4} {5} 2 -1 0 0 0 0 ☝
28.
++ > -- {0}
{1} {2} {3} {4} {5} 2 -2 0 0 0 0 ☝
29.
文字の種類 命令 C言語で対応する構文 >
ポインタを1増やす ptr++; < ポインタを1減らす ptr--; + 要素の値を1増やす (*ptr)++; - 要素の値を1減らす (*ptr)--; . 要素を出力する putchar(*ptr); , 入力を1バイト受け取り 要素に代入する *ptr = getchar(); [ 要素が0なら]まで飛ぶ while(*ptr){ ] [まで飛ぶ }
30.
, ++ . {0}
{1} {2} {3} {4} {5} 0 0 0 0 0 0 ☝ A
31.
, ++ . {0}
{1} {2} {3} {4} {5} 65 0 0 0 0 0 ☝ A
32.
, ++ . {0}
{1} {2} {3} {4} {5} 66 0 0 0 0 0 ☝ A
33.
, ++ . {0}
{1} {2} {3} {4} {5} 67 0 0 0 0 0 ☝ A
34.
, ++ . {0}
{1} {2} {3} {4} {5} 67 0 0 0 0 0 ☝ A C
35.
文字の種類 命令 C言語で対応する構文 >
ポインタを1増やす ptr++; < ポインタを1減らす ptr--; + 要素の値を1増やす (*ptr)++; - 要素の値を1減らす (*ptr)--; . 要素を出力する putchar(*ptr); , 入力を1バイト受け取り 要素に代入する *ptr = getchar(); [ 要素が0なら]まで飛ぶ while(*ptr){ ] [まで飛ぶ }
36.
[->+<] {0} {1} {2}
{3} {4} {5} 3 0 0 0 0 0 ☝
37.
[->+<] {0} {1} {2}
{3} {4} {5} 3 0 0 0 0 0 ☝
38.
[->+<] {0} {1} {2}
{3} {4} {5} 2 0 0 0 0 0 ☝
39.
[->+<] {0} {1} {2}
{3} {4} {5} 2 0 0 0 0 0 ☝
40.
[->+<] {0} {1} {2}
{3} {4} {5} 2 1 0 0 0 0 ☝
41.
[->+<] {0} {1} {2}
{3} {4} {5} 2 1 0 0 0 0 ☝
42.
[->+<] {0} {1} {2}
{3} {4} {5} 2 1 0 0 0 0 ☝
43.
[->+<] {0} {1} {2}
{3} {4} {5} 2 1 0 0 0 0 ☝
44.
[->+<] {0} {1} {2}
{3} {4} {5} 1 1 0 0 0 0 ☝
45.
[->+<] {0} {1} {2}
{3} {4} {5} 1 1 0 0 0 0 ☝
46.
[->+<] {0} {1} {2}
{3} {4} {5} 1 2 0 0 0 0 ☝
47.
[->+<] {0} {1} {2}
{3} {4} {5} 1 2 0 0 0 0 ☝
48.
[->+<] {0} {1} {2}
{3} {4} {5} 1 2 0 0 0 0 ☝
49.
[->+<] {0} {1} {2}
{3} {4} {5} 1 2 0 0 0 0 ☝
50.
[->+<] {0} {1} {2}
{3} {4} {5} 0 2 0 0 0 0 ☝
51.
[->+<] {0} {1} {2}
{3} {4} {5} 0 2 0 0 0 0 ☝
52.
[->+<] {0} {1} {2}
{3} {4} {5} 0 3 0 0 0 0 ☝
53.
[->+<] {0} {1} {2}
{3} {4} {5} 0 3 0 0 0 0 ☝
54.
[->+<] {0} {1} {2}
{3} {4} {5} 0 3 0 0 0 0 ☝
55.
[->+<] {0} {1} {2}
{3} {4} {5} 0 3 0 0 0 0 ☝
56.
[->+<] {0} {1} {2}
{3} {4} {5} 0 3 0 0 0 0 ☝
57.
プログラム例1:echo ■ いわゆるオウム返しプログラム ■ 入力をそのまま出力する ■
Brainfuckで実装するとなんと5byteで書ける
58.
,[.,] {0} {1} {2}
{3} {4} {5} 0 0 0 0 0 0 ☝ TNCT
59.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT
60.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT
61.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT T
62.
,[.,] {0} {1} {2}
{3} {4} {5} 78 0 0 0 0 0 ☝ TNCT T
63.
,[.,] {0} {1} {2}
{3} {4} {5} 78 0 0 0 0 0 ☝ TNCT T
64.
,[.,] {0} {1} {2}
{3} {4} {5} 78 0 0 0 0 0 ☝ TNCT T
65.
,[.,] {0} {1} {2}
{3} {4} {5} 78 0 0 0 0 0 ☝ TNCT TN
66.
,[.,] {0} {1} {2}
{3} {4} {5} 67 0 0 0 0 0 ☝ TNCT TN
67.
,[.,] {0} {1} {2}
{3} {4} {5} 67 0 0 0 0 0 ☝ TNCT TN
68.
,[.,] {0} {1} {2}
{3} {4} {5} 67 0 0 0 0 0 ☝ TNCT TN
69.
,[.,] {0} {1} {2}
{3} {4} {5} 67 0 0 0 0 0 ☝ TNCT TNC
70.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT TNC
71.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT TNC
72.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT TNC
73.
,[.,] {0} {1} {2}
{3} {4} {5} 84 0 0 0 0 0 ☝ TNCT TNCT
74.
,[.,] {0} {1} {2}
{3} {4} {5} 0 0 0 0 0 0 ☝ TNCT TNCT
75.
,[.,] {0} {1} {2}
{3} {4} {5} 0 0 0 0 0 0 ☝ TNCT TNCT
76.
,[.,] {0} {1} {2}
{3} {4} {5} 0 0 0 0 0 0 ☝ TNCT TNCT
77.
,[.,] {0} {1} {2}
{3} {4} {5} 0 0 0 0 0 0 ☝ TNCT TNCT
78.
プログラム例2:Hello World!! ■ 新しくプログラミング言語に触ったらまずはこれ ■
Brainfuckだと少し面倒くさいけど、書けます
79.
++++++++++ ++++++++++ ++++++++++
++++++++++ ++++++++++ ++++++++++ ++++++++++ ++. ++++++++++ ++++++++++ +++++++++. +++++++. . +++. ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------. ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ +++++. ++++++++++ ++++++++++ ++++. +++. ------. --------. ---------- ---------- ---------- ---------- ---------- ---------- -------. . (366byte)
80.
プログラム例2:Hello World!! ■ 愚直に書くと366byte ■
少し改良すると短いプログラムになる
81.
++++++++ [->+++++++++>+<<]> [->>+>+>+>+<<<<<]> ++++ [->+++>++>+>>+++<<<<<]>>>> .<<+++++.<..+++.>>>>----. <<+++.<<.+++.------.>-.>>>+.. (127byte)
82.
Brainfuckの派生言語について ■ Brainfuckでは、文字ごとに命令が独立している ■ つまり、文字を単語に置換するだけでも派生言語ができ る!!
83.
派生言語の例1:Nyaruko ■ https://github.com/masarakki/nyaruko_lang ■ アニメ「這いよれ!ニャル子さん」のOPの歌詞弾幕で Brainfuckの文字を置換した言語 ■
先ほどのHello World!!(127byte)を変換してみます
84.
(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ ω・)/にゃー!CHAOS☆CHAOS!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ ω・)」うー!!(/・ω・)/にゃー!!I WANNA CHAOS!(」・ω・)」うー(/・ω・)/にゃーCHAOS☆CHAOS!(」・ω・)」うー!!!(/・ω・)/ にゃー!!!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー(/・ ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー (/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!I
WANNA CHAOS!(」・ω・)」 うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ ω・)」うー!(/・ω・)/にゃー!CHAOS☆CHAOS!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー(/・ω・)/にゃー(」・ ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」 うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!I WANNA CHAOS!(」・ω・)」うー (/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃーLet's\(・ω・) /にゃー(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!Let's \(・ω・)/にゃー(」・ω・)」うー!!(/・ω・)/にゃー!!Let's\(・ω・)/にゃーLet's\(・ω・)/にゃー(」・ω・)」うー!(/・ω・)/ にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!Let's\(・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー (」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!!!(/・ω・)/ にゃー!!!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー!!!(/・ω・)/にゃー!!!Let's\(・ω・) /にゃー(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!Let's\(・ω・)/にゃー(」・ω・)」うー!!(/・ω・)/にゃー!!(」・ω・)」 うー!!(/・ω・)/にゃー!!Let's\(・ω・)/にゃー(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」うー!(/・ω・)/にゃー!(」・ω・)」 うー!(/・ω・)/にゃー!Let's\(・ω・)/にゃー(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」 うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー!!!(/・ω・)/にゃー!!!(」・ω・)」うー!!!(/・ω・)/ にゃー!!!Let's\(・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!!!(/・ω・)/にゃー!!!Let's\(・ω・)/にゃー(」・ ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー(/・ω・)/にゃー(」・ω・)」うー!(/・ω・)/
85.
派生言語の例2:Ook! ■ http://www.dangermouse.net/esoteric/ook.html ■ オランウータン向けのプログラミング言語 ■
「Ook.」「Ook!」「Ook?」の3つの鳴き声だけで記述す る – それ以外の文字を含めるとエラー(オランウータンは喋れない ので) ■ 人間向けではないので、変換したコードは貼りません
86.
派生言語の例3:言語「A」 ■ やっと本題です ■ 先ほどのOok!は3つの種類の単語のみで記述していたが、 言語「A」は「A」のみで記述する ■
Aの個数で8つの命令を判別する
87.
「A」の個数 命令 Brainfuckで対応する 文字の種類 0個 ポインタを1増やす
> 1個 ポインタを1減らす < 2個 要素の値を1増やす + 3個 要素の値を1減らす - 4個 要素を出力する . 5個 入力を1バイト受け取り 要素に代入する , 6個 要素が0なら]まで飛ぶ [ 7個 [まで飛ぶ ]
88.
「A」が8つ以上ある場合 ■ 8で割った商が8未満になるまで、この規則を再帰的に適 用する ■ 8で割った余りで命令を判別する ■
これだとちょっとわかりづらい
89.
言語「A」の簡易表現 ■ 実際にAを何個も入力するのは大変 ■ そこで、簡易表現として「『A』が8進数でN個続く」と いうような言い方をする ■
例えば、5byteのechoプログラムを言語「A」で書くと、 「A」が8進数で56457個続く – 10進数で23855個
90.
簡易表現するメリット ■ 「A」の個数を上位桁の数字から順に見ていくことで、 人間でも簡単に言語「A」を読める!! ■ Brainfuckのプログラムを数字に置き換えてそれを8進数 として読めば、言語「A」の簡易表現になる ■
あとはその数字の回数分「A」キーを打つだけ!
91.
簡易表現するメリット ■ 「A」の個数を上位桁の数字から順に見ていくことで、 人間でも簡単に言語「A」を読める!! ■ Brainfuckのプログラムを数字に置き換えてそれを8進数 として読めば、言語「A」の簡易表現になる ■
あとはその数字の回数分「A」キーを打つだけ! ■ →猿でもできる!!
92.
簡易表現するメリット ■ 「A」の個数を上位桁の数字から順に見ていくことで、 人間でも簡単に言語「A」を読める!! ■ Brainfuckのプログラムを数字に置き換えてそれを8進数 として読めば、言語「A」の簡易表現になる ■
あとはその数字の回数分「A」キーを打つだけ! ■ →猿でもできる!! ■ →ヒトでもできる!!!!
93.
まとめ ■ Brainfuckが書ければ言語「A」も書ける! ■ いつキーボードが壊れても安心ですね!!
94.
猿でもわかる 難解プログラミング言語 終
Download