0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C# で Brainfuck のインタプリタ作って Nuget に公開した

Last updated at Posted at 2020-02-12

なんでそんなもん作ったの?

大昔にこんなものを作りました。

響ちゃんマジ天使言語

何かというと、Brainfuck の各トークンをアイマスの我那覇響ちゃんへの愛を叫ぶ言葉に置換して、コーディングできるようにしたものです。
ずいぶん前に話題になったおっぱい言語みたいなやつですね。

で、これ自体は WinForms のコードビハインドにゴリゴリ実装した、「MVVM? WPF? なにそれ、おいしいの?」状態のなかなかなシロモノです。
そんなものなので、ずっとリファインしたかったんです。

また、当時から時が経ち、 .Net Core がリリースされて、 C# でマルチプラットフォームに対応するのが劇的に簡単になりました。

というわけで、リファインするにあたって、次のような目標を立てました。

  • 解析する部分はクラスライブラリとして外に出す
  • フレームワークは .Net Core としてマルチプラットフォームで実行できるようにする
  • トークンの定義を設定ファイルに切り出し、ユーザが好きにカスタマイズできるようにする

BFCore 爆誕

そして、出来上がったものがこちら。(キュー〇ー3分クッキング)

ソースコードはこちら
Nuget はこちら

上記の目標は一応達成できました。
ちなみに、フレームワークは .Net Core から .Net Standard 1.3 まで落としました。

サンプルアプリとして、 BFCore を使用してリファインした響ちゃんマジ天使言語もあります。
まあ、笑ってやってください。

実装に関してはそんなに工夫してないというか、まあ、ごり押しに近いです。
プルリクエストなど頂ければ泣いて喜びます。

使い勝手がいいかはあまりわかりません。
というか、他の人の感想が知りたくて、宣伝のために記事を書いたようなものだったり……

使い方に関しては、 GitHub の README に詳しく書いているので、そちらを参考にしてください。

さいごに

内容がめちゃくちゃ薄くて申し訳ありません。
直接は関係ありませんが、 GitHub の Actions で master にマージしたら自動で Nuget に公開されるようにしました。
たぶん、こっちのほうが需要が高い気がするので、そちらについてまたあとで記事にしたいと思います。

それでは。

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?