56
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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

ごあいさつ

はじめまして。SY(えすわい)と申します。
普段は総合創作界隈「悠里」というところで言語(プログラミング言語ではなく自然言語)を創作したり、ボードゲームを作ったりしています。かねてよりプログラミングもやってみたいなあと思ってたのですが、(周りにできる人多いし)
言語を何にしようか迷ってました。(言語オタクをこっちでも発揮していく)

せっかくGOTOキャンペーンやってるし、FORTRANとかBASICとかCOBOLやろうかとか攻めてること思ってましたが、最初のプログラミング言語としてはなあとなってました。

そこで思い出したのが「文言」(wényán)でした。

文言ってなに?

漢文ベースのプログラミング言語です。ちなみに「文言」は現代中国語では日本の「漢文」とだいたい同じ意味だったりする。
こんな感じ。

公式サイトはこちら(英/中)

何がうれしいの

……萌えません???
私は萌えます。そして何より、
読 み や す い ! !(当社比)
しかも内部的にはJavascriptで動いているらしい。オンラインエディタもある。
愛おしい教科書まである!!!

というわけでやります。やるしかないでしょ。
漢字文化圏は文化圏!!

「序」でも読むか

嬉しいことに私は英語より中国語、漢文のほうが読むのに抵抗がないので、江戸時代の人が漢訳書で西洋の学問を学んだみたいみたいに、「文言」を通じてプログラミングをはじめます。何やらおしゃれな「序」がありますね。読んでみましょうか。

夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱。蛇、象、駱、犀,各爭文采。方知鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此誠非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。然則數寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羈於遠邦,兩耳久曠于雅言。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故希孟不慚年少,莊生不望無涯。乃作斯言。誠未能嘔瀝長吉之心血,亦庶幾免於義山之流沫。既成之後,復學干將鑄劍而自飼,越王嚐糞而當先。自謂偶追《十書》之筆意,但恨少八家之淋漓。此子山所謂士衡撫掌而甘心,平子見陋而固宜。然則雖實覆甕之質,尚存斧正之望;雖乏呂相之金,易字之渴蓋同。此亦開源之大義,吾輩之所以勉勵也。一笑。

――ここにあるよ

えっと、訓読(雑)するか。リンクがあって典拠が書いてありますね。最近の紙は便利ですね。

夫れ唐、虞の世、縄を結ひて治足る。指を屈して算足る。是の時豈に料らんや百代の後、計算機械の巧なるは、公輸の木鳶よりも精く、武侯の流馬よりも善し。程式語言の多きは、繁きこと《天官》の星宿のごとく、奇しきこと《山経》の走獣に勝る。鼠、蟹、鑽、魚、或いは速きを以て称へ、蛇、象、駱、犀,各文采を争ふ。方に鬼の夜哭する所以は、天の雨粟する所以と知る。然れば文言を以て編程するは、未だ有らざる所に似たり。此の誠、文脈の伝ふる所以、文心の保つ所以に非ず。嗟、予小子、遂に斯く志有り。然れば則ち数寸の烏糸猶ほ頭を覆ふがごとく、万巻の素書未だ手に破られざる。一身長く遠邦を羈ぎ,両耳久しく雅言を曠しくす。然れば夫れ文章は吾の宿好、程式は偶時を承りて人の謬譽とする所となる。故く希孟年少を慚じず、荘生無涯を望まず。乃ち斯の言を作る。誠未だ長吉の心血を嘔瀝するに能はず、亦た庶幾はくは義山の流沫を免せ。既に成るの後,復た干将鋳剣を学びて自ら飼ひ,越王糞を嘗めて当に先んずべし。自ずから偶《十書》の筆意を追ふを謂ひ,但し八家の淋漓の少きを恨む。此れ子山の士衡掌を撫でて甘心し,平子陋きを見て固より宜しとすと謂ふ所なり。然れば則ち覆甕の質実すと雖も、尚ほ斧正の望存す。呂相の金乏しと雖も、易字の渇蓋ぞ同じくせざるや。此れ亦た開源の大義、吾輩の勉励する所以なり。一笑。

