2 part forth (907レス)
上下前次1-新
378: 2008/03/28(金)00:23 AAS
なんか酷いのみつけてきたwwwww
ちょっと草植えときますね型言語 Grass
外部リンク[html]:www.blue.sky.or.jp
スタックマシン使ってるってだけみたいだが(俺には良く分からん)
379: 2008/03/31(月)10:36 AAS
forth厨はなんでもかんでもスタックマシンにするな
380: 2008/04/03(木)02:09 AAS
factorでHelloWorldのCGIやってみた
httpdからのfactor起動はバッチファイルで
USING: io ;
"Content-type: text/html; charset=Shift_JIS\n\n" print
"<HTML><head><title></title></head>\n<body>" print
"はろ〜factor表\示可能\" print
"<br>\n</body></HTML>" print
なんか楽しいw
381: 2008/04/10(木)03:00 AAS
あれ?factorの新しいの入れたら日本語出なくなった
エンコード関係?
382: 2008/05/14(水)14:10 AAS
factorソースから入れるのめんどくさいな・・・
gitなんて初めて知ったよ
383: 2008/06/03(火)17:56 AAS
何か面白い話無い?
384: 2008/06/05(木)11:05 AAS
スタック1本で動作する処理系作れ
385: 2008/06/05(木)16:18 AAS
バロースのメインフレームはシングルスタックなんだぜ?
386: 2008/06/05(木)18:37 AAS
wikipediaより
> スタックを1つしか持たないスタックマシンは、
> 計算モデルとしては非常に弱い。例えば、1-スタックマシンでは、
> 0n1n(0の並びの後に同じ個数の1が並ぶ言語)のような単純な言語も認識できない。
> 1-スタックマシンの計算能力は、有限オートマトンよりも高いが、
> 決定性プッシュダウン・オートマトンよりも低い。
> 一方、複数のスタックを持つスタックマシンはチューリング機械と等価である。
> 例えば、2-スタックマシンでは、チューリング機械をエミュレートできる
> (チューリング機械のヘッド位置から左側のテープをひとつのスタックが代替し、
> 右側のテープをもうひとつのスタックが代替する)。
へぇ〜
387: 2008/07/17(木)00:50 AAS
factorのドキュメント消えてら
388(1): 2008/08/01(金)21:55 AAS
V
外部リンク:en.wikipedia.org
Onyx
外部リンク:www.canonware.com
Forthもこれらも俺には使いこなせないんだけどね orz
389: 388 2008/08/01(金)21:57 AAS
Vはこっちのページも
外部リンク:code.google.com
390(4): 2008/08/02(土)03:04 AAS
Forthの実装中sage
実装法のドキュメント付きで晒すかも
391(1): 2008/08/02(土)04:01 AAS
forthって、引数の数ミスるだけで崩壊するよな
>>390
どんな俺フォースを見せてくれるんだい?
誰もいないしここ、日記帳のつもりで使ってくれよ。
392(1): 2008/08/02(土)06:07 AAS
久々にレスキタワァ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・* !!!!!
393(1): 2008/08/02(土)08:44 AAS
>>390
外部リンク:www.google.co.jp
どんな言語使って作るかしらん
こんなの補助として使ってみるのも便利かもしらん
394: 390 2008/08/02(土)14:40 AAS
過疎っぷりに見てる人もいないと思ったら、意外といたのね。
>>391
Forthの実装は初めてなので、古典的で教科書通りのIndirect Threaded Code、
Cで書いた仮想マシンの上で動かすってかんじで。
今はMac OS XとLinux(x86)とLinux Zaurus(arm)の上でぽちぽち書いてる。
ポータビリティーは良いのでメモリがあって速度も気にしなければ
簡単にマイコンにも移植可能だと思う。H8なら余裕かな。
今月のトラ技の78K0基板持ってるんだけど、こっちはきついかも。
>>392
あばばばばばば
>>393
おお、こんな面白いのがあったのね。
とりあえずアカウント取ってみた。
このスレに落書きしつつ、blogにまとめてけばいいかな。
ANS-ForthのCORE準拠を目指して
外部リンク[html]:www.taygeta.com
読んでるんだけど、けっこうめんどいなあ。
ある程度実装の目処がたったらコード晒してくつもり。
少々お待ちを。
395(1): 2008/08/04(月)22:59 AAS
Forth は実装が簡単だって聞いてたんで、
自分も作ってみようとちょっと調べたんだけど、
仕組みがよく分からなかったし(ワードの定義とか)、
規格に沿った物にしようとすると意外に仕様が大きくて、
挫折しますた><
396: 390 2008/08/05(火)23:09 AAS
>>395
辞書まわりは次の10個のワードがあればOK(たぶんね)
CREATE
COMMA(,)
[
]
IMMEDIATE
TICK(')
COLON(:)
SEMICOLON(;)
FIND
WORD
このあたりのワードの挙動は、
外部リンク:www.annexia.org
ここのjonesforthを参考にすればいいと思う。
これをインスパイヤしたCと日本語のドキュメントを書いてるんだが・・・仕事が忙しくてね・・・
これをざーっと読んで、yforthあたりの簡単な処理系のコード眺めて
実際に動作を確かめればANS-Forthの準拠もそう難しくないかと。
たださ、ANS-Forthって処理系の内部の規定しすぎじゃね?
もっと好きなようにやらしてくれよ。一回確保したWORDが二度と解放できないとか、
文字列はヌル終端しない代わりに文字数を記憶するとか、ちょっと気持ち悪い気がする。
397: 2008/08/05(火)23:23 AAS
>文字列はヌル終端しない代わりに文字数を記憶する
これは正当だと思う。ヌル終端がどれだけのバグを生み出しているか……
398: 2008/08/06(水)21:05 AAS
実装としては文字列をヌル終端にしても可。
但し、文字数は必要、かつ、
ヌル終端を当てにしたコードを書いても一般には動く保証なし。
が規定の内容と思われます。他の規定も同様。
399: 2008/08/08(金)19:23 AAS
ASCIIZはねーよマジで
400: 2008/08/09(土)16:38 AAS
でも、C言語で作られたプログラムとの連携したいときは、NUL文字終端がいいよね。
C言語で作られたプログラムの数の多さ、便利さから言うと、無視できないなと。
401: 2008/08/09(土)18:30 AAS
Cは捨てるのがよろしいかと。
C++をbetter Cとして使う方がまだましだと思う。
C++を使えないようなリソースのキツい環境で使うんだったらforthを直書きした方が良いんじゃね?
402: 2008/08/10(日)00:15 AAS
>C++をbetter Cとして使う
それ最悪
403: 2008/08/11(月)00:15 AAS
402 と同感だが、better Cとして使うのは FORTH 実装にはない(価値が少ない)だろ。
自己学習として作るならまだしも、
FORTHに期待される動作環境だったらアセンブリレベルの設計が必要だろ。
C++使うならC++的設計をしろって。
404(1): 2008/08/27(水)00:31 AAS
forthチック俺言語のプロセスが回った記念カキコ。
forthだと引数管理がけっこう面倒だと思うけど、wordの名前に
引数の数の情報を盛り込んだら楽にならんかね?
俺言語ではこんな感じでドットの数=引数の数にしているんだけど、どう思う?
1 2 ..sum
1 2 3 .:sum
名前の衝突も起こりにくくなって一石二鳥かと思うんだけど。
405(1): 2008/08/27(水)09:31 AAS
ドット打つのがひたすらめんどくさそう
ifだと.:ifになるの?
406(1): 2008/08/27(水)21:05 AAS
こういう風にしたらどう?
・引数可変のワードは # で始まることとする
・ワード [ は現在のパラメータスタックポインタの値を
リターンスタックに積む
・ワード ] は現在のパラメータスタックポインタの値と
リターンスタックポインタのトップの値の差から
パラメータ数を計算しパラメータスタックに積む
たとえば
[ 10 20 30 ] #sum
と書くと、#sum実行直前にはパラメータスタックは
10 20 30 3
となっていて、#sumは3つの数の和を求めればいいことがわかる。
407(1): 404 2008/08/27(水)22:38 AAS
>405
そこは構文糖使った方がよろしいかと (a ? b ! cの三項演算子とか)
>406
それも考えたけど、そうするとConcatenativeのメリットが死ぬんだよね。
できるだけ前の計算結果に依存しないように考えると、セパレータのようなものを
スタックに積むのは良くないので、ワード単体で引数までを意味するようにしたい、
ということですな。
上下前次1-新書関写板覧索設栞歴
あと 500 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.010s