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)
注目の投稿:
ダイナミック租税とその指標
今の法律では、税率は一定の計算式で表されるが、そのパラメータは固定である。需要と供給のバランスによって商品の価格を変えるダイナミックプライシングというのがあるが、あれを租税にも適用してはどうかと考えてみた。 納税者の声をベースにして様々な租税や補助金を自動調節して、どこか一箇所...
人気の投稿:
-
ハクキンカイロの発熱原理を調べていて、これを防災用(キャンプ用でも良いのだが)の湯沸しに使えないかと考えた。 普通、キャンプではガスコンロを持っていく。だがあれは裸火を使うから、熱効率は悪い。これに対してハクキンカイロの仕掛けは、白金触媒を適切な場所に配することで、極...
-
科学者、医者等であっても発言が必ずしも科学的とは限らない。無自覚ならまだ可愛いが、むしろ素人を煙に巻く悪意すら感じることもある。 量的議論がそのひとつであることは言うまでもないが、もっと以前の問題として、論理が破綻していることの多さがある。 そのひとつとして、ス...
-
新型コロナウィルスへの対応で、医療機関の防護服やマスクが足りないことが話題だ。ゴーグルは違うが、その他は使い捨てであるところがネックになっている。作っても作っても、消費の方が激しい訳だ。しかし考えてみれば、そもそも何で使い捨てなんだろう。細菌兵器用の防護服は使い捨てではない...
-
ガートナーが出しているハイプサイクルによると、生成AIはまだ幻滅期の手前にいるらしい。つまり今後大きな幻滅を経て実用域に進んでいくことになる。その幻滅とは、人間なら当たり前にできることでまだ生成AIにできないことが多く分かってくることによる。そしてその幻滅期を乗り越えるのは、...
-
時代が進むことで、昔のSFが奇異に思えるようなことはよくある。抑揚のないコンピュータ音声や、わざとぎこちなく歩く人間型ロボットなどは、もはや過去の遺物である。スタートレックシリーズに出てくるトリコーダーもその一つだ。 トリコーダー本体、また医療用プローブを手に持って...
-
生成AIを使って作成されたイラストに対する極端な非難が相次いでいる。そのどれもが、ちょっと行き過ぎに思える。例えば、事前にAIであることを知らせているもの、絵を描いている本人が確認し承諾したものまでも非難されている。なぜこんなに過剰な反応をするのだろう。単にノイジーマイノリティの...
-
卓上カレンダーのようなものを机に置いておいて、必要に応じてテレビ電話やフォトフレーム、緊急通報など、家で必要とされる様々な機能を集約する機械を考えてみる。 これは、従来は電話やFAXのような位置づけだったものだ。これら以外にも一家に一台の情報機器は考えられるので、それを切り替え...
-
コロナ禍ではあまり本ブログを更新しなかったが、この間は陰謀論が跋扈した時期でもあった。コロナは存在しない、ワクチンは危険、アビガン買いだめ、マスクは意味がないなど、実に様々な陰謀論が飛び交った。 この手の人は今だに存在しており、体感としてはむしろ増えている。それも、身の危険を...
-
自分の知る限りでは、VRChatのワールドで青空文庫が読める図書館があったのと、N高の教室メタバースくらいしかマトモな例がないのが、メタバース内で本を読む方法だ。本や書類がメタバース内で苦も無く読めるようになれば、電子書籍も含めて全部メタバース内に落としてしまいたい、とすら思っ...
-
映画と言えば、今でも娯楽のジャンルの一つとして確立したものではあるが、近年では衰退の兆しがある。そのたびに3DやCGなどのテコ入れが入ってきたわけであるが、ここにきて更に新しい提案ができるようになった。それがタイトルにあるインタラクティブ性の導入である。 とは言っても、...
0 件のコメント:
コメントを投稿