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
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
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
640
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
10
4.1k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.9k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
760
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
200
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
110
ふつうのFeature Flag実践入門
irof
7
3.9k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
550
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Paper Plane
katiecoart
PRO
1
51k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
390
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
The Language of Interfaces
destraynor
162
27k
We Have a Design System, Now What?
morganepeng
55
8.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Rails Girls Zürich Keynote
gr2m
96
14k
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