はじめてのプログラミングを「文言」(漢文プログラミング言語)で 1日目


はじめに

 はい、前回はコードを一切書かなかったのにも関わらず、なかなかの反響をいただきました。ありがとうございます。
今回は、環境構築に始まり、ちょっとずつコードを書き始めていきたいと思います。

環境構築

wenyanリポジトリをクローンして、(私は行儀が悪いのでCドライブ直下に置きました。Program files下はなんかダメでした)
コマンドプロンプトを管理者権限で実行、クローン先ディレクトリで

npm install -g @wenyan/cli

を実行。なんかズザーッっとなったので、

wenyanて打つと

 ,_ ,_
 \/ ==
 /\ []

WENYAN LANG 文言 Compiler v0.3.3

Usage: wenyan [options] [files...]

Options:
  -v, --version        Output the version
  -l, --lang <lang>    Target language, can be "js", "py" or "rb" (default: "js")
  -c, --compile        Output the compiled code instead of executing it
  -e, --eval <code>    Evaluate script
  -i, --interactive    Interactive REPL
  -o, --output [file]  Output compiled code or executing result to file
  -r, --render         Outputs renderings
  --roman [method]     Romanize identifiers. The method can be "pinyin", "baxter" or "unicode"
  --strict             Enable static typechecking (default: false)
  --allowHttp          Allow to import from http (default: false)
  --dir <path>         Directory to importing from, seprates with comma(,)
  --no-outputHanzi     Don't convert output to hanzi
  --log <file>         Save log to file
  --title <title>      Override title in rendering
  -h, --help           Display help

いい感じかな?というかwenyanのロゴめっちゃいいよね。かわいいのでもう一回書こう。

 ,_ ,_
 \/ ==
 /\ []

さて、「愛おしき教科書」の時間だ!

文言陰符読んでいこうかな。
まあ一回につき二項目ずつくらいかな?

明義第一

曰く、

編程者何。所以役機器也。機器者何。所以代人力也。然機器之力也廣。其算也速。唯智不逮也。故有智者慎謀遠慮。下筆千言。

(ゆる訳)プログラミングって何?機械に仕事させることだよ。機械って何?人の代わりに仕事するやつだよ。それから機械の力ってすごいんだよ。計算早くて人間の思考じゃ追いつけないよ、だから頭いいやつは筆でたくさん書くのを遠慮するよ!

にはじまり、ちまちまプログラミングの利点とかあらましについて述べてる。人間の言語わからんから機械にも分かる言語使うよ!でも機械に寄せすぎると読みづらいから中庸を取るよ!とかね。ちなみに西洋人が作ったものだから訳語作るねとか言ってるね。ちなみに「代碼」はコード、「編譯器」はコンパイラー、「運行」は実行、「報錯」はエラーメッセージっぽいね。かっこいいね(小並感)

古之啟蒙。無不以最易始。
(古の啓蒙、最も易きを以て始めざるは無きなり)

とか言われた。Hello worldの時間だ!

Helloworld

吾有一数。曰三。名之曰「甲」。
為是「甲」遍。
吾有一言。曰「「問天地好在。」」書之。
云云。

これが例になってた。これを実行すると、

問天地好在。
問天地好在。
問天地好在。

まあ、そうよね。

えっと、ループなしはこうで良いっぽいね。

吾有一言。曰「「問天地好在。」」書之。

あ、一応環境作ったけどめんどいのでオンラインエディタで書いてます。
はい、ちゃんと動くね。

甲は変数で、別に使い回さないなら簡単に

為是三遍。
吾有一言。曰「「問天地好在。」」書之。
云云。

でもよい。うんうん分かりやすい。

ちなみに、例に千回出力があったのでやってみたらまあまあ処理時間かかったよ。
あとは省いてもいいってさ。鉤括弧は必要だってさ。

変数第二

やっとプログラミングっぽくなってきたな。

易曰。變化者。進退之象也。
(易曰く、変化は進退の象なり。)

じゃあないんだよな。易経をお気軽引用するな。だから執筆者は情報科挙を()

ふむ、「爻」、「列」、「物」、「術」とな。
「爻」は陰陽、「列」は釈迦の数珠とか長蛇の陣みたいに同種の並び、「物」は姓名とか歯とか男女みたいなペア、「術」は方術と……
例えの癖強いな?

さてさて、
全部

吾有一数。曰三。名之曰「甲」。

みたいに書けて、名付けないでいいなら単に

吾有一数。曰三。

はい。

吾有三数。曰三。曰九。曰二十七。名之曰「甲」。曰「乙」。曰「丙」。

とも書ける。便利ね。
吾有一数曰有数でもいいのね。

昔之「甲」者。今四是矣。

これで書き換えれるのね。だるそう。

うーん、まだ何もできないなあ。
なんかできるんかなあ。

次回予告

次回、算術と決策!!絶対見てくれよな!
このプログラミング言語をマスターして、他の言語を見たときに「あー、これを名づけて曰くかあ。」とか言えるようになりたいですね。
漢文の解説、もっとして欲しい? え、いらない? ……そっかあ。

続く