2018年3月10日土曜日
曖昧なプログラミング言語
殆どの言語は英語ベースだが、英語ネイティブな人にとって、あの書き方は(少し変だけれども)英語として認識できるのだろうか、というのは興味あるところだ。今のコンピュータ言語は全て厳密な仕様に基づいている(書き方が曖昧だとしても曖昧さを許す範囲はあらかじめ固定されている)が、もっと自然言語に近づいてきたときにはどんな書き方になるのだろう。
何々を25回繰り返す、というとき、do something1 for 25 times. と書けるのなら、もっと英語表記に近い気がする。それで、subroutine somthing1 is to do something2 and something3 concurrently, if stacked, stop doing and send me the error message . くらいなら、今のパーサーでも何とか行けそうだ。
今のプログラミング言語の主流は、さまざまな新しいプログラミング概念を取り込みつつも記述がシンプルなものが多い。このため、コメント欄が欠かせない。だがコメントはプログラムの動きには関係がないから、修正し損ねたり説明し損ねたりしても問題ない。人間が常に適切に書き、修正しない限り、かえって邪魔になる。
この書き方では、従来のプログラミング言語レベルの記述をすると冗長になってしまい、たぶん膨大な量になってかえって読めなくなる。人間が読める仕様書と実言語の間の中間言語として、ある程度読め、抽象度もそこそこの言語があるのがよい。
どんなところを抽象化するのかというと、プログラムレベルで使う変数として人間が読む価値があるを残し、ロジックを厳密にするために内部で使うような変数を隠すのが第一だろう。上で言うなら、for a=1 to 25 ... next などと書くところだが、この a というのは人にとって価値がない。そこで 25 times と書くわけだ。
また、「全ての入力に関してSQLインジェクションチェックを行う」のような記述は、曖昧さを伴った記述だ。これは従来の言語で言う、アスペクト指向に類似している。違うのは、どこに適用するかを指示するかしないか、という点だ。
コードが冗長化する原因の多くは、こういったエラーチェックなどの「ネガティブロジック」だ。これを曖昧な記述で一手に引き受けることができれば、コードはずっと短くなる。これを適切に実行するのには、従来のプログラミング言語とは異なった仕掛けが必要になる。インタプリタでもコンパイラでもない、第三のスヌープエンジンのようなものだ。
プログラムの動きを見ていて、適用可能なところに達したら制御を奪ってチェックを実行する。このような仕掛けを前提にして、可能な曖昧記述を許すような文法を構築できれば、プログラミングはもっと簡単になるような気がする。それは既存の「コード自動生成」と似たようなものになるのかもしれないが、検討に値する概念だと思う。
登録:
コメントの投稿 (Atom)
注目の投稿:
たつき諒の予言は外れた
実は前日に書いているのでたぶん、だけれども、「 たつき諒の予言は外れる、という私の予言 」は当たった。 ただこの間、トカラ列島で群発地震が起こり、最大震度6弱が1回、5強・5弱も複数回発生した。 トカラ列島で最大震度6弱含む1700回超の群発地震 収束見通せず今後も警戒が必要(S...

人気の投稿:
-
「生成AIはミーハーである」の回でも少し触れたのだが、生成AIの回答は一次的には誤っていることが多い。それを指摘してAIが回答を修正していく様を見て楽しむ、というのが最近のマイブームだ。 どういう指摘をしているのか、と自己分析してみると、興味深いことに陰謀論者との議論とあま...
-
「人はなぜ悪に憧れるのか」と「人はなぜ正義に憧れるのか」をGoogle検索してみたところ、前者は素直にヒットするのに後者はひねくれたサイトしかヒットしなかった。どうやら人は悪に憧れているようだ。 前者のサイトを読んでいると、様々な解釈が出てきて面白い。だが、検索前に自分...
-
近年の世界的な右傾化、自国第一主義化について、その原因を生成AIと討論しながら考えた結果、そういう結論に達した、というお話。 まずトランプが未だに支持されている理由について議論したのだが、その理由はアメリカ白人低学歴層の貧困化だという。この白人貧困層は、人数的には数千万人と規...
-
性善説と性悪説、どちらを取るかと言えば、やや性善説、だろうか。 子供の成長を見ていると分かるのだが、基本的に子供は善だ。だが、同時に自分勝手なところもある。人の持っているものを欲しがり、場合によっては喧嘩してでも奪おうとする。だがこれは「悪」と言えるほどのものではない。 ...
-
電気が止まった時、明かりや暖を取る、あるいは調理のために必要なのが、火だ。カセットコンロを持っている家も多いと思うが、カセットガスを大量に保存するのは躊躇する人も多いのではないか。ガソリンも灯油も同様だ。また、単に漏れるのも心配だが、これらは何れも経年劣化するから、大量に持...
-
https://ja.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E8%AA%9E%E3%81%AE%E9%83%A8%E5%B1%8B チューリングテスト に対する反論とも言える思考実験だ。両者の概要はここでは省略する。Wikipe...
-
別の投稿でも書いているが、VR普及の条件はビジネスに使えることだ。即ち、①会議・打ち合わせ、②プレゼン、③コラボレーション(共同作業)、④PC作業(大画面、多画面)、これらが「使い勝手よく」できる必要がある。 これらに適合するVRアプリとしては、 Engage 、 Bigsc...
-
電子ペーパーを有し、360°回転できるキーボードを備える、Android端末が欲しい。画面サイズはB5くらいがよい。12型くらいか。重さはできるだけ軽く、できれば350g以下、せめて500g程度に。また、電磁ペンを内蔵してほしい。 この端末の用途はアイデア等のメモと...
-
アメリカには バイオスフィア2 という施設がある。日本にも、 閉鎖型生態系実験施設 という類似の施設がある。これに次ぐ新しい施設「バイオスフィア3」を考えてみた。 その目的は当初のものとも日本のものとも違う。地球環境に人間が与える影響を定量化すること、またそのバランスを人工...
-
古くは仮面ライダースナックやビックリマンチョコ、最近では万博パビリオンの時間指定チケットやマクドナルドのちいかわグッズなど、何かと話題になっている転売の是非について考察してみた。これももちろん生成AIを使って、なかなか面白い結論が出た。 最初は万博場ビリオンについて議論したのだ...
0 件のコメント:
コメントを投稿