さて、訳すか。

さて、堯や舜(伝説上の君主)の時代は、縄を結えば政治には十分で、指を折り曲げていれば計算には十分だった。遠い将来に、計算機械は公輸盤の作った木の鳶(伝説によると三日間飛び続けた)よりも精巧で、孔明の木牛流馬(食料輸送を劇的に向上させたと伝えられる輸送器具)よりも立派であり、プログラミング言語は『天官』(司馬遷の史記天官書、)に載っている星座よりも多く、『山経』(伝説的な地理などを描く奇書)に載っている獣よりも奇妙であると当時どうして考えられたであろうか。Go、Rust、Ruby、fishは速さを称えられ、python、PHP、Perl、JavaScriptは彩りや装飾を争っている。ちょうど今、精霊が夜に泣くのは、天帝が粟を雨のように降らせたのであると知られている。(この引用は、倉頡――伝説上の漢字の創案者が漢字を生み出した時に起きた現象の記述であり、漢字の歴史の古さを主張する一文か。)しかし、漢文を用いてプログラミングをするのはいまだ見たことがないものだ。この事実は文脈が伝えるもの、文芸を愛好する心を保つものではない。ああ、私めは、遂にこのような志を抱いたのである。そうして、少しばかりの罫紙は頭を覆うほどになり、たくさんの本はまだ読み尽くしていない。私の身は遠い国にあって、両耳は長く中国語を聞いていない。そのため、文章は私の趣味で、思いがけずプログラミングは人は褒めてくださるようになった。昔、王希孟(宋の画家、23歳で死ぬ)は若いことを恥じず、荘子は果てががないことを望まなかった。(=若くして死んだという意?)そしてこの言語を作った。実際のところ、李賀(唐代中期の詩人)のように口から心臓を吐き出し血が滴るほど努力できていないが、また、李商隠(晩唐の政治家、詩人)のように大量の本を口が泡立つほど読んだほどな努力は、どうか私にはさせないでいただきたい。すでにこの言語ができた後、さらに、干将(呉王の命で名剣を作った夫婦のうちの一人)は剣を鋳造することを学んで自ら生計を立て、越王が呉王の糞を嘗めて病気を当てたことにより、最前面に立った。(この出来事によって越王は呉王に気に入られた様子。)自然と算経十書(漢、唐代に編まれた数学書)の文意を求めようと思ったが、それでも唐宋八大家(唐~宋の著名な文人八人)ほどの文章力がないことを残念に思っている。これは庾信(中国南北朝の文学者)が、陸機(呉から西晋の政治家・文学者・武将)が手のひらを打って大笑いしても、甘んじて受け入れ、張衡(後漢代の政治家)があざわらってももとから覚悟の上だとして詩を発表したようなものである。(=同様に、私も覚悟の上でこの言語を発表する)そうであるので、無価値な文章の中身を満たしても依然、添削の余地が残るものである。呂不韋(秦の政治家、秦朝第5代の王、荘襄王に対し金銭的支援を行った)のお金が少ないと言っても、易字の渇(文献を集め、咸陽の市に公開し、編集したものには報酬を与えた)(=報酬はあげれないけど、オープンソースな作業形態は前例がある。)とどうして同じにしないことができようか。これもまた、オープンソースとした大義名分であって、私の勉励する所以である。一笑。

……0日目キツくない???
様々に感謝。気づいたら徹夜してたよ。
情報技術者向けの科挙をこの言語の作者は受けるべき。受かるよ。

コード書いてねえな?????

今後は「愛おしい教科書」に沿ってやってくよ

訓読(書かなくなるかも)と和訳やっていきたいと思います。

ただ……

私は「継続は苦手なり」なので続くかどうかわかんないし、プログラミングも初めて(厳密には悠里で作ってる2003lkっていうアセンブリ言語はちょっとやったけど)なので何が起こるかわかりません。
ただ、こんな愛おしいプログラミング言語、他にないと思うんですよ。やりたいな。というわけでよろしくおねがいします。

次回に続く!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
56
Help us understand the problem. What are the problem?