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)
注目の投稿:
富士山噴火への備え・再考
以前にも https://spockshightech.blogspot.com/2017/10/blog-post_2.html という投稿をしたことがあるのだが、もう少し状況を詳しく知ることができないか、調べてみた。 首都圏の対策としては、『首都圏における広域降灰対策...
.jpg)
人気の投稿:
-
「人はなぜ悪に憧れるのか」と「人はなぜ正義に憧れるのか」をGoogle検索してみたところ、前者は素直にヒットするのに後者はひねくれたサイトしかヒットしなかった。どうやら人は悪に憧れているようだ。 前者のサイトを読んでいると、様々な解釈が出てきて面白い。だが、検索前に自分...
-
3.11で原発の危険を甘く見ていたように、次は噴火を甘く見ていたと後悔するかもしれない。今の知識を振り返ってみる。 過去の富士山噴火の規模を見ると、溶岩や噴石などの被害はもちろん近隣で発生するとして、広範囲に火山灰が積もる。予測によれば、関東でも数cmは積もる。この量で...
-
一国における貧富の差が余りにも拡大して手が付けられなくなった時に、第二の通貨を発動する、という手が考えられる。お互いの使い方や交換に制限を掛けてやることで、第二通貨が貧乏人の間で主に廻るようにして、独立した(仮想的な)経済圏を作ってやるのがこの目的だ。 低所得層は第二通...
-
ディーン・ケーメン氏が発明した浄水器「 スリングショット 」の原理は、いわゆる蒸留である。つまり水を沸騰させて水蒸気にした後、冷やして水に戻す。汚水と蒸留水の間で熱交換を行うことで効率を上げている。 日本では、防災用の浄水器としては中空糸膜や逆浸透膜が殆どだ。これと蒸留式には...
-
Googleがローカルニュース記事を作成するソフトウェア開発に資金を提供した 記事を見ていると窮余の策にも見えるのだが、考えてみるとむしろ好ましいのかもしれない。今まで、ローカルニュースは地方紙の領分であり、全国紙ではローカルニュースは1ページとか、ごく少数しかなかった...
-
年金の制度を調べていて、なんと複雑で面倒なことかと辟易した。今ちょうど年金改革がされているけれども、現行のシステムを複雑にしているだけだ。年金に限らず、様々な社会保障制度が別の名前で呼ばれ、申請方法も異なり、審査も給付も別。ファイナンシャルプランナーや税理士、公認会計士などが必要...
-
FacebookのAIが、英語を使いながらも人間に理解できない文法でしゃべりだし、そのAIが停止された、と言う話が話題になった。その会話を実際に見てみたが、確かに気持ち悪い。この気持ち悪さ、どこかで感じたことがある、と思って思い出してみたら、眉村卓の小説に度々出てくる「産業...
-
屋根に超音波振動装置を取り付けておく。これによって屋根と雪の間の結合が破壊され、雪が滑り落ちやすくなる。これが題記装置の原理だ。角度によっては放っておいても落ちるだろうし、そうでなくても楽に雪下ろしができる。 まあ超音波でなくて低周波でも良いのだろうが、超音波の方が簡単...
-
以前にも https://spockshightech.blogspot.com/2017/10/blog-post_2.html という投稿をしたことがあるのだが、もう少し状況を詳しく知ることができないか、調べてみた。 首都圏の対策としては、『首都圏における広域降灰対策...
-
世の中の話題はAGIを通り過ぎてASIに進んでいる。AGIがGeneral IntelligenceならASIはSuper Intelligence、即ち人類を遥かに超えた知性ということらしい。 2045年にシンギュラリティが起きると予測したのは、人工知能研究の世界的権威であ...
0 件のコメント:
コメントを投稿