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
Yuto Tokunaga
July 11, 2015
Programming
0
860
Haskellでbrainfckインタプリタを書きたかった話
ソースコード:
https://gist.github.com/yuntan/36844081aa37c426b895
Yuto Tokunaga
July 11, 2015
Tweet
Share
More Decks by Yuto Tokunaga
See All by Yuto Tokunaga
SyaroNote
yuntan
0
1.9k
QMLでFlappyBirdを作ろう
yuntan
0
1.5k
KC3 2014 懇親会LT 「Let It ʕ ◔π◔ʔGo」
yuntan
0
140
QMLとモバイル
yuntan
0
910
KC3 2013 懇談会LT 「QML + C++で楽しい!」
yuntan
1
200
Other Decks in Programming
See All in Programming
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
17
6.1k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
11
2.8k
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
2
220
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
720
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.4k
What's new in AppKit on macOS 26
1024jp
0
180
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
840
[SRE NEXT] 複雑なシステムにおけるUser Journey SLOの導入
yakenji
0
810
Reactの歴史を振り返る
tutinoko
1
140
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
130
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
3
510
型で語るカタ
irof
1
850
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
720
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
390
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Fireside Chat
paigeccino
37
3.5k
Six Lessons from altMBA
skipperchong
28
3.9k
Agile that works and the tools we love
rasmusluckow
329
21k
Balancing Empowerment & Direction
lara
1
510
Building an army of robots
kneath
306
45k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Code Review Best Practice
trishagee
69
19k
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