Brainf*ckにコンパイルできる言語CamphorScriptを昔作った話
@elipmoc101 @nka0i 私が昔作ったやつもよかったら github.com/hsjoihs/campho…
2018-02-06 20:13:05しかし、過去に書いたHaskellのコード、65ファイル180KBとかいう意味の分からない肥大化をしていてアレ github.com/hsjoihs/campho…
2018-02-13 13:17:02CamphorScript、せっかくなら構造体とかも実装したいんだよなぁ
2018-02-13 20:25:17@Kory__3 「Brainf**ck、コードの再利用さえできれば普通に楽しい言語なのになぁ」という思いを元に、演算子オーバーロードとインライン関数とかを大量導入したラッパー言語作ったことはありますね(全くメンテしてない) github.com/hsjoihs/campho…
2018-02-13 20:33:37開発者の、上級者の脳に否定的なスタンスから、頭がなくても書きやすい言語として設計されたためこのような名称になった(いいえ) twitter.com/Kory__3/status…
2018-02-13 20:35:46Brainf**k、IOの状態を気にするとかそんな甘ったるいレベルじゃなく、メモリ上の全状態をコード書きが把握しているのを要求してくる。アレつらい。
2018-02-13 20:38:20@Kory__3 CamphorScriptはそれを抽象化する設計にしています(変数宣言が事実上のmallocで、それをfreeする場所を手動で指定してやればあとはコンパイラがテキトーにアドレスを割り振ってくれる)
2018-02-13 20:40:54CamphorScriptなつかしいなぁ、オーストラリア研修のときに思いついたやつだから、中3〜高1に作ったのかな
2018-02-13 20:43:09@Kory__3 Brainf*ckは未使用のメモリが0で初期化されているので、freeする際にはメモリの中身が0であることをプログラマが保証してあげないといけません。そのためにdelete文という文があって、ブロック内で新規に獲得したメモリはブロックを抜けるまでの間にdeleteしないとコンパイルエラーです。
2018-02-13 20:46:15@Kory__3 これにより、Brainf*ckであってもそれなりのモジュール化が実現できたりします
2018-02-13 20:46:58@Kory__3 あと、if書くのにもイディオムが要る以上、制御構文も自作できるようにしてあります
2018-02-13 20:48:42n年前の私によるポエム hsjoihs.github.io/camphorscript/…
2018-02-13 20:50:50メインの開発期間は 2014/03/02 ~ 2014/10/11 かぁ、なつかしいなぁ
2018-02-13 20:54:31そういえば、面接のときにもCamphorScriptの話をしたなぁ、あれはちょうど去年の今頃か
2018-02-13 20:57:08設計思想は ・コードの再利用を可能にする ・あくまでBrainf*ckに寄り添った書き方を可能にする ・コア言語は小さく。なるべくライブラリに押し付けよう
2018-02-13 20:59:16