私たち全員が話しているのはC、C +、Java、Pythonなどだけですが、それまでの間、複雑であるだけでなく、ほとんどのプログラマーがアクセスできないと呼ぶことができる言語が本質的にあります。それらは難解なプログラミング言語(またはesolangの略でezolangi)と呼ばれます。
難解な言語は、通常のプログラミングタスクを実行するのに役立ちません。それらは、概念の証明または単に娯楽目的で作成されます。
以下は、最も困難なプログラミング言語の5つのリストです(翻訳者注:著者が言及していない、より価値のある候補者がいる場合は、コメントでそれらについて聞いてみたいです)。「ハローワールド!」を書いてみました。それらのそれぞれに-それは楽しかったです。
マルボルジ
この言語は、1998年にBenOlmstedによって造られました。それはすべての中で最も難しいと考えられています。彼らは、作者自身が彼の発案で単一のプログラムを書いたのではないと言います。Hello World!という単語を表示するコードは、Olmstedが言語を完成させてから2年後に登場しました。
これがHelloWorld!を表示するためのコードスニペットです。Malbolgeについて:
(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
そしてこれはそれが与えるものです:
これと以下のすべてのコードスニペットは作成者によって作成され、tio.runで実行されます。
インターカル
JimLyonとJohnWoodsは、さまざまなプログラミング言語のパロディーとして1972年にINTERCALを開発しました。もともとは「はっきりとした縮みのないコンパイルされた言語」と呼ばれていました。
INTERCALは、プログラマーの生活を困難にするように設計された機能を特別に実装しています。たとえば、PLEASE修飾子などを使用します。コンパイラは、適切な規則性なしにコード内でPLEASEが発生した場合、コードを拒否できます。説明?「礼儀正しくありません。」PLEASE修飾子がコードに頻繁に表示される場合、コンパイラーはコードを「丁寧すぎる」として拒否します。
これがHelloWorld!を表示するためのコードスニペットです。インターカル:
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP
そしてこれはそれが与えるものです:
Brainfuck
Brainfuckは、他のプログラマーにとって楽しいことを意図したUrbanMüllerによって1993年に生まれました。すでに名前から、言語がそれを扱う人々が何が起こっているのかを理解することを可能な限り困難にすることを目的としていることは明らかです。
言語全体は、任意の操作を実装するために使用される8つの個別の文字で構成されています。Muellerが独自に開発した最初のコンパイラは、わずか296バイトの長さでした。
これがHelloWorld!を表示するためのコードスニペットです。Brainfuckで:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
そして、これがそれが与えるものです:
牛
COWは、2003年にSeanGeberによって作成されました。この言語の名前の意味は、コードを見ると明らかになります。難易度の点では、COWはBrainfuckに匹敵します。定量的には、COWにはさらに4つのコマンドがあり、言語全体で合計12個です。
これがHelloWorld!を表示するためのコードスニペットです。COWで:
MoO MoO MoO MoO MoO MoO MoO MoO MOO moO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO
MoO MoO moO MoO MoO MoO MoO mOo mOo mOo mOo mOo MOo moo moO moO moO moO Moo moO MOO mOo MoO moO MOo moo mOo MOo MOo MOo Moo MoO MoO
MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo MMM mOo mOo mOo MoO MoO MoO MoO Moo moO Moo MOO moO moO MOo mOo mOo MOo moo moO moO MoO
MoO MoO MoO MoO MoO MoO MoO Moo MMM MMM Moo MoO MoO MoO Moo MMM MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo mOo MoO Moo
そして、これがそれが与えるものです:
ホワイトスペース
Whitespaceはダーラム大学で公開されました。その著者はChrisMorrisとEdwinBradyです。2003年4月1日に一般公開されました。
基本的な考え方は、スペース、タブ、およびニューラインを言語で組み合わせてプログラムを作成することです。インタプリタは他のすべての文字を無視し、コードへのコメントとして扱います。
これがHelloWorld!を表示するためのコードスニペットです。ホワイトスペースで。以下の抜粋では、各スペース、タブ、および改行の前に、それぞれS、T、およびLが付いています。
S S S T S S T S S S L
T L
S S S S S T T S S T S T L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S T T T T L
T L
S S S S S T S T T S S L
T L
S S S S S T S S S S S L
T L
S S S S S T T T S T T T L
T L
S S S S S T T S T T T T L
T L
S S S S S T T T S S T S L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S S T S S L
T L
S S S S S T S S S S T L
T L
S S L
L
L
そして、これがそれが与えるものです:
これらに類似した他の多くの難解な言語があります。リンクをたどって、それらに慣れることができます。このサイトでは、ほぼすべての言語のコンパイラーとインタープリターを見つけることができます。ウィキペディアのページからコードをコピーして、心ゆくまで遊んでください。