Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

767 views

Published on

オープンセミナー2014@広島のLTスライドです

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. いろいろな言語でBrainfuck オープンセミナー2014@広島 懇親会 @PG_nonen 2014/02/01
  2. 2. 自己紹介 ● {-口頭で簡単に自己紹介します-}
  3. 3. Brainfuckとは ● チューリング完全な小さな言語 ● 8文字しか使わない ● 内部のメモリを構成するテープ上を移動したり、 値を変更したりループしたりする ● チューリングマシンの定義をそのまま言語にし たかのような言語 ● 詳しくはWikipediaで調べて下さい
  4. 4. いろいろな言語でBrainfuck ● 以下の言語で実装しました ○ ○ ○ ○ C C++(実行時処理) C++(TMPによるコンパイル時処理) Haskell
  5. 5. いろいろな言語でBrainfuck ● C ○ 自前のメモリ管理が必要
  6. 6. いろいろな言語でBrainfuck ● C++(実行時) ○ メモリ管理処理の大部分をSTLに移譲することが可 能
  7. 7. いろいろな言語でBrainfuck ● C++(コンパイル時) ○ メモリ管理の仕組みがないので複雑な処理を行うと コンパイラがクラッシュ ○ 入出力を工夫しなければならない ■ 実行関数に入力値も引数として渡し、戻り値とし て出力値を得る
  8. 8. いろいろな言語でBrainfuck ● Haskell ○ メモリ管理などは一番楽(GCつき) ○ 入出力にByteStringを使うものの、ByteString.Lazy で入力をしようと思ったら謎のエラーが出るので ByteString.Strictを使わざるを得ない ■ 入力が終了するまで出力されない
  9. 9. いろいろな言語でBrainfuck ● 感想 ○ C ■ リソース管理面倒くさい ○ 実行時C++ ■ STL便利 ○ コンパイル時C++ ■ コンパイル時処理楽しい! ○ Haskell ■ ByteStringややこしい
  10. 10. いろいろな言語でBrainfuck ● 結論 ○ Brainfuckを実装するなら実行時もしくはコンパイル時の C++で!
  11. 11. いろいろな言語でBrainfuck ● ソースコード ○ 彼女募集中リポジトリに置いてあります ■ https://github. com/minamiyama1994/girlfriend_require/tree/ma ster/skill_appeal/Brainfuck ○ 彼女募集中です、よろしくお願いしますm(_ _)m
  12. 12. ご清聴 ありがとうございました

×