Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Brainf*ckしよう
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Atnanasi
February 18, 2017
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Brainf*ckしよう
私は詳しい事は知りません
Atnanasi
February 18, 2017
Other Decks in Technology
See All in Technology
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
140
今さら理解するウェブフォントver.2026
takanorip
3
770
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
継続的なAIコスト最適化
bgpat
1
340
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
Getting Started with Google Antigravity
glaforge
0
300
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
Running Kotlin + Quarkus with Lambda
nealle
1
3.7k
Refining Active Record
shugo
0
150
Featured
See All Featured
Visualization
eitanlees
153
17k
Thoughts on Productivity
jonyablonski
76
5.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
We Have a Design System, Now What?
morganepeng
55
8.4k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Why Our Code Smells
bkeepers
PRO
340
58k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
Transcript
Brainf*ckしよう 私は詳しい事は知りません
自己紹介 Atnanasi﴾あっとななし﴿ もうすぐ17歳 仙台在住の高専生 とても学校やめたい LT初めてです
Brainf*ckって知ってますか?
Brainf*ckとは Brainfuck(ブレインファック)は難解プログラミング言語の ひとつ[要出典]。なお名称に卑語>が含まれるため、Brainf*ck などと表記されることがある。 開発者Urban Müllerがコンパイラがなるべく小さくなる言語 として考案した。 実際、Müllerが>開発したコンパイラのサ イズはわずか123バイト、インタプリタは98バイトであっ た。
Wikipediaより
Hello,world! +++++++++[>++++++++>+++++++++++>+++++<<<‐]>.>++.+++++++..+ ++.>‐.‐‐‐‐‐‐‐‐‐‐‐‐.<++++++++.‐‐‐‐‐‐‐‐.+++.‐‐‐‐‐‐.‐‐‐‐‐‐‐‐.>+.
やばい﴾やばい﴿
命令 > ポインタをインクリメントする < ポインタをデクリメントする + ポインタが指す値をインクリメントする ‐ ポインタが指す値をデクリメントする .
ポインタが指す値を出力に書き出す , 入力から1バイト読み込んで、ポインタが指す先に代入する [ ポインタが指す値が0なら対応する ] の直後にジャンプする ] ポインタが指す値が0でないなら対応する [ にジャンプする
ニコニコ大百科より 1. 最初のポインタの位置で値を9回インクリメントする。 2. 最初のループで最初のポインタに入っている値をループカウ ンタとし、2番目のポインタの値を8×9=72、3番目のポイン タの値を11×9=99、4番目のポインタの値を5×9=45にする。 3. 2番目のポインタに入っている値は72で、これを文字コードで 出力すると"H"になる。
4. ポインタをインクリメントし、3番目のポインタの値を2回イ ンクリメントして101にして出力すると、"e"になる。 5. それをさらに7回インクリメントすると"l"になり、2回出力す る。さらに3回インクリメントして"o"にする。 6. ポインタをインクリメントし、4番目のポインタの値を1回デ クリメントして44にして出力すると","になる。 7. それをさらに12回デクリメントすると" ﴾半角スペース﴿"にな る。
ようするに 出力はメモリの値をASCIIコードとして解釈する AのASCIIコードは65 単純にインクリメントをするのは効率が悪い →ループを使いまとめてインクリメント 足りない分や少ない分を調整すればあらふしぎ!
拡張もあるよ BrainCrash ‐ ビット演算命令を追加﴾&|^~﴿ Braincunt ‐ メモリ空間を3次元に拡張し ポインタの進行方向を指すベクトル回転命令を追加 BFX ‐
値のコピーやビットシフトを追加 BF‐x ‐ メタプログラミング機能を追加﴾予定﴿
みんなも作ろう 命令が少ないのですぐ実装できる 仕様が簡単 拡張もできる
実装例 学校の課題でScratchでなんか作れって言われたので https://scratch.mit.edu/projects/141720182/
ありがとうございました!