2 part forth (907レス)
2 part forth http://mevius.5ch.net/test/read.cgi/tech/1073673931/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
390: デフォルトの名無しさん [sage] 2008/08/02(土) 03:04:06 Forthの実装中sage 実装法のドキュメント付きで晒すかも http://mevius.5ch.net/test/read.cgi/tech/1073673931/390
391: デフォルトの名無しさん [sage] 2008/08/02(土) 04:01:08 forthって、引数の数ミスるだけで崩壊するよな >>390 どんな俺フォースを見せてくれるんだい? 誰もいないしここ、日記帳のつもりで使ってくれよ。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/391
392: デフォルトの名無しさん [sage] 2008/08/02(土) 06:07:26 久々にレスキタワァ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・* !!!!! http://mevius.5ch.net/test/read.cgi/tech/1073673931/392
393: デフォルトの名無しさん [sage] 2008/08/02(土) 08:44:15 >>390 http://www.google.co.jp/search?hl=ja&q=codepad&btnG=%E6%A4%9C%E7%B4%A2&lr= どんな言語使って作るかしらん こんなの補助として使ってみるのも便利かもしらん http://mevius.5ch.net/test/read.cgi/tech/1073673931/393
394: 390 [sage] 2008/08/02(土) 14:40:33 過疎っぷりに見てる人もいないと思ったら、意外といたのね。 >>391 Forthの実装は初めてなので、古典的で教科書通りのIndirect Threaded Code、 Cで書いた仮想マシンの上で動かすってかんじで。 今はMac OS XとLinux(x86)とLinux Zaurus(arm)の上でぽちぽち書いてる。 ポータビリティーは良いのでメモリがあって速度も気にしなければ 簡単にマイコンにも移植可能だと思う。H8なら余裕かな。 今月のトラ技の78K0基板持ってるんだけど、こっちはきついかも。 >>392 あばばばばばば >>393 おお、こんな面白いのがあったのね。 とりあえずアカウント取ってみた。 このスレに落書きしつつ、blogにまとめてけばいいかな。 ANS-ForthのCORE準拠を目指して http://www.taygeta.com/forth/dpans.html 読んでるんだけど、けっこうめんどいなあ。 ある程度実装の目処がたったらコード晒してくつもり。 少々お待ちを。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/394
395: デフォルトの名無しさん [sage] 2008/08/04(月) 22:59:11 Forth は実装が簡単だって聞いてたんで、 自分も作ってみようとちょっと調べたんだけど、 仕組みがよく分からなかったし(ワードの定義とか)、 規格に沿った物にしようとすると意外に仕様が大きくて、 挫折しますた>< http://mevius.5ch.net/test/read.cgi/tech/1073673931/395
396: 390 [sage] 2008/08/05(火) 23:09:27 >>395 辞書まわりは次の10個のワードがあればOK(たぶんね) CREATE COMMA(,) [ ] IMMEDIATE TICK(') COLON(:) SEMICOLON(;) FIND WORD このあたりのワードの挙動は、 http://www.annexia.org/forth ここのjonesforthを参考にすればいいと思う。 これをインスパイヤしたCと日本語のドキュメントを書いてるんだが・・・仕事が忙しくてね・・・ これをざーっと読んで、yforthあたりの簡単な処理系のコード眺めて 実際に動作を確かめればANS-Forthの準拠もそう難しくないかと。 たださ、ANS-Forthって処理系の内部の規定しすぎじゃね? もっと好きなようにやらしてくれよ。一回確保したWORDが二度と解放できないとか、 文字列はヌル終端しない代わりに文字数を記憶するとか、ちょっと気持ち悪い気がする。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/396
397: デフォルトの名無しさん [sage] 2008/08/05(火) 23:23:59 >文字列はヌル終端しない代わりに文字数を記憶する これは正当だと思う。ヌル終端がどれだけのバグを生み出しているか…… http://mevius.5ch.net/test/read.cgi/tech/1073673931/397
398: デフォルトの名無しさん [sage] 2008/08/06(水) 21:05:50 実装としては文字列をヌル終端にしても可。 但し、文字数は必要、かつ、 ヌル終端を当てにしたコードを書いても一般には動く保証なし。 が規定の内容と思われます。他の規定も同様。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/398
399: デフォルトの名無しさん [sage] 2008/08/08(金) 19:23:22 ASCIIZはねーよマジで http://mevius.5ch.net/test/read.cgi/tech/1073673931/399
400: デフォルトの名無しさん [sage] 2008/08/09(土) 16:38:27 でも、C言語で作られたプログラムとの連携したいときは、NUL文字終端がいいよね。 C言語で作られたプログラムの数の多さ、便利さから言うと、無視できないなと。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/400
401: デフォルトの名無しさん [sage] 2008/08/09(土) 18:30:35 Cは捨てるのがよろしいかと。 C++をbetter Cとして使う方がまだましだと思う。 C++を使えないようなリソースのキツい環境で使うんだったらforthを直書きした方が良いんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1073673931/401
402: デフォルトの名無しさん [sage] 2008/08/10(日) 00:15:50 >C++をbetter Cとして使う それ最悪 http://mevius.5ch.net/test/read.cgi/tech/1073673931/402
403: デフォルトの名無しさん [sage] 2008/08/11(月) 00:15:21 402 と同感だが、better Cとして使うのは FORTH 実装にはない(価値が少ない)だろ。 自己学習として作るならまだしも、 FORTHに期待される動作環境だったらアセンブリレベルの設計が必要だろ。 C++使うならC++的設計をしろって。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/403
404: デフォルトの名無しさん [sage] 2008/08/27(水) 00:31:36 forthチック俺言語のプロセスが回った記念カキコ。 forthだと引数管理がけっこう面倒だと思うけど、wordの名前に 引数の数の情報を盛り込んだら楽にならんかね? 俺言語ではこんな感じでドットの数=引数の数にしているんだけど、どう思う? 1 2 ..sum 1 2 3 .:sum 名前の衝突も起こりにくくなって一石二鳥かと思うんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/404
405: デフォルトの名無しさん [sage] 2008/08/27(水) 09:31:38 ドット打つのがひたすらめんどくさそう ifだと.:ifになるの? http://mevius.5ch.net/test/read.cgi/tech/1073673931/405
406: デフォルトの名無しさん [sage] 2008/08/27(水) 21:05:33 こういう風にしたらどう? ・引数可変のワードは # で始まることとする ・ワード [ は現在のパラメータスタックポインタの値を リターンスタックに積む ・ワード ] は現在のパラメータスタックポインタの値と リターンスタックポインタのトップの値の差から パラメータ数を計算しパラメータスタックに積む たとえば [ 10 20 30 ] #sum と書くと、#sum実行直前にはパラメータスタックは 10 20 30 3 となっていて、#sumは3つの数の和を求めればいいことがわかる。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/406
407: 404 [sage] 2008/08/27(水) 22:38:18 >405 そこは構文糖使った方がよろしいかと (a ? b ! cの三項演算子とか) >406 それも考えたけど、そうするとConcatenativeのメリットが死ぬんだよね。 できるだけ前の計算結果に依存しないように考えると、セパレータのようなものを スタックに積むのは良くないので、ワード単体で引数までを意味するようにしたい、 ということですな。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/407
408: デフォルトの名無しさん [sage] 2008/08/28(木) 02:39:56 prologみたいにsum/3みたいにするとか。 よく判ってないが。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/408
409: デフォルトの名無しさん [sage] 2008/09/19(金) 17:01:15 引数管理しなきゃいけないようなコードの構成だと崩壊しそう http://mevius.5ch.net/test/read.cgi/tech/1073673931/409
410: デフォルトの名無しさん [sage] 2008/09/25(木) 03:11:26 しばらくforthやってたら他の言語がいじれなくなってて驚いた。 のめり込むのは危険だなw http://mevius.5ch.net/test/read.cgi/tech/1073673931/410
411: デフォルトの名無しさん [sage] 2008/09/25(木) 03:16:06 >>407 そのセパレータってリスト終端のnullに相当するから あながち間違ってないと思う。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/411
412: デフォルトの名無しさん [sage] 2008/09/25(木) 21:54:56 concatenativeの論理を詰めて行くと、 スタックの機構はコード設計のための因子から外されるのかも。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/412
413: デフォルトの名無しさん [sage] 2008/09/25(木) 22:34:55 >411 Wordの中でWordを呼ぼうとすると破綻するよ。 >412 結局はトップを基点とした対称性(みたいなもの)になるからな。 対称性があれば何でもOK http://mevius.5ch.net/test/read.cgi/tech/1073673931/413
414: デフォルトの名無しさん [sage] 2008/10/01(水) 00:29:26 スタック型プログラミング言語の最少命令セットを探して Whitespaceに辿りついたのですが、 これよりも言語仕様的に小さいスタック型言語ってあります? http://mevius.5ch.net/test/read.cgi/tech/1073673931/414
415: デフォルトの名無しさん [sage] 2008/10/01(水) 01:55:39 define call return conditional jump push pop これだけで足りるかな? http://mevius.5ch.net/test/read.cgi/tech/1073673931/415
416: デフォルトの名無しさん [sage] 2008/10/01(水) 07:09:50 callに条件をつければjumpも省けるんじゃないか? http://mevius.5ch.net/test/read.cgi/tech/1073673931/416
417: デフォルトの名無しさん [sage] 2008/10/02(木) 03:17:37 それより、ひと目で何やってるか判るforth作ってくれないかな。 >>54-65とか何やってるのかわからん。 記号覚えればいいんだろうけど。 : は定義っぽいということは文脈で判った。許す。 >rとかr>は何かと。 ;は文の終り? LISPでいう 'a は (quote a)です、みたいに特殊記号をあまり使わずに 誰が見ても大体判るように、平易な形にならないかな。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/417
418: デフォルトの名無しさん [sage] 2008/10/02(木) 17:56:08 >>417 : word でワードの定義開始、;で定義の終端 >r,r>はリターンスタックへのプッシュとポップ >>54の括弧内はそのワードを実行するとデータスタックの状態がどう変わるかをコメントで表している 他の言語と違って裸のスタックが丸見えなんよ http://mevius.5ch.net/test/read.cgi/tech/1073673931/418
419: デフォルトの名無しさん [sage] 2008/10/03(金) 02:22:08 リターンスタックに何をプッシュ(とポップ)するの?TOSの内容ってこと? >rとr>って判りにくいと思う。 一瞬で見分けられないというか。 不等号ちがうんかと。 記号使わずに全部記述的にできないかな。 mindとかそんなのかな。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/419
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 488 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s