« どのプログラミング言語が一番優れているか / 2 | トップページ | ベジータ戦闘服 »

カオス指向プログラミング言語

前回のエントリで「例えば種を植えれば何もせずとも花開いていくような」言語とかいうヨタ話をしたんだが「それって要はカオスってことか」と思い付き,「じゃあそれはカオス指向のプログラミング言語だな」と勝手に納得したのでカオス指向プログラミング言語について考える.

カオスというのはアレ.ベルヌーイ写像とかロジスティック写像とかのソレ.

カオスの解釈はいろいろあるらしいんだけど,とりあえずここでは単純な系(システム)から複雑な振る舞いをするものの事をカオスと呼ぶ.

カオス指向プログラミング言語における系とはそのプログラミング言語で書かれたプログラムそのもので,じゃあ出力は何かというと実はこれもある種の系である.プログラムからプログラムを生成というとジェネレータが思い浮かぶが,出力された子供の系はさらに孫の系を出力し,孫は曾孫を出力し...というように自律的に成長していく.あるタイミングで出力された系はユーザによってデータとみなされ,これがシステム全体の出力となる.

なんとなくこう書くと再帰呼び出しが連続する関数型言語が思い浮かぶが,それは違う.自律的に成長することが大事なのである.

実際には子や孫を生むだけじゃなく分裂や突然変異も発生し,分裂した系がまたなんか生んだり死んだりして別の進化をたどったりして目的の系を目指す.進化の途中でもうそれ以上進化しても目的の系を得られないことがわかればそのー族は死ぬ.

カオスと言うより遺伝的アルゴリズムとしてとらえることもできるかもしれない.

ここまで書いて「本当にそんなことが可能か?」と言わればなんだか無理そうな気がしてくるんだけど,ちゃんと言語仕様を考えればプロトタイプ的なものくらいはできるかも知れない.

ぱっと思い付く限りでは,「初期条件」「終了条件」「例外条件」なんかがプログラムソースコードに書かれることになると思うんだけど,カオスに詳しい人ならなんと言うだろう.

たぶん関連:

『現代という時代は、どのようなプログラミングを求めているのか?(Matzにっき)

« どのプログラミング言語が一番優れているか / 2 | トップページ | ベジータ戦闘服 »

コメント

プログラムを進化させるという試みは,遺伝的プログラミングの研究の1つですね.

自分が最初のソース,つまり種,を書き,あとはそれが目的どおりに自動的に洗練されていく,となれば面白いですよね.

この内容だと「どういう言語仕様にするか」よりも「どういう進化をさせるか」というノウハウの方が重要そうですね.
僕のような素人がうかつに手を出すと,実用とはほど遠いものができそうです.

はじめまして
私 大阪府豊中市のパソコンオンチの
立花といいます
貴方様はプログラミング言語にお詳しいようなので メールさせていただきました
無礼な質問で びっくりされておられる思いますが、お許しください

グーグル や ヤフー の検索エンジンの使用プログラミング言語?とか
ウイルスソフトの使用プログラミング言語は何なのか?

いろいろ調べましたが 分かりません
教えていただけませんか


立花さま

僕の知っている限りでお答えします.

google:大部分C言語
yahoo:インタフェースはphpという言語でデータベースはC言語

ウィルスソフト...これはウィルスのことでしょうか?ウィルス対策ソフトのことでしょうか?

ちなみにウィルス対策ソフトは,商用ならだいたいC/C++ですが,個人で作られているものなどは色んな言語で書かれています.
ウィルス自体もやはりC/C++が多いですが色々な言語で書かれます.

憶測も入っているので正確ではないかも知れませんが,だいたいこんな感じだと思います.

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/163977/3897232

この記事へのトラックバック一覧です: カオス指向プログラミング言語:

« どのプログラミング言語が一番優れているか / 2 | トップページ | ベジータ戦闘服 »