初探#
今日ソーシャルプラットフォームを閲覧していると、偶然に心温まるミームを見つけました:
東北方言に少し慣れることで、私たちは簡単にこのようなコード表現に変換できます:
def print_fibonacci_sequence(n):
if n < 1:
raise ValueError("無効な入力です!正の整数を入力してください。")
fibonacci_sequence = []
current = 0
next_num = 1
fibonacci_sequence.append(current + next_num)
for _ in range(2, n+1):
current, next_num = next_num, current + next_num
fibonacci_sequence.append(next_num)
return ', '.join(map(str, fibonacci_sequence))
print("0の結果を確認中:")
try:
print(print_fibonacci_sequence(0))
except ValueError as e:
print(e)
print("15の結果を確認中:")
print(print_fibonacci_sequence(15))
# 原文のコードに完全に対応していない
尋根#
しかし、ミームのコード構造が明確でコードハイライトが付いているため、これは単なるジョーク作品ではないと感じ、インターネットでさらに探求することにしました。すると、関連する実際のプロジェクトを偶然見つけました:
东北方言编程语言
dongbei
とは何ですか?それは東北方言の語彙を基本キーワードとした人間中心のプログラミング言語です。このものは、世界の方言プログラミングマップの大きな空白を埋めています!こう言っておきましょう、もし誰かが
dongbei
プログラムを見て笑いをこらえられたら、私は彼を純粋な男だと敬います!それにはどんな特徴がありますか?たくさんあります:
簡単です!小学校の学歴で大丈夫。あなたは春の祭典を理解できますか?できる?それなら問題ありません。
読みやすいです!見ているうちに思わず声に出してしまいます。
楽しいです!ええ、人生で最も重要なのは楽しむことです。
オープンソースです!お金は取らず、恥もかかず -- いつでもどこでも東北語の達人の指摘を歓迎します。
要するに、dongbei 言語は非常に高い娯楽技術比(娯楽精神 - 技術含量比)を持っています。
dongbei
プログラミング言語の開発は、業界をリードする TDD(TreeNewBee-Driven Development) 方法を採用しています。具体的には、各機能はまず文書を作成し、何もない状態から大風呂敷を広げ、その後その大風呂敷に基づいてテストケースを書き、最後に機能を実装して大風呂敷を破らないようにします。これには二つの大きな利点があります:第一に、各機能は的を絞っており、tree new bee の機能は一切ありません。第二に、各機能には文書が責任を持って誇張するため、開発者は決して深い闇に隠れて無名ではありません。
検索を経て、私はこのプロジェクトからのサンプルファイルを見つけました:
これにより、ミームのコードがこの名の dongbei プロジェクトから来ていることが確認されました。
問底#
プロジェクトの文書に従い、私はdongbei
のコードベースをローカルにクローンし、src/dongbei.py
を実行することで、この楽しいプログラミング言語を自分で体験することができました。
しかし、dongbei
の機能はこれだけではありません。dongbei 言語咬文嚼字を読むことで、この言語が非常に完成度が高く、さまざまな複雑なプログラミングの挑戦に対応できることがわかります。
例えば:
https://github.com/zhanyong-wan/dongbei/blob/master/demo/%E6%B4%BB%E7%9D%80.dongbei
融會#
実際、ネット上には独自のdongbei
の他にも、多くの創造的なプログラミング言語が隠れています。これらは通常「Esolang」——Esoeric programming language として分類され、奇妙なアイデアを試みたり、プログラミングが難しかったり、ジョークとして作られたりします。
Cantonese#
dongbei
のモデルを参考にした、もう一つの革新的なプロジェクト ——Cantonese
があります。これは開発者が広東語でプログラミングできるようにし、地域方言をプログラミング言語の世界にさらに取り入れています。作者は今でもそれを維持しています。
粤语編程語言.The Cantonese programming language.
この言語で「Hello World!」を出力するコード:
畀我睇下「"Hello World!"」點樣先?
收工
Ook!#
Ook!
は、極めてシンプルなプログラミング言語で、そのコア構文は三つの基本要素から成り立っています。一見すると学びやすいですが、実際の応用ではOok!
は独特の挑戦をもたらします。この言語のコマンドシステムは Ook.
、Ook!
、Ook?
の三つの要素で構成されており、コード量が増える可能性があるにもかかわらず、高性能なコードを作成することに影響を与えません。Ook! の設計原則は極限までシンプルで、その創設者は猿でも簡単に習得できると信じているため、冗長なプログラムコメントは必要ないと考えています。
この言語で「Hello World!」を出力するコード:
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook。Ook? Ook。Ook. Ook! Ook.
Brainfuck#
Ook!
と似て、Brainfuck
はシンプルで、最小限のコンパイラで実現できる、チューリング完全なプログラミング言語です。この言語は八つの演算子から構成されています。
この言語で「Hello World!」を出力するコード:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
Piet#
Piet
は、色の組み合わせを利用してプログラムの論理構造を表現する独特のプログラミング言語です。この言語は 20 種類の明度レベルの色を使用し、それぞれの色が特定の命令機能を持っています。コンパイラは色ブロック間の明度差を識別してプログラムの命令を解読します。プログラムのレイアウトと構造は完全に色ブロックの形状と配置に依存し、白黒の境界が異なるコードブロックを区別する線となります。Piet
でプログラムを書くことは可能ですが、異なるインタプリタが色を解釈する際に差異があるため、実際の計算においては正確性に欠けます。したがって、Piet
は実際の問題を解決するためのツールとしてではなく、プログラミングの新しい方法と視覚芸術の表現形式を探求するための創造的なツールと見なされています。その存在は伝統的なプログラミング言語の境界に挑戦し、プログラミングプロセスをより豊かで表現力豊かにします。
この言語で「Hello World!」を出力するいくつかの「コード」:
::: grid {cols=3,rows=2, gap=12,type=images}
:::
Velato#
Velato
は、開発者が音楽を通じてコードを書くことを可能にする革新的なプログラミング言語です。この言語は MIDI ファイルを分析してソースコードを読み取り、メロディを作成しながらプログラムを書くことができます。音符の順序、間隔、音高(プログラミングの文字として見なされる)に基づいてコードを処理します。Velato
は基本的なプログラミング構造、例えば式、数値、変数宣言をサポートしていますが、現在のところ関数や配列はサポートしていません。また、実際の音楽作品を機能的なプログラムに変換することには適していません。
この言語で「Hello World!」を出力する「コード」:
その他の言語#
他の Esolang についてはthe esoteric programming languages wikiを参照してください。
Esolang Wiki によると、Esolang は通常以下のいくつかのカテゴリに分けられます:
-
Minimalism
多くの神秘的な言語の設計目標は、できるだけ少ない命令です。例えばBrainfuck
、OISC
、Lazy K
などがこのタイプに属します。これらの言語がチューリング完全である場合、しばしば「チューリング泥沼」と呼ばれます。 -
New concepts
代替的な方法でプログラミング言語を設計することは神秘的なプログラミングで人気があります。Befunge
、Thue
、Unlambda
などは良い例です。 -
Weirdness
一部の言語は主に奇妙さやプログラミングの難しさを追求するために作られています。INTERCAL
の目的は、一般的な言語とは全く異なることです(ただし、伝統的な言語との類似点も多くあります)。Malbolge
の設計目的は極度に使いにくくすることです。 -
Themed
一部の言語はコンピュータに関連しないテーマに基づいています。例えばvar'aq
は架空のクリンゴン語に基づいています。Shakespeare
はシェイクスピアの劇スタイルを模倣し、Chef
プログラムは料理レシピのように見えます。dongbei
もこのカテゴリに属します。 -
Brevity
多くの神秘的な言語は、できるだけ短く設計されることを目指しています。これらは「ゴルフ言語」と呼ばれ、プログラミングタスクを解決するためにできるだけ少ない文字やバイトで完了する競技にしばしば使用されます。CJam
、Pyth
、GolfScript
などが含まれます。 -
Jokes
多くの神秘的な言語は純粋にジョークとして作成されています。その中にはプログラミングに使用できるものもあれば、l33t
やOok!
のように、他のものはHQ9+
やBitxtreme
のようにそうではありません。 -
Obfuscation
一部の神秘的な言語は、読みづらく(書きづらいまたは理解しづらいのではなく)設計されています。Unreadable
はこの点での典型的な例です。
納要#
dongbei
はpython
を基にしたプログラミング言語です。「これはあまりにも非公式ではないか」と思う人もいるかもしれません。しかし、実際には、dongbei
は娯楽や探求を目的に設計されたプログラミング言語であり、真剣なアプリケーションの開発には適していません。安定性、耐障害性、機能性が必要なプロジェクトを開発する際、ほとんどの人はpython
、C++
、JavaScript
などの成熟した安定した言語を選ぶでしょう。
この記事は Mix Space によって xLog に同期更新されました
元のリンクは https://nishikori.tech/posts/tech/dongbei