LiMo BBS System


日記更新一覧
Wiki トピック一覧
カレンダー
トピックリストビュー
タイトルツリービュー
ると's メタファビュー
ると's オーサービュー
携帯電話用ビュー
新規トピック記事の作成

最新記事表示数 [ 5/10/15/25/50/100 ]

No.000559 - Wiki Edit -
Date : Dec.09.2005 18:13'35
Topic : POPL:Top

No.000558 POPL:StackLanguage
Date : Dec.09.2005 18:07'22
Edit history : Dec.10.2005 03:16'40
Dec.10.2005 03:23'38
Feb.02.2006 23:13'36
POPL:Top
ういかのロジック部分。

*StackLanguage とは
ういかがまがりなりにもプログラム言語を名乗るために、裏の方では簡単なインタプリタ言語を動作させます。その言語が StackLanguage です。
ういか自身は StackLanguage を対話形式で扱うためのインターフェースと言えるかもしれません。

StackLanguage はその名の通りスタック型のプログラム言語です。
ぶっちゃけ FORTH なんですが、心底簡単なワードしか持っていなかったり、ういかのために通常の FORTH と違う所もあるので敢えて別物としておきます。

なんか名前を付けた方が良いかも。

*StackLanguage の使い方
通常はういかが居るので StackLanguage を意識することはありません。
ういかのソースコードを入手すると、デバッグ開発用の対話型インタプリタコマンドインターフェースである check.rb が付いてきます。
% ruby check.rb とかやって起動すると StackLanguage を直接叩けます。
物好きなお方向け。

*check.rb の機能
ruby で書かれています、ruby で起動して下さい。
% がプロンプトです。適当なワードを入力するとスタックに積まれたり、実行されたりします。ワードはスペースで区切って複数個入力することもできます。
プロンプトに 'quit' と入力すると終了します。

*StackLanguage 概要
数字、命令、文字列といったスペースを含まない要素ひとつを「ワード」といいます。
数字や文字列といったワードを入力していくと、それらはスタックに積まれていきます。ワードは最も最近積んだ物から使われます。
; % 1 2 3
; stack: 1 2 3
3つのワード(数字)がスタックに積まれました。
この状態で '.' (ドット、スタックから1つ取り出してそれを表示する)を実行すると、'3' がスタックから下ろされてスタックには 1 2 が残ります。

*Hello World !
; HelloWorld! .

*Deep loop 回避
ユーザーワード登録が行えることでプログラミングができるようになりますが、それと同時に無限ループの可能性も発生します。
; : infloop infloop ;
; infloop
これは自己呼び出しを無限に続けます。
; : hoge moga ;
; : moga hoge ;
; moga
これは二つのワードを交互に呼び合いますが無限ループを構成しています。
無限ループでなくても過度のループでマシンリソースを消費する恐れもあります。
こういった Deep loop を回避するため、ユーザーワード実行時はワードコールを数えて一定数以上(100とか)呼ばれたらエラーを出してギブアップする仕組みを入れてあります。

結果大規模プログラミングはできません。
WEBで公開するための措置とお考え下さい。

*StackLanguage リファレンス

** StackLang Lv1
:clear:スタックを全て消去します
:.:スタックからひとつ取り出し、コンソールに表示します
:dup:スタックに積まれている要素をコピーしてスタックに積みます、結果ふたつにふえます
:drop:スタックからひとつ取り出し、捨てます、何もしません
:swap:スタックの一番上にあるワードと二番目にあるワードを入れ替えます
:+:スタックの一番上にある数字と二番目にある数字を加算して結果を積みます
:-:スタックの一番上にある数字と二番目にある数字を減算して結果を積みます
:*:スタックの一番上にある数字と二番目にある数字を乗算して結果を積みます
:/:スタックの一番上にある数字と二番目にある数字を除算して結果を積みます
:%:スタックの一番上にある数字と二番目にある数字を除算した余りを結果を積みます
:rand:スタックの一番上にある数字を取り出し、0からその数字の間の整数をランダムに発生して積みます
:true:真を意味する値です
:false:偽を意味する値です
:==:スタックの一番上にある数字と二番目にある数字を比較し、同じだったら true そうでなかったら false を積みます
:!=:スタックの一番上にある数字と二番目にある数字を比較し、違っていたら true そうでなかったら false を積みます
:<:スタックの一番上にある数字と二番目にある数字を比較し、二番目の方が大きかったら true そうでなかったら false を積みます
:>:スタックの一番上にある数字と二番目にある数字を比較し、一番目の方が大きかったら true そうでなかったら false を積みます
:if endif:スタックの一番上にある値が true もしくは 0 以上であったら if〜endif の間にあるワードを実行します
:if else endif:スタックの一番上にある値が true もしくは 0 以上であったら if〜else の間にあるワードを実行、false もしくは 0 であったら else〜endif の間にあるワードを実行します
:cr:改行コード

** StackLang Lv2
:::ワード登録開始位置です
:;:スタックの一番上にある文字列をワード名として、ワード登録開始位置からここまでのワードをユーザーワードとして登録します
:face:スタックの一番上にある文字列を取り出し「表情コンソール」に積みます、表情コンソールがどう使われるかはインターフェース層の実装に因ります
表示
修正
返信

No.000557 - Wiki Edit -
Date : Dec.09.2005 17:32'43
Topic : POPL:Top

No.000556 - Wiki Edit -
Date : Dec.09.2005 17:31'48
Topic : POPL:ういかの紹介

No.000555 POPL:ういかの更新履歴
Date : Dec.09.2005 17:30'43
Edit history : Feb.02.2006 05:32'35
POPL:Top

成長の記録

* Lv2

** Feb.02.2006
・Lv.2のういかを beta release
・ユーザーワードの登録と実行ができるようになった
・インターフェースを刷新
・ういかの画も変わった
・JavaScript が苦手な人のために従来の pure HTML 版も残してある

* Lv1

** Dec.10.2005
・HTMLタグが筒抜けでXSS(クロスサイトスクリプティング)脆弱性に繋がる可能性があったので修正。HTML特殊文字やタグは無効に。
・if〜endif がネストできなかった問題を修正。
・StackLang を先行で Lv2 まで実装。ユーザーワードの登録、実行準備。
・StackLang のコマンドライン対話インタプリタ check.rb で、スペース区切りにて複数ワード一気に実行可能にした。

** Nov.24.2005
ファーストリリース
表示
修正
返信

No.000554 - Wiki Edit -
Date : Dec.09.2005 17:25'52
Topic : POPL:Top

No.000553 - Administrator elimination -

No.000552 - Administrator elimination -

No.000551 - Administrator elimination -

No.000550 - Wiki Edit -
Date : Nov.30.2005 01:17'29
Topic : FireFox-Tan

No.000549 - Wiki Edit -
Date : Nov.30.2005 01:16'56
Topic : FireFox-Tan

No.000548 - Administrator elimination -

No.000547 - Wiki Edit -
Date : Nov.24.2005 19:10'23
Topic : POPL:COLUMN:描きたい未来

No.000546 POPL:COLUMN:描きたい未来
Date : Nov.24.2005 19:09'34
Edit history : Nov.25.2005 04:10'22
POPL:Top
こうなったらいいなという理想をフィクションで描きます。
ナニゴトもイメージ重要。

*ある朝の光景

ハルミ、おはよう。
「はい、おはようございます。」
メールのチェックを頼む。
「新規のメールが8通、未読が21通あります。」
新規のメールをコピー、それを携帯へ転送しておいてくれ。
「差出人と友人でないメールが1通ありますが、良いですか。」
転送してくれ。
「転送が完了しました。」

7:50 に時刻設定して、今からカウントダウンしてくれ。
「これから17分の間、1分ごとに時刻を告げます」
埼玉の天気はどうかな。
「すみません、『天気』に対するアクションがありません」
ワードを登録しよう、トリガーワードは天気、アイテムは 1つ。
「ワード『天気』ではどうすれば良いのでしょうか」
「あと16分です」
goo のサイトを選んで、「天気」をページ内からサーチ、見つかったらジャンプ。
「はい、goo のページからジャンプしました」
アイテムをページ内からサーチ、見つかったらジャンプ
「はい、天気のページからジャンプしました」
「あと15分です」
以上を「天気」としてワードに定義する。
「了解しました、『天気』を登録しました」
じゃあ、静岡の天気を見せてくれ。
「静岡県の天気を表示します」
「あと14分です」
〜〜
「あと3分です」
カウントダウンを停止してくれ。
「カウントダウンを中止します、中断状態を保存しますか。」
いいや、保存しなくて良い。
「状態は保持されません、カウントダウンをクリアします。」
それじゃ出かけてくるよ。おやすみ、ハルミ。
「スリープ状態へ移行します。」

*憧れた事があるんじゃない?
音声入力である必要は無いのですが、対話と学習でユーザーに合わせていく道具ですな。
喋るコンピューターに愛着がある人向け。
つまり、
HAL とか、
KITT とか、
ガンヘッドとか、
ナビ子ちゅわーんとか、
レイジングハートとか、

RIGHT: written by rerofumi.
表示
修正
返信

No.000545 POPL:ういかのソースコード
Date : Nov.24.2005 18:36'48
Edit history : 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 テンプレートは分離しているので、(書き換え条件を維持することを条件に)それぞれに編集可能。
表示
修正
返信

No.000544 - Wiki Edit -
Date : Nov.24.2005 18:34'14
Topic : POPL:ういかの紹介

No.000543 POPL:ういかの紹介
Date : Nov.24.2005 18:33'12
Edit history : Nov.25.2005 03:34'14
Dec.10.2005 02:31'48
POPL:Top

ここではペルソナ指向プログラミング言語試作である「ういか」について説明します。

*ういかとは
ペルソナ指向プログラミング言語の第一世代です。
言語仕様ではなく、その上に形成されている人格(ペルソナ)の名前が「ういか」になります。

*ういかの URL
http://www.limo.fumi2kick.com/chara_lang/uika/uika.cgi

*ういかの仕様
ういかの下にはベースとなる StackLanguage というスタック型のインタープリタがあります。ぶっちゃけ しょぼい FORTH です。あんまり厳密に FORTH していません。
なのでプログラム言語としてのういかは StackLanguage に依存します。

*ういかでの Hello, World!
「こんにちは!!世界さん」([これを覚えて]の左にあるエディットボックスに記入)
[これを覚えて][おしえてくれるかな]

[これを覚えて]でスタックに積み、[おしえてくれるかな]ではスタックの最新一つを表示してくれます。

*レベルについて
Lv とあるのは実装レベルの事です。
単純に Lv とあった場合、下位層の StackLanguage の実装レベルである場合と、ペルソナインターフェース「ういか」の実装レベルである場合があります。基本的に両方セットで上がっていきますが、どっちか片方だけの可能性もあります。

*予定している実装レベル
予定は未定
Level1 -- スタック操作を基本演算、条件判断ができる
Level2 -- ユーザーによるワード定義とその呼び出しを実装
Level3 -- 変数の宣言とその利用を実装
あまり大層なことは計画してない。
表示
修正
返信

No.000542 POPL:Top
Date : Nov.24.2005 18:27'58
Edit history : Dec.10.2005 02:25'52
Dec.10.2005 02:32'43
Dec.10.2005 03:13'35
Dec.26.2005 01:44'30
Dec.26.2005 01:45'35
Feb.02.2006 05:30'20
Feb.02.2006 23:26'01
Nov.12.2006 11:14'25
Feb.17.2007 16:43'49
Feb.17.2007 16:44'33
*ペルソナ指向プログラミング言語の研究
CENTER:- Persona Oriented Programing language -
RIGHT:Linux萌え萌え大作戦
RIGHT:http://www.limo.fumi2kick.com/

ここでは rerofumi がプログラミングとキャラ萌えの相反する要素をこねくりまわそうと努力する姿が描かれています。

**ペルソナ指向プログラミング言語の試作版体験ページ
第一世代 〜 ういか 〜 Lv.2
http://www.limo.fumi2kick.com/chara_lang/uika/uika.cgi
Last update : Feb.02.2006

JavaScript と CSS を使っていない版
http://www.limo.fumi2kick.com/chara_lang/uika/uika_trad.cgi

**ういかについて
POPL:ういかの紹介
POPL:ういかのソースコード
POPL:ういかの更新履歴
POPL:StackLanguage

**ペルソナ指向プログラミングによせる思い(コラム)
POPL:COLUMN:描きたい未来
POPL:COLUMN:なぜペルソナ指向なのか
[[POPL:COLUMN:キャラクターモデリング指向の提案?]]

**関連するかもしれない萌えプログラミングに関するリンク
PUNY
http://www.246.ne.jp/~alpha/moe/
初等ロリータ指向(×嗜好)プログラミング
http://www.entis.jp/doc/lolita_programing/lolita1.html
http://www.entis.jp/doc/lolita_programing/lolita2.html
萌え言語- glCc
http://angelcat.ugoo.net/glcc/mpl/index.html
萌え言語を作ろう、まとめサイト
http://www.geocities.jp/moelang11/
しーちゃん
http://gamdev.org/w/?%5B%5B%CB%A8%A4%A8%B8%C0%B8%EC%A1%A1%A4%B7%A1%BC%A4%C1%A4%E3%A4%F3%5D%5D
つんでれしー言語
http://www.geocities.jp/pulse123123/
萌え指向プログラミング言語「萌香」(ほのか)
http://honoka.nukenin.jp/

表示
修正
返信

No.000541 - Administrator elimination -

No.000540 萌えキャラ嗜好プログラミング
Date : Nov.21.2005 14:35'02
Author : rerofumi
Topic : 萌えプログラミング言語
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=539
ども、たれこみありがとうございます。
この手のは定期的にネタとしてあがるのですがなかなか完成にこぎ着けたのをみかけませんですね。
今回は何らかの成果があがることを期待しています。

関連しているかもしれない話題。
Ruby で書かれた Scheme サブセット実装系で Rucheme というのがあるのですが、これの対話シェルに「妹言葉」版があったりします。
言語自体は Scheme(lisp系) ですけども。ちょいとしたインターフェースにキャラクターを持たせる例ということで。
http://www.namikilab.tuat.ac.jp/~sasada/prog/rucheme.html

キャラクター指向プログラミング言語は私もちょっと考えるところあるのですが、温めたまま 3年以上もほったらかしになっています orz
試すだけ試すで簡単なプロトタイプでも作ってみようかな。
しー言語方面とはかぶらないのでご安心を。
修正
返信

No.000539 萌え言語プロジェクト
Date : Nov.18.2005 21:35'18
Author : 通りすがり [Homepage]
Topic : 萌えプログラミング言語
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=57
Reference : http://pc8.2ch.net/test/read.cgi/tech/1131442510/l50
Edit history : Nov.19.2005 06:37'49
某巨大掲示板(笑)でこんなのが始まってます。
http://ime.st/www.geocities.jp/moelang11/index.html

※あの場所が嫌いと言う方も多いので、不快だったら削除してください。
修正
返信

No.000538 萌え言語2ch
Date : Nov.18.2005 21:30'46
Author : ねらー [Homepage]
Topic : LinkStation:RADIUS
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=537
Reference : http://pc8.2ch.net/test/read.cgi/tech/1131442510/l50
http://pc8.2ch.net/test/read.cgi/tech/1131442510/l50
修正
返信

No.000537 - Administrator elimination -

No.000536 - Administrator elimination -

No.000535 CalenderData:2005/11
Date : Nov.15.2005 05:40'49
:16:test
表示
修正
返信

No.000534 - Administrator elimination -

No.000533 - Administrator elimination -

No.000532 - Administrator elimination -

No.000531 - Administrator elimination -

No.000530 - Administrator elimination -

No.000529 - Administrator elimination -

No.000528 - Administrator elimination -

No.000527 - Administrator elimination -

No.000526 - Administrator elimination -

No.000525 - Administrator elimination -

No.000524 りもWiki
Date : Oct.06.2005 14:03'43
Edit history : Jan.10.2006 21:09'49
「りも的」な情報の書き散らかし。

* Wikiってなんぞや
あまりまともに解説していませんけれども
Wikiページの説明」をどうぞ。

取りあえず書き込み実験をしてみたいんだけれどもという方は
Wikiページの書き込み練習」でご自由に。

* lmbbs サポートコーナー
lmbbs の情報と更新状況などについては
lmbbs」をご覧ください。

* ふぁいあーふぉっくすたん絵
プリティ☆ブラウザーの派生物(一応)
FireFox の娘化絵は
FireFox-Tan に集めてみました。

* LinuxZaurus コーナー
lmbbs for Zaurusサポートページ。

* 開発プロジェクト
POPL:Top: ペルソナ指向プログラミング言語
GP2Xdev:TOP: Linux携帯ゲーム機 GP2X の開発メモ
VirtualSynchroChat: 時間差チャット
LinkStation: LinkStation の LinuxBox 化計画

* Linuxサーバー日記
自分で運営しているお部屋内 Linux サーバーにまつわるメモ。
Linuxサーバーメモ


表示
修正
返信

No.000523 - Wiki Edit -
Date : Oct.03.2005 18:34'08
Topic : りもWiki

No.000522 - Wiki Edit -
Date : Oct.03.2005 18:09'57
Topic : りもWiki

No.000521 - Wiki Edit -
Date : Sep.10.2005 13:25'13
Topic : プリティ☆ブラウザー

No.000520 Re: TEXT Index maker頂きました。
Date : Sep.05.2005 16:44'23
Author : rerofumi
Topic : TEXT Index makerの感想
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=519
ご利用ありがとうございます。
個人的にはここへの書き込みで全然問題ないんですけれど、やっぱり専用の掲示板を設けるべきですかねえ。ふむ。

ご要望はどれももっともな感じで納得しました。
ファイルサイズは重要なファクターですよね。
直ぐにとは行かなくてもいずれやっておきたいです。

それよりも、似たようなもっとつかえるツールがどっかから出てくるころかなあとも思っていたりしますが。(他力本願)
修正
返信

No.000519 TEXT Index maker頂きました。
Date : Sep.04.2005 04:48'04
Author : 夢野久作”鉄槌”スキー
Topic : TEXT Index makerの感想
初めまして。
公開なさっているソフトへの感想や要望みたいなものを書くのはここで良かったんでしょうか。
違ってたら済みません。

"TEXT Index maker"頂きました。
PSPにブラウザ機能がついてもアドレス入力が面倒過ぎて結局JPGで見ていたものでこのソフト、便利で凄く助かります。
なにげに青空文庫だとタイトルと著者名もインデックスに表示されて凄く使い易いです。
有り難く使わせて頂きます。

それで、JPGで読んでいた時と比べてちょっとだけ気になった事がありました。
私は小説を消化するのにサイズの小さいものから読んでたので、インデックスページでその長さが分かると有り難いなぁと。
以前はフォルダに含まれるファイル数で判断しておりましたもので。

あと一つだけ。"TEXT Index maker"のReadmeに推奨されているようにテキストファイルとインデックスファイル出力を同じフォルダにすると、
作成時に以前に作成した"mstext.htm"自身もインデックスファイルに含まれているのがちょっとだけ気になりました。

次のバージョンを作られる際は御検討頂ければと思います。



関係ないですが、PSP用キーボード出ないンでしょうかねぇ。
その場合どうやって接続するのかも興味がありますが。
修正
返信

No.000518 HLAN-IDTのHD-HLANのファームの書き換え
Date : Jul.29.2005 17:12'49
Author : mao
Topic : LinkStation:LinuxBox
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=495
やっと、HLAN-IDTのHD-HLANのファームの書き換えが出来ました・・・
現在テスト中です。
少し気になる点が・・・ POWR LEDがスリープ状態を示していますが・・・
修正
返信

No.000517 - Wiki Edit -
Date : Jun.28.2005 02:52'38
Topic : Wikiページの書き込み練習

No.000516 - Wiki Edit -
Date : Jun.15.2005 08:51'08
Topic : LinkStation:SelfCompile

No.000515 ありがとうございました
Date : May.28.2005 08:09'19
Author : 通りすがり
Topic : epステーション
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=514
ご親切に、ありがとうございます。
試してみまして、うまくいきました。
これで、また使えるようになりました。

ありがとうございます。
修正
返信

No.000514 epステーション キーボード メーカー設定
Date : May.28.2005 05:27'50
Author : rerofumi
Topic : epステーション
Parent Article : http://www.limo.fumi2kick.com/fbbs/lmbbs.rhtml?id=513
かろうじて手元に残っていたので返答可能です。

メーカー設定はコードセットを押した後、三桁のメーカーコード入力をした後に改行キーを入力することで行われます。
パナソニックのテレビの場合、
1) コードセット隣の切換SWをテレビ側(右)に切換え
2) コードセットを押し
3) メーカーコード 003 または 004 をキーボードから入力
4) 改行を入力
で、設定できるはずです、

ちなみに他のテレビのコードは

000 ソニー
003 松下1
004 松下2
005 東芝
006 日立
008 三菱
011 ビクター
014 三洋
017 アイワ
020 シャープ1
021 シャープ2
022 フナイ
028 富士通ゼネラル
029 パイオニア
035 NEC

epステーションは切換SWを左に倒して同手順
001 EP-T
002 EP-T
003 EP-P
004 EP-P
005 EP-V
008 EP-S
修正
返信

No.000513 epステーション キーボード
Date : May.28.2005 01:07'37
Author : 通りすがり
Topic : epステーション
はじめまして
epステーションのキーボードについて知りたいと思い検索しましたら、たどり着きました。

できましたら、教えてください。
epステーションを使っているのですが、リモコンで操作できなくなってしまいました。たまたま、ワイヤレスキーボードを入手できたのですが、これが動作するものなのか、わからないのです。
TVを操作できるはずだと思うのですが、メーカー設定の方法がわかりません。
ご存知でしたら、教えていただけないでしょうか?
TVのメーカーはパナソニックです。

よろしくお願いします。
修正
返信

No.000512 - Administrator elimination -

No.000511 - Administrator elimination -

No.000510 Wikiページv国f-桙・・K
Date : Apr.12.2005 18:44'40
あーあー、本日は晴天なり
みなさまもじゃかすか書き込みテストしたってください(れろ)

にゃー、専用ビューじゃないと表示できないのですね。(ると)。

てすと

じぇいすかい


表示
修正
返信

最新ページを表示
次のページを表示
前のページを表示


LiMo BBS System - NewArticle
$Id: lmbbs.rhtml,v 1.17 2003/05/17 17:19:11 rero2 Exp $