LiMo WikiWiki page -- Wiki トピック一覧 / 同一トピック掲示板 / 掲示板
編集
掲示板で返信
新規トピック WikiPage の作成

POPL:ういかのソースコード

Since : Nov.24.2005 18:36'48
LastModify : Dec.10.2005 03:48'36

POPL:Top

ういかのソースコードについての簡単な説明を予定

ソースコードのダウンロード


ここからういかのソースコードをダウンロードできます。
http://www.limo.fumi2kick.com/chara_lang/uika_src.tgz

ういかのソース仕様


ういかは ruby で書かれています。

実装レイヤーとしては 3層あって、StackLang層、ペルソナ層、インターフェース層となります。

StackLang層

スタック型のインタプリタ言語の実装レイヤー。
基本、ユーザーが眼にすることはない。
***stack_lang.rb
スタック操作のみを行う StackLangLv0 から始まって、そのサブクラスである Lv1, Lv2, Lv3 と徐々に機能が増えていく。

ペルソナ層

キャラクターのペルソナ(人格)を実装するレイヤー。
ユーザーからのリクエストを StackLang層に伝えて、その結果をキャラクターっぽくユーザーへリターンする部位。
無駄なおしゃべりはここで発生する。
プログラム言語のフィルターなのだろうか。
***persona_uika.rb
コマンドリクエスト自体は StackLang の透過に近い。
会話部分が StackLang で書かれている。

インターフェース層

ユーザーインターフェースを提供するレイヤー。
今回は WEB アプリケーションという形態をとっているので CGI。
実際にういかの文章や絵を表示する場所でもある。
***uika.cgi
HTML とペルソナ層を繋ぐ橋渡し。
***prot1.htm
HTML本体のテンプレート。
CGI はこのテンプレート内の特定箇所を書き換えて表示する。
CGI ロジックと HTML テンプレートは分離しているので、(書き換え条件を維持することを条件に)それぞれに編集可能。


LiMo BBS System - WikiWiki Page
$Id: lmwiki.rhtml,v 1.4 2003/05/17 17:19:11 rero2 Exp $