プログラミング

【C++】難解プログラミング言語を作ろう!【brainf*ckベース】

難解プログラミング言語

難解プログラミング言語

難解(難読)プログラミング言語 (esolang: Esoteric programming language)とは,その名の通りとても読みづらいプログラミング言語を指します.

いわゆる,ジョーク言語です.

最も有名なのはBrainfuckだと思いますが,「Hello, world!」ならこんな感じです.

「難解」と言われるのもなんとなくわかります.

ただ,Brainfuckの命令はとてもシンプルで8つの命令で成り立っており,チューリング完全な言語です.

したがって難解プログラミング言語初心者にはもってこいなわけです(?)

まずはBrainfuckのインタプリタを作る

Brainfuckについて知らない方は,僕が昔書いた記事を読んでください.

  1. まるで暗号.今更ながら難読プログラミング言語Brainf*ckを解読してみる

ともかく,8つの命令に対してポインタを操作していけば良いので,そんなに難しくないはずです.

そして,きっと誰かすでに綺麗なコードを実装しているだろうという甘い考えのもと,とりあえず実装しました.笑

といっても,最終的にオリジナルな難解プログラミング言語を作るわけなので,それがしやすいように修正はします.

とりあえずこんな感じ.

コードの冒頭で,8つの命令を定義しているので,簡単に好きなものに変えられます.

コードやサンプルコードはGithubにあげています.

  1. HiroshiARAKI/esolang_interpreter: Let’s make your Esolang!

とりあえずBrainfuckを実行してみる

先のGithubのコードに沿っていきます.

大したコードじゃないくせにCmakeListsを無駄に用意しているので使ってください.笑
(CLionが勝手に作ってくれるので...)

良い感じです.

適当に命令をいじってみる

それでは今回の本命である,オリジナルの難解プログラミング言語を作ってみましょう.

ためしに,

にしてみます.

するとさっきの「Hello, world」コードは以下のように書かなければいけません.

オリジナルの暗号 (esolang) ができました!

コンパイルし直してインタプリタに通すと,しっかり「Hello, world」が出力されます.

おわりに

今回は「オリジナルの難解で変態なプログラミング言語作りてぇ!」という皆さんに記事を書きました.

これで皆さんも難解プログラミング言語を作りましょう.


スポンサードリンク