【難解言語】Funges実行/開発環境を列挙してみる

難解言語ファミリーのFunges――――日本ではBefungeばかりが有名なこいつらの実行・開発環境を、メモついでに列挙します。
流行れ…Funge流行れ…

#[Befunge Playground](https://www.bedroomlan.org/tools/befunge-playground/)
**作者**:Alexios,**最終更新**:2015年5月9日,**言語**:Javascript,**バージョン**:Befunge-93からBefunge-97の間(部分的に98の仕様が入っている)

* Web上で実行可能なインタプリタ/コードエディタ
* 気軽に使える
* シンタックスハイライトあり、色遣いがいい感じ
* デザインがきれい
* Chromeではペーストの挙動がおかしい
* バグがものすごく多い、特に`&`や`~`を読ませると無限ループになるのは深刻すぎる
* 本来の93にない命令(`;`など)が含まれている


#[BeQunge](https://github.com/hatstand/Bequnge)
**作者**: David Sansome,**最終更新**:2020年2月2日,**言語**:C++,**バージョン**:Funge-98

- インタプリタ/コードエディタ/デバッガ
- 書いてて楽しくなる独特なFunge-Spaceの表現
- Trefungeのコードがわかりやすく見れる
- 文字が割と見にくい
- スクロールが直感的

#[BefungeSharp](https://github.com/tngreene/BefungeSharp)
**作者**:tngreene,**最終更新**:2017年5月10日,**言語**:C#,**バージョン**:Funge-93/98

* IDE
* シンタックスハイライトあり
* シンプルながら必要な情報が詰まっているUI
* アウトプットが少し使いづらい
* ページ切り替えがあまり直感的でない
* UIに既視感があると思ったらこれアレですね、biimシステム
* 行をずらすのが非常にやりにくい

#[visual-befunge93-interpreter](https://qiao.github.io/javascript-playground/visual-befunge93-interpreter/)
**作者**:qiao,**最終更新**:2011年8月19日,**言語**:Javascript,**バージョン**:Befunge-93

* Web上で実行可能なインタプリタ/コードエディタ
* Befunge Playgroundのペーストバグがこっちにはないため、より気軽に使える
* 「コードをボックスにペーストした後、`init`ボタンでグリッドに収める」という仕様上、[この記事](https://qiita.com/NanimonoDaemon/items/3d80d20347576360cb9b)みたいに日本語が等幅でないことによる表示のズレとかが発生しない
* ただし実行速度の設定はStepとRunの二種類だけ
* Web上のインタプリタでは、シンタックスハイライト・`;`などの命令を取るならばPlayground、全体的な汎用性やバグの少なさを取るならvisual-befunge93-interpreter、という感じか？


#[VSCode-Befunge](https://marketplace.visualstudio.com/items?itemName=kagof.befunge)
**作者**:kagof,**最終更新**:2019年12月29日,**言語**:TypeScript,**バージョン**:Befunge-93/Befunge-98

* おそらくVSCode唯一のBefunge拡張機能
* 言語としてBefungeを選択可能にし、シンタックスハイライトも設定可能にする
* 方向転換文字の「向き」を示す線を引いてくれる機能が地味に便利
* インタプリタではない

#[Fungs](http://web.archive.org/web/20070322234225/http://www.teepop.net/fungus/)
**作者**:K.Magnus Auvinen,**最終更新**:不明,**言語**:不明,**バージョン**:Befunge-98

* エディタ/デバッガ
* Win32用アプリケーション
* フォーラムで競ったときに作られたらしい
* 実行時にコードを「実行済み」「書き換え済み」「読み込み済み」に色分けする機能が特徴
* フロートラッキング機能も
* ロゴがかっこいい
* 仕様が完全じゃない
* いろいろと不完全なまま開発が終わった

#[CCBI](https://deewiant.iki.fi/projects/ccbi/)
**作者**:Matti Niemenmaa,**最終更新**:2014年12月29日,**言語**:D,**バージョン**:Funge-98(WindowsバイナリはBefunge-98のみ)

* まさかのD言語実装
* とても速い
* 標準準拠
* cfunge(後述)に速度で抜かされることもある
* Rc/Funge-98(後述)よりはサポートするフィンガープリントは少ない

#[BefunExec](https://github.com/Mikescher/BefunExec)
**作者**:Mikescher,**最終更新**:2019年3月20日,**言語**:C#,**バージョン**:Befunge-93

* インタプリタ/デバッガ
* シンタックスハイライト・実行速度調節・グリッドの拡大・フロートラッキングなどの多種多様な機能
* Befunge-93オンリーの実行環境としては最強かもしれない
* 実行過程をGIF出力するという痒い所に手が届く感じの機能も
* 非常に高速
* Execの作者の[ホームページ](https://www.mikescher.de/programs/view/BefunUtils)には、ほかにも様々なBefunge-93用ツールがある

#未テスト
コンパイルが面倒だったり失敗したりしたものはこの項に置いておきます。筆者がWindowsを使用していることも一因にある気がするので、成功した方はぜひ報告をください
##[PyFunge](http://mearie.org/projects/pyfunge/)
**作者**:Kang Seonghoon,**最終更新**:2009年4月24日,**言語**:Python,**バージョン**:Befunge-93/Funge-98

* インタプリタ
* 詳細不明、インストールにPython2を要するのが普通に面倒だったのでインストールしていない
* 主要なフィンガープリントのほとんどが同梱されているらしい
* ドキュメントを読む限り、なかなか仕様に忠実

##[cfunge](https://github.com/VorpalBlade/cfunge)
**作者**:VorpalBlade,**最終更新**:2020年3月30日,**言語**:C,**バージョン**:Befunge-93/Befunge-98

* インタプリタ
* 「Windowsでは恐らく動作しない」らしい
* 高速
* ほとんどのフィンガープリントを実装予定
* 「サンドボックスモード」も搭載

##[Rc/Funge-98](http://rcfunge98.com/)
**作者**:Michael H. Riley,**最終更新**:2010年4月16日,**言語**:C,**バージョン**:Funge-98

* インタプリタ/デバッガ
* Makeに失敗したので未検証
* オリジナルは1998年後半に作られた
* 並列Fungeをサポートする一番最初のインタプリタらしい
* 割と速い
* タイムトラベル・フィンガープリントをサポート


#あとがき
えーいかがでしたでしょうか、インターネットにあるFungesの開発環境を紹介させていただきました
私が紹介したもののほかにも大量のインタプリタやデバッガが存在しますので、使い勝手のいいものをその中から見つけたらぜひ教えてください
では