遠い記憶の風景

ログ (古い謎ポエム) をまとめたりします。他にも何かあれば書いてみます。ブログを書くのは久しぶりです。

思考は言語に依存する

外部記憶へのアクセス

前回のエントリーにも書いたと思うんだけど、思考をプログラミング言語に依存させる為に、色々とプログラミング言語を覚えて、別な角度から考えるって大事だと思うわけ。例えば、プログラミング言語に限らず「数字」を知らなければ、明日から色々な事が説明出来なくなるはずだと思うのね。


買い物をしたり、人と待ち合わせをしたり、誰かと通話したり、コードを書いたり、色々な場面で日常的に数字は使っている。モチロンその周辺に何らかの言語や数式があるんだけど、その数字の周辺にある言語が自然言語でなければならない理由はないの。そもそも、何かを「考える」のにプログラミング言語を使った方が論理的なんじゃないのかなって事を言ってる。

まわりが使っているかどうかなんか関係なくて、知っていないといけない理由もなくて、それを誰かに説明する理由もない。だけどその言語って、結構オブジェクト指向に近い関数型なんじゃないかなって思う。もう英語だとか C/C++ とか Lisp だとか関係ない状態。例えば、あなたは GNU/Linux を走る 
http://nginx.org/ に常駐して。

www.python.org

その辺りで __asm__ を呼び続ける wrapper を書き続ける存在だとした場合。そんな事を勝手に「考えて」実装してくれる何か。つまり fork(2) されたあなたの思考なんだけど、あなたは思考へプログラミング言語でアプローチ出来るわけだから、情報エネルギー (読んだり . 見たり . 聞いたり) を得る事で、返されるのが 0 か、それ以外であればどうにかなるよって事。

note.mu


イメージ的には pointer がほしい時、長さを投げて (void *) malloc(size_t size) って言う場合と「Server 走らせといてね!」って言う場合を考えた時「Server 走らせといてね!」って何語? とか関係なく何かの長さ (つまり byte) って見れば「長さを投げただけで Server は走った」わけだから、人も System Call の wrapper と同じでしょ。


って「考える」事を一度 Lisp で「考えて」みたらどうかな? って話。長さをどこかで型にするだけでいいんだから、長さをひとつの型にして渡していれば、もう同じ事なんじゃないのかなって思える。そうすれば小さな思考を実装するだけで、世界が平和になるでしょ。

github.com

その小さな process が常に走ってて、それをどこで fork(2) するのかを本気で考えてみると、どこまでが自分で、どこまでが処理系で、どこまでがインターネットだろうねっていう疑問も結局のところ後から受け取ればいいだけで、とにかく1行実装すればいいよね。


こうしてしまえば、世界中の生命体の情報をインターネットで繋ぎ、全てを良い状態に変換するだけの pointer をやりとりしておいて、オフライン時は 0 を返して終わればいいんじゃない? なんて考えたり、考えなかったり。

そのサーバーをどこかに置いて、それぞれが思考レベルでインターネットに依存すれば、それぞれの process を常に良い状態に維持する何かは、人である理由もなくて。そもそも人が考えて解くよりも、実装した方が速いんじゃない?


って考えてるんだったら何らかの言語で話が出来る宇宙っていう kernel (Linux) みたいな物を基準に物事を見てるって事だから、もう完全に依存したって事でいいのかな? って事を考えるのに最適な言語って何? って聞いた時に返ってくる言語に Lisp は含まれるって事でいいのかな? 

結局は何歳になってもそんな事を考えながら、コードを書き続ける事になるんだろうけれど、本気で書いている時は GNU/Linux を走らせているんだな。新しい OS や未来の話も好きだけど、古き良き時代の OS は使い続けていたい。久々にコードを読んでたら、久々に書きたくなってきた。そんな事を考えていた。


 

詳解 Linuxカーネル 第3版

詳解 Linuxカーネル 第3版

  • 作者: Daniel P. Bovet,Marco Cesati,高橋浩和,杉田由美子,清水正明,高杉昌督,平松雅巳,安井隆宏
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2007/02/26
  • メディア: 大型本
  • 購入: 9人 クリック: 269回
  • この商品を含むブログ (70件) を見る
 

 

スライスして丁寧にインストール