2 part forth (907レス)
2 part forth http://mevius.5ch.net/test/read.cgi/tech/1073673931/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
211: デフォルトの名無しさん [sage] 2005/04/23(土) 23:02:44 >208 数字が出たら、素直にスタックに積んで、 トークンが出たら、変数領域を参照して、あったらスタックに積んで、 なかったら、命令領域を参照してあったら、命令にスタックそのものを渡して計算させる。 命令と変数は基本的にstd::mapを使ってコールバックの形などで実現する。 whileとかの解析で思考が詰まってたところだよ。 いっその事、字句解析機もコールバックに渡してしまおうとおもってた。 字句解析には、BOOST::tokenizerを使う。 スタックに積む形式はBOOST::anyあたりがいいかなーと、バリアント変数好きの自分は考えていた。 辞書作成(実質サブルーチン)はちょっとてまかかりそうだけど、evalっぽいの実装すればいけそうだとか考えてた。 とかとか、漠然と考えたことはあるんだけど、実行効率は落第点だろうね。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/211
212: 211 [sage] 2005/04/23(土) 23:07:40 素材はもちろんC++ アプリにくっつけて、Forthスクリプトもいいかなーとか妄想してる。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/212
218: デフォルトの名無しさん [sage] 2005/04/24(日) 08:22:03 >>211 FORTHへの招待 ,Harry Katzan,Jr. 池野信一監訳 近代科学社 1600円 ISBN4-7649-0082-3 C3050 読んでみればFORTHの実装がどれだけお手軽か分かる。 絶版なんでOPACで持ってる図書館を探してくれ。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/218
219: 211 [sage] 2005/04/24(日) 15:41:48 >>216 アセンブラできません。(笑 趣味グラマなんで。 >>218 ずいぶん古い文献のようですね。1984年か。 僕、2歳かな・・・。なんだか感慨深いですね。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/219
220: 211 [sage] 2005/04/24(日) 16:48:33 地元の図書館の検索ページ行ってみたが、ないな。 僕の手が届く(自作できそうな)処理系ってbarinf*ckとforth位なんだよなー。 構文解析作るの面倒だし、うーん。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/220
226: デフォルトの名無しさん [sage] 2005/04/25(月) 21:20:05 やけに伸びてると思ったら‥‥。 >>211 >whileとかの解析で思考が詰まってたところだよ。 FORTHの場合、多くの制御構造はbranchと0branch (無条件相対ジャンプと条件ジャンプ)命令を実装したら FORTH自身で作れる。 >>218 の本とか読んでみなされ。 あと、遠い昔にForth(というかMops+自作Lib)で作った 「メモ帳アプリもどき」のソースを晒しときますね。 ttp://gdsz.hp.infoseek.co.jp/cgi-bin/yukiwiki/yukiwiki.cgi?mycmd=read&mypage=mNote http://mevius.5ch.net/test/read.cgi/tech/1073673931/226
227: 211 [sage] 2005/04/26(火) 20:43:23 ttp://www-lab.ee.uec.ac.jp/text/forth/man/man.html こういうの発見。 意外とC並みのことができそうな感じ。 でも、スクリプトとしてはあんま必要なさそうなのが結構あるなー。 一つのスタックにdoubleとintを混在させる方法が結構面倒そうだ。 やっぱ、Boost::anyかなぁ・・・。any使っとくとその後の拡張が楽そうだな。(Win方面のハンドルとか。) うーん。 トンカチを持ってる人はすべての問題が釘に見えるっていうのがあるけど、 なんかそんな感じに陥っていそうな感じだ。 どうしよ。 >>226 オブジェクト指向のforthかな?? マニュアルないから、パラメータの意味がわかりにくいな。(引数とかとか。) でも、ちゃんとアプリできてるのはすごいと思う。 適当なOS向けの拡張ってどうやってやるんだろう。 Boost::anyにハンドル類を突っ込むしか思い当たらない・・・。 スタック何本いるんだろ。3本かな・・・?? というか、キューとかにしちゃってもいいのか?? http://mevius.5ch.net/test/read.cgi/tech/1073673931/227
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.274s*