2 part forth (907レス)
前次1-
抽出解除 レス栞

211
(6): デフォルトの名無しさん [sage] 2005/04/23(土) 23:02:44 AAS
>208
208(2): デフォルトの名無しさん [] 2005/04/23(土) 22:44:52 AAS
スタック計算機って、おめえ、1 2 + とかだろ?
そんなんじゃプログラミング言語とはいえねえわな。
その形式で制御文とか関数定義考えたこたあるか?
数字が出たら、素直にスタックに積んで、
トークンが出たら、変数領域を参照して、あったらスタックに積んで、
なかったら、命令領域を参照してあったら、命令にスタックそのものを渡して計算させる。
命令と変数は基本的にstd::mapを使ってコールバックの形などで実現する。
whileとかの解析で思考が詰まってたところだよ。
いっその事、字句解析機もコールバックに渡してしまおうとおもってた。
字句解析には、BOOST::tokenizerを使う。

スタックに積む形式はBOOST::anyあたりがいいかなーと、バリアント変数好きの自分は考えていた。

辞書作成(実質サブルーチン)はちょっとてまかかりそうだけど、evalっぽいの実装すればいけそうだとか考えてた。

とかとか、漠然と考えたことはあるんだけど、実行効率は落第点だろうね。
212: 211 [sage] 2005/04/23(土) 23:07:40 AAS
素材はもちろんC++

アプリにくっつけて、Forthスクリプトもいいかなーとか妄想してる。
218
(2): デフォルトの名無しさん [sage] 2005/04/24(日) 08:22:03 AAS
>>211
FORTHへの招待 ,Harry Katzan,Jr.
池野信一監訳 近代科学社 1600円 ISBN4-7649-0082-3 C3050

読んでみればFORTHの実装がどれだけお手軽か分かる。
絶版なんでOPACで持ってる図書館を探してくれ。
219: 211 [sage] 2005/04/24(日) 15:41:48 AAS
>>216
216(1): デフォルトの名無しさん [] 2005/04/24(日) 00:04:53 AAS
なんでもちろんC++なのかねえ。
普通アセだろ?こんなの
アセンブラできません。(笑
趣味グラマなんで。

>>218
ずいぶん古い文献のようですね。1984年か。
僕、2歳かな・・・。なんだか感慨深いですね。
220
(1): 211 [sage] 2005/04/24(日) 16:48:33 AAS
地元の図書館の検索ページ行ってみたが、ないな。
僕の手が届く(自作できそうな)処理系ってbarinf*ckとforth位なんだよなー。
構文解析作るの面倒だし、うーん。
226
(1): デフォルトの名無しさん [sage] 2005/04/25(月) 21:20:05 AAS
やけに伸びてると思ったら‥‥。
>>211
>whileとかの解析で思考が詰まってたところだよ。
FORTHの場合、多くの制御構造はbranchと0branch
(無条件相対ジャンプと条件ジャンプ)命令を実装したら
FORTH自身で作れる。
>>218 の本とか読んでみなされ。

あと、遠い昔にForth(というかMops+自作Lib)で作った
「メモ帳アプリもどき」のソースを晒しときますね。
外部リンク[cgi]:gdsz.hp.infoseek.co.jp
227
(3): 211 [sage] 2005/04/26(火) 20:43:23 AAS
外部リンク[html]:www-lab.ee.uec.ac.jp
こういうの発見。
意外とC並みのことができそうな感じ。
でも、スクリプトとしてはあんま必要なさそうなのが結構あるなー。

一つのスタックにdoubleとintを混在させる方法が結構面倒そうだ。
やっぱ、Boost::anyかなぁ・・・。any使っとくとその後の拡張が楽そうだな。(Win方面のハンドルとか。)
うーん。

トンカチを持ってる人はすべての問題が釘に見えるっていうのがあるけど、
なんかそんな感じに陥っていそうな感じだ。
どうしよ。

>>226
オブジェクト指向のforthかな??
マニュアルないから、パラメータの意味がわかりにくいな。(引数とかとか。)
でも、ちゃんとアプリできてるのはすごいと思う。

適当なOS向けの拡張ってどうやってやるんだろう。
Boost::anyにハンドル類を突っ込むしか思い当たらない・・・。
スタック何本いるんだろ。3本かな・・・??
というか、キューとかにしちゃってもいいのか??
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s