知番付け識別子

描主宇田川浩行K#F85E
上描き希哲13年(2019年)
03月19日 04:06
下描き希哲13年(2019年)
03月18日 06:15
利承
ライセンス
希哲館普通利承(KULクール

希哲13年3月17日の開発で新しい手法を思い付き,「知番識別子」(knumbered identifier)と呼び始めた。しかしよく考えると,以前考えていた「識別子そのものを知番化する構想」と紛らわしい(知番譜類などもこの意味で使っている)ため,19日,「知番付け識別子」に改称した。

一覧

=}{*}

知番付け識別子(knumbered identifier)による世界に先駆けた意味付け論組(semantic programming)の実用化,ということを語る時に避けて通れないのは,これがクヌース文芸的論組をいかに更新しうるか,ということだ。

=}{*}

知番付け識別子(knumbered identifier)の表現方法として,「知番付け改行」(knumbered newline,knewline)を考案した。これで,ほぼ全ての言語で識別子に知番付け意味付け)を行うことが出来る。

=}{*}

知番付け識別子(knumbered identifier)の最も重要な意義は,「個々の記述の意図」を残せることにある。だから,docstring のようにどこかでまとめて説明を残せる仕組みとはちょっと違って,C のような柔軟な込め言(コメント)記法と最も相性が良い。

=}{*}

要はこれと同じことを Emacs Lisp でもしたい。最初は docstring で我慢するかと思っていたのだが,あれとこれとはちょっと意味合いが違う。

https://mn.kitetu.com/media/0RYpoBXAaxjDPdQQtjQ

=}{*}

込め言(コメント)の自由度が低い Emacs Lisp で,マクロを使った込め言記法を考えていた。例えば,

(fn arg1 arg2)

という函数呼び出しに

(: fn "this is a test function" arg1 arg2)

という込め言が出来ると,知番付け識別子Emacs Lisp でも使える。

=}{*}

そう考えると,この知番付け識別子という手法,徹底的に簡潔性と直感性を重視した の語彙と相性が良かったんだな。

=}{*}

識別子の末尾に # とか付けるの,最初は美観的にどうなんだろうという懸念があったのだが,例えばこのハローワールドC++

std::cout << "hello world!" << std::endl;

に相当することを考えれば何の問題もなかった。ここは徹底した の美意識に救われた。

=}{*}

この技術は,世界初の実用的な「意味付け論組」(セマンティック・プログラミング)の嚆矢となるだろう。特に,文書化リファクタリングにおいては飛躍的な進歩を遂げたと言える。

=}{*}

ついに知番識別子knumbered identifier)を実現する一通りの Emacs Lisp を書き上げた。foo/*K#XXXX*/ と書くことで,foo は知番 K#XXXX で意味付けられた知名(kname)となり,デルンと同期される。選り手(エディタ)上では省略表示 foo# と簡単に切り替えられ,デルン上の関連情報を表示させるなど応用の余地は広い。

=}{*}

昨日,知番識別子knumbered identifier)の手法を閃いてから,Emacs Lisp を猛復習してオーバーレイを完璧に使いこなせるようになってしまった。

出力論組プログラム虎哲*イチ 1.01
制作・運営:希哲社
© K1-13 (2007-2019) KiTetuSha