2 part forth (907レス)
上下前次1-新
370: 2008/03/20(木)15:50 AAS
>>369
いやなんかマクロみたいな機能を使って書かれているのかなーと
forth知らないので全然分かんないんですけど
要するに↓みたいにforth言語で書かれているのか?ってことです
: ( hoge hoge ... ;
371(1): 2008/03/20(木)20:15 AAS
『標準FORTH』だと pp.166 にある。
: ( 29 WORD DROP ; IMMEDIATE
29 は ')' のコード
WORD はスタックトップと同じキャラが出てくるまで入力を読んで、
その先頭のアドレスをスタックトップに置くワード。DROP は説明の
必要ないな。IMMEDIATE は直前に定義されたワードを、
イミディエイトワードにするワード。
C マガジンのきだあきらさんの連載『千言万語』の Forth の時に
紹介してたネタだったような気もする。
372(1): 2008/03/20(木)20:16 AAS
千言万語単行本にならねーかな
373(1): 2008/03/20(木)21:37 AAS
追加。
イミディエイトワード、というのが、プログラムの実行時ではなく
読み込み時に意味を持つワードなので、マクロのような機能と
言えるかもしれません。
374: 2008/03/21(金)07:42 AAS
>>371-373
サンクス
外部リンク[html]:www.geocities.jp
これ見てるけどimmediateの意味がいまいちわからん…
何のためのものなんだ?
: ( 29 WORD DROP ; IMMEDIATE
例えば↑にimmediateがついてなかったらどういう動作になるんだろう
375(1): 2008/03/21(金)08:55 AAS
仮に ( がイミディエイトワードで無かったとすると、
: hoge ほげほげ ( ほげほげ ) ;
とか書いた場合に、hoge の定義の一部として、実行される部分になって
しまいます。定義中でも直ちに実行されるワードがイミディエイトワードです。
376: 2008/03/22(土)10:18 AAS
>>375
なるほど
理解した。サンクス
377: 2008/03/27(木)22:38 AAS
最近、Concatenativeな言語というもの目にしたんでage
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はねーよマジで
上下前次1-新書関写板覧索設栞歴
あと 508 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.012s