Racc を使ってみて分かったのが、パーサーはひたすらパターンマッチをおこなうプログラムだということだ。入力された文字列はまずスキャナでトークンの列に変換されるが、パーサの仕事はそのトークン列をひたすらパターンマッチし続けることなのだ。
パターンマッチという観点から見ると、構文解析プログラムとパーセプトロンとはよく似ているように見える。スキャナが文字列をトークンの列に変換するように、パーセプトロンの入力層の出力も中間層のセルの出力に変換される。また、トークン列をパーサがパターンマッチするように、中間層の出力もパターン分析されて出力層の出力になる。 構文解析では、スキャナは必須かというと、実はそうではない。パーサが入力されるあらゆる記号に対する文法を持っていれば、スキャナは必ずしも必要ではない。しかし、間にスキャナを介在させることによって、パーサの文法規則の数は、圧倒的に少なくなる。 ところで、スキャナもそのプログラムを見ると、パターンマッチ機械なのだ。したがって、スキャナとパーサを組み合わせた構文解析プログラムは、二階層のパターンマッチ機械なのだ。これは、入力層と中間層と出力層からなるパーセプトロンとその意味において同じものなのである。 ところで、出力層の出力に対して外部からのフィードバックをかける教師つきパーセプトロンは学習をすることができる。そうであれば、パーサに外部からの入力をフィードバックすることによって学習するパーサを作ることができるのではないだろうか。文法をあらかじめ提示しておかなくても、学習によって文法規則を学習していくパーサである。そんなパーサを十分に学習させた後、文字列を入力したときにどのような動作をするのかと考えると面白い。 パターンマッチが、学習や思考のセントラル・ドグマなのだろうか。
by tnomura9
| 2006-04-13 21:11
| 考えるということ
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||