Katakamuna Lang — a Turing-complete esoteric programming language based on the 73 phonemes of the ancient Japanese Katakamuna script
Project description
カタカムナラング (KatakamunaLang)
73音(48清音 + 20濁音 + 5半濁音)のカタカナ音素を1文字1命令とするエソテリック・プログラミング言語。 各音素の「思念」(その音が宇宙的に持つ意味)が命令の意味に直結する。 Minsky 2カウンタマシン経路により Turing完全 (v2.0)。
特徴
- 73音素 = 73命令。音素の思念がそのまま命令の意味になる
- 主語の不在。発話者を明示しない。「それ(sore)」という暗黙の指向対象が動く
- 否定の不在。
if notのような否定構文を持たない。すべて肯定で表現する - Turing完全(v2.0)。Minsky 2カウンタマシンを完全エミュレート
計算モデル
- 場(Ba): プログラムの実行空間。ノードのグラフ。
- ノード: ラベルと自然数カウンタ(counter)を持つ存在。
- それ(sore): 現在の指向対象。
テ命令で切り替わる。 - 響バッファ(hibiki): スタック型の一時バッファ。
インストール
pip install katakamuna-lang
インストール後は katakamuna コマンドが使えるようになる。
katakamuna exec examples/minsky_add.ktkm
katakamuna run "アカカカシ"
katakamuna repl
実行(ソースから)
# ファイル実行
PYTHONIOENCODING=utf-8 python katakamuna.py exec examples/minsky_add.ktkm
# 音素列の直接実行
PYTHONIOENCODING=utf-8 python katakamuna.py run "アカシン"
# REPL
PYTHONIOENCODING=utf-8 python katakamuna.py repl
# 73音一覧
PYTHONIOENCODING=utf-8 python katakamuna.py list
Python 3.11+ が必要。追加の依存なし。
Turing完全性(v2.0)
独立した二つの経路で証明されている。毎プッシュ GitHub Actions で自動検証。
経路1: Minsky 2カウンタマシン
| マクロ | 音素列 | 意味 |
|---|---|---|
INC(r) |
テ「r」カ |
レジスタ r を +1 |
DEC(r) |
テ「r」ヘ |
レジスタ r を -1(下限0) |
JZ(r,L) |
テ「r」エ「L」 |
r == 0 ならラベル L へ跳躍 |
LABEL(L) |
ミ「L」 |
ラベル L を定義 |
HALT |
ン |
停止 |
無条件ジャンプは ア「zero」 で counter=0 固定のゼロレジスタを作り、テ「zero」エ「L」 で実現する。
経路2: Brainfuck 構成的証明
tools/bf2ktkm.py が任意の Brainfuck をカタカムナラングに機械的に翻訳する。
Brainfuck は Turing完全(well-known)。翻訳規則の正確性は PROOF_BRAINFUCK.md に記述。
サンプルプログラム
# 3 + 2 = 5
ア「r1」
テ「r1」カ カ カ # r1 = 3
ア「r2」
テ「r2」カ カ # r2 = 2
ア「zero」
ミ「loop」
テ「r2」エ「done」
テ「r2」ヘ
テ「r1」カ
テ「zero」エ「loop」
ミ「done」
テ「r1」シ # → 5
ン
ファイル構成
katakamuna-lang/
├── katakamuna.py # インタプリタ本体 (v2.0)
├── tools/
│ └── bf2ktkm.py # Brainfuck → カタカムナラング コンパイラ
├── examples/
│ ├── minsky_add.ktkm # 3 + 2 = 5
│ ├── minsky_multiply.ktkm # 3 × 4 = 12
│ ├── minsky_proof.ktkm # (2 + 3) × 4 = 20
│ ├── fibonacci.ktkm # フィボナッチ数列 7項
│ ├── bf_copy.ktkm # BF ++>+++<[->+<]>. → c1 = 5
│ ├── bf_multiply.ktkm # BF 二重ループ乗算 → c2 = 6
│ └── bf_hello_digit.ktkm # BF H=72 構成
├── tests/
│ └── test_all_phonemes.py
├── SPEC.md # 言語仕様
├── PROOF.md # Minsky 経路 Turing完全性証明
└── PROOF_BRAINFUCK.md # Brainfuck 経路 Turing完全性証明
最小プログラム
ア
新しいノードを場に生み出す。カタカムナラング最小の有効プログラム。
環境変数
| 変数 | 説明 |
|---|---|
KATAKAMUNA_MAX_TICKS |
実行tick上限(0=無制限、デフォルト0)。Turing完全モードでは0が必須。 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file katakamuna_lang-2.0.0.tar.gz.
File metadata
- Download URL: katakamuna_lang-2.0.0.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3efc5a3ddf62a57b4ca4f82865d1c934752100157f6ffb1054ed3553c990885
|
|
| MD5 |
6b83aba26194c6e280cc62dae896eaff
|
|
| BLAKE2b-256 |
dd6f0aaaa2e65b798d8c5e43b2c8b2275cc8d1a726deb0894381c22a583ee266
|
File details
Details for the file katakamuna_lang-2.0.0-py3-none-any.whl.
File metadata
- Download URL: katakamuna_lang-2.0.0-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10a2464b40758a3c5eb76d8d09c0d90ecc47cd73d1ce8eff7e443865fe5688b3
|
|
| MD5 |
1843d08c9d748d0cef27b644659ac74c
|
|
| BLAKE2b-256 |
2afff7ed22960e9ae82506caf824252c2ad4f2c9bab19baeda9352bed45a92f3
|