ページの先頭です。本文を読み飛ばして、このサイトのメニューなどを読む

ログイン

サイト内検索

お問い合わせ

・ArtSoftwareWorks(アートソフトウェアワークス) 担当 竹田津(たけたつ)
・携帯電話 090-2404-7400
・Skype taked2
・メール taked2@artsoftwareworks.net

サイト内の現在位置です:

TOP  >  taked2の「日々是精進!」  >  プログラミング
 

まとまった時間ができたらやってみたいことに、AjaxでのローカルDBアクセスがある。具体的にはFireFox3 + OOo Baseなんだけどさ。GameDojoLogもデータしか入ってないんで、そろそろ閲覧ツール作らないとなあ、と思った次第(ずーっとやるやる言ってたわけだし)。データベースの中身見るのにブラウザが面倒なくていいんだけど、そのためにローカルでWebサーバやDBサーバ立ち上げるの馬鹿らしいし、AjaxでDBを直接呼ぼうと思ったわけ。

いや、昔、VB6のActiveXでIE + Accessの組み合わせで似たようなシステム作ったことはあるのよ(サンプルが見たいならここ。といってもこれ作ったのは別の人。俺はこれの元になるベースを作っただけ)。だから大体のやり方は分かってる。でも、いまどきActiveXもなかろうと思うし、個人的にはちゃんとAjax書いたことなかったからさ、ちょっとやってみようかなと思ったのよ。でも本当にできるのかどうか、まだ調べてもないw。

最近プログラムしてなかったから、リハビリ&ネタ発掘でやってみるっす。

AIのサンプル書いて、言語に戻って足りない機能実装して、またサンプル書いて試して…。まあ、無限にも続くループなのだが、なかなか楽しい。ってか、まだ意識の実装のイメージができないのだが。まあサンプル書いてるうちになんか思いつくかもしれん。結局プログラムは動いてナンボだしね。

今の時点でのAIのプロトタイプに実装する/しない機能を挙げておこう。

○実装するもの

・意識(まだ、実装を思いついてない…)

・記憶(これはイメージがほぼ固まってる。「忘れる」ことを実装する予定)

・思考(大雑把に言えば証明と推論のエンジン。主に論理的思考を司る。プロトタイプでは「閃き」とかは無視)

・本能(「常識」をハードコーディングしたもの。常識がないとフレーム問題にぶつかっちまうからね)

○付随して実装されるもの

・心(心とは人間だと脳の機能であるので、意識を実装したら付随して心が実装されるはず…かな)

・意思(意識があって思考・判断できるなら、意思も付随して実装されるであろう。まあ最初のうちは赤ん坊なんでこっちがAIの意思に沿わないことはあるけど。まあ教師なんてそんなもの)

○実装しないもの

・人格(人格ってのは意思決定時の重みづけのパーソナリティにしかすぎないのでプロトタイプでは実装しない。まあ、MAGIみたいに「学者」「女」「母親」なんて人格つけてみるお遊びはプロトタイプできてから)

・欲望(欲望ってのは本来不必要。プロトコル追加で対応可能にはするけど)

・魂(ああ、俺は魂無存在論者なんで、存在しないものは実装しようがない)

・才能(単なる属性でしょ?元々AIに関係ないじゃん)

まあ、今の所考えてるのはこんなとこかな。

Naokoだけど、ちょっとJavaCCで作り直すことにした。いや別に今のままでもサンプルは組めるんだけど、{};って構文がどうも気持ち悪い。やっぱ{}の後に;はいらない。それに将来ソース公開するときになにかと都合いいしさ。本格的な拡張はそれからってことだ。

いやなにも人工知能つくるのに数学が必要ない、とはいっていない。数学もいる。ただし、どうも人間ってのは「論理と非論理的に出来ている思考を持つ生物」ではないかと思っている。多くのアプローチが人間の思考を論理的、つまり数式で表せると前提して論を進めているが、ほんとうにそうなのかと個人的には思っている。まあ論理的でないものは計算機で動かないんだからしかたがないんで、俺のいう人工知能とは、人間の思考のなかで論理的な部分だけ取り出したもの、である。それ以外の実装はいまのところ予定していない。

知識ベースを考えていたのだが、やっぱ「日本語」で作ろうと思う。俺は日本語しか知らないわけで、英語で知識ベースを作れ、っていわれたって無理。その隅から隅まで知ってる日本語以外に選択肢はない。まあXMLあたりで吐き出すようにしとけば翻訳は可能だろう。しかし言語には言霊が宿るといわれているが、ホンマか?

今日はひたすら読書。言語処理系やコンパイラ系の本を片っ端から読む。今までいまいちこの手の本の用語って頭の中でうまく像を結ばなかったんだけど、一回インタプリタ作ってみたら、よく分かるようになってきた。まあ、みんな考えることやつまづく所は似てるのね。でも結局俺の場合は理論をとりあえず入れといて後は実装を追っかけた方がすっきりわかるんで、実際の処理系のソースをひたすら読んでる。っていうかまだgotoやbreakの実装を思いつかない(あの本でなんで説明してないかよくわかる)。一度中間言語に仕立て直せばできるのわかってるんだけど、それ以外の方法ないか考慮中。

今日もインタプリタ作りに熱中。っていうか言語作るのは面白いね。コンパイラ屋とかがハマるわけだ。実装とかちょっと分かんないところはgccとかのソースを引っ張り出してきて読んでる。といっても、俺が書きたいのは言語上で動くプログラムの方だから、インタプリタの作成はちゃっちゃと済ませたいのだけど。まあ、今週中ぐらいにはプロトタイプできるだろうから、頭の中の設計図がどれぐらい動くのか確かめられるかな。

ここしばらく人工知能言語「Naoko」のプロトタイプ作りに没頭している。今回は実行時にプログラムがプログラムを書き換えるような言語なんでインタプリタがよかろうかと深く考えずに作り始めた(いつものことなんだけど)。っていうかちょうどいい本があったんでもろ参考にさせてもらってる。「いまどきのプログラム言語の作り方」、Javaでインタプリタを作る方法が実践的に載ってるかなりの良書。っていうか俺は言語屋/コンパイラ屋じゃないんで、これぐらいのレベルでちょうどいい。もうちょっと凝りたかったら専門書読めばいいし。


XPressME Ver.1.09 (included WordPress 2.7.1) (0.414sec. )

ページの終端です。ページの先頭に戻る