SlideShare a Scribd company logo
1 of 12
Download to read offline
いろいろな言語でBrainfuck
オープンセミナー2014@広島 懇親会
@PG_nonen
2014/02/01
自己紹介
● {-口頭で簡単に自己紹介します-}
Brainfuckとは
● チューリング完全な小さな言語
● 8文字しか使わない
● 内部のメモリを構成するテープ上を移動したり、
値を変更したりループしたりする
● チューリングマシンの定義をそのまま言語にし
たかのような言語
● 詳しくはWikipediaで調べて下さい
いろいろな言語でBrainfuck
● 以下の言語で実装しました
○
○
○
○

C
C++(実行時処理)
C++(TMPによるコンパイル時処理)
Haskell
いろいろな言語でBrainfuck
● C
○ 自前のメモリ管理が必要
いろいろな言語でBrainfuck
● C++(実行時)
○ メモリ管理処理の大部分をSTLに移譲することが可
能
いろいろな言語でBrainfuck
● C++(コンパイル時)
○ メモリ管理の仕組みがないので複雑な処理を行うと
コンパイラがクラッシュ
○ 入出力を工夫しなければならない
■ 実行関数に入力値も引数として渡し、戻り値とし
て出力値を得る
いろいろな言語でBrainfuck
● Haskell
○ メモリ管理などは一番楽(GCつき)
○ 入出力にByteStringを使うものの、ByteString.Lazy
で入力をしようと思ったら謎のエラーが出るので
ByteString.Strictを使わざるを得ない
■ 入力が終了するまで出力されない
いろいろな言語でBrainfuck
● 感想
○ C
■ リソース管理面倒くさい
○ 実行時C++
■ STL便利
○ コンパイル時C++
■ コンパイル時処理楽しい!
○ Haskell
■ ByteStringややこしい
いろいろな言語でBrainfuck
● 結論
○ Brainfuckを実装するなら実行時もしくはコンパイル時の
C++で!
いろいろな言語でBrainfuck
● ソースコード
○ 彼女募集中リポジトリに置いてあります
■ https://github.
com/minamiyama1994/girlfriend_require/tree/ma
ster/skill_appeal/Brainfuck
○ 彼女募集中です、よろしくお願いしますm(_ _)m
ご清聴
ありがとうございました

More Related Content

More from 真一 北原

型安全Printf作ってみた
型安全Printf作ってみた型安全Printf作ってみた
型安全Printf作ってみた
真一 北原
 
能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた
真一 北原
 

More from 真一 北原 (13)

Database.persistentの話
Database.persistentの話Database.persistentの話
Database.persistentの話
 
能年玲奈ちゃん駆動開発
能年玲奈ちゃん駆動開発能年玲奈ちゃん駆動開発
能年玲奈ちゃん駆動開発
 
型! 型!
型! 型!型! 型!
型! 型!
 
型!
型!型!
型!
 
templateを依存型っぽく使ってみる
templateを依存型っぽく使ってみるtemplateを依存型っぽく使ってみる
templateを依存型っぽく使ってみる
 
すごいMonad入門
すごいMonad入門すごいMonad入門
すごいMonad入門
 
すごいCoq入門
すごいCoq入門すごいCoq入門
すごいCoq入門
 
Lt駆動開発03 コンパイル時fizz buzzやってみた
Lt駆動開発03 コンパイル時fizz buzzやってみたLt駆動開発03 コンパイル時fizz buzzやってみた
Lt駆動開発03 コンパイル時fizz buzzやってみた
 
Lt駆動開発03 サイト運営してみた結果
Lt駆動開発03 サイト運営してみた結果Lt駆動開発03 サイト運営してみた結果
Lt駆動開発03 サイト運営してみた結果
 
型安全Printf作ってみた
型安全Printf作ってみた型安全Printf作ってみた
型安全Printf作ってみた
 
能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた
 
第2回 mix c++勉強会@tokyo 資料
第2回 mix c++勉強会@tokyo 資料第2回 mix c++勉強会@tokyo 資料
第2回 mix c++勉強会@tokyo 資料
 
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
 

Recently uploaded

Recently uploaded (11)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

オープンセミナー2014@広島 懇親会 LT