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

過去の記録を閲覧用に保存しています。投稿・編集はできません。一部の旧記法・画像や HTML の表示は再現されていません。同名ページは候補から選択してください。

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 テンプレートは分離しているので、(書き換え条件を維持することを条件に)それぞれに編集可能。