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 真一 北原

Database.persistentの話
Database.persistentの話Database.persistentの話
Database.persistentの話真一 北原
 
能年玲奈ちゃん駆動開発
能年玲奈ちゃん駆動開発能年玲奈ちゃん駆動開発
能年玲奈ちゃん駆動開発真一 北原
 
templateを依存型っぽく使ってみる
templateを依存型っぽく使ってみるtemplateを依存型っぽく使ってみる
templateを依存型っぽく使ってみる真一 北原
 
すごいMonad入門
すごいMonad入門すごいMonad入門
すごいMonad入門真一 北原
 
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広島プレゼン資料真一 北原
 

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

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 

Recently uploaded (12)

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 

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