Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Haskellでbrainfckインタプリタを書きたかった話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuto Tokunaga
July 11, 2015
Programming
880
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Haskellでbrainfckインタプリタを書きたかった話
ソースコード:
https://gist.github.com/yuntan/36844081aa37c426b895
Yuto Tokunaga
July 11, 2015
More Decks by Yuto Tokunaga
See All by Yuto Tokunaga
SyaroNote
yuntan
0
2k
QMLでFlappyBirdを作ろう
yuntan
0
1.6k
KC3 2014 懇親会LT 「Let It ʕ ◔π◔ʔGo」
yuntan
0
140
QMLとモバイル
yuntan
0
1k
KC3 2013 懇談会LT 「QML + C++で楽しい!」
yuntan
1
210
Other Decks in Programming
See All in Programming
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
210
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
180
5分で問診!Composer セキュリティ健康診断
codmoninc
0
790
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.6k
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
0
380
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
240
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
410
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
200
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
AIエージェントで 変わるAndroid開発環境
takahirom
2
760
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
17k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
Featured
See All Featured
Side Projects
sachag
455
43k
Navigating Team Friction
lara
192
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Marketing to machines
jonoalderson
1
5.6k
Technical Leadership for Architectural Decision Making
baasie
3
460
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
270
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Building AI with AI
inesmontani
PRO
1
1.1k
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
450
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Transcript
Haskellでbrainf*ckイ ンタプリタ 1 / 10
を書きたかった 話 2 / 10
brainf*ckとは 開発者Urban Müllerがコンパイラがなるべく小さくなる言 語として考案した 3 / 10
言語仕様 > : ポインタをインクリメントする < : ポインタをデクリメントする + : ポインタが指す値をインクリメントする
- : ポインタが指す値をデクリメントする . : ポインタを指す値を出力する , : 入力を読み込んでメモリに格納する [ : ポインタが指す値が0なら、対応する] の直後にジャンプする ] : ポインタが指す値が0以外なら、対応する[ の直前にジャンプす る 4 / 10
C言語っぽく言う と > : ptr++ < : ptr-- + :
(*ptr)++ - : (*ptr)-- . : putchar(*ptr) , : *ptr = getchar() [ : while(*ptr){ ] : } 5 / 10
必要なもの テープ(Brainf*ckの命令列) メモリ ポインタ(メモリのインデックス) 処理を詰むスタック 6 / 10
実装&Haskellの解 説(てきとう) 7 / 10
この実装は遅い! (はず) 8 / 10
STRef Haskellで最大入可能な配列を実現する STモナドは状態系モナドの一つです. 9 / 10
まとめ もうだめ 10 / 10