21/03/11 07:58:59.35 ifNxw6Pa.net
でもスタックイジイジするのパズルみたいでめちゃくちゃ楽しいんだよなあ、くやしい…
897:デフォルトの名無しさん
21/08/23 12:03:08.07 YpDpq+5R.net
もはや(8ビット)PCのためではなく(マニアックな)人間のための言語。
898:デフォルトの名無しさん
22/01/01 09:37:17.88 6v4FYv8q.net
あけおめ!
899:デフォルトの名無しさん
22/01/10 20:06:51.30 Ge4oCWB3.net
久々に書き込みあったと思えば
あけおめ!
今どきforthは趣味だろうけど良い趣味だよ
あとAndroid版のgforthは関数電卓代わりに毎日使ってる
900:デフォルトの名無しさん
22/05/16 14:09:01.58 /9w+5JsX.net
保守
する価値がまだあるだろうか
901:デフォルトの名無しさん
22/05/17 10:45:03 u8alpQJv.net
今勉強中だけどおもしろい
しかしパーシングワードはどうにかならんかったのか
定義の底に埋もれたnameが解釈時に吸い込んだりするのが文脈飛んで分かりにくい…
psみたいに/name {code} exch def方式のほうが一貫性あったのではないか
902:デフォルトの名無しさん
22/05/17 10:55:12 u8alpQJv.net
FORTHへの招待って古い本買ったんだけど、PICK/ROLLのindexが1始まりだったり、今の処理系と結構違うよね
長々とハードの話から始まり機能紹介までで終わってて、具体的なコーディングテクニックまでたどり着いてない…
モダンでオススメな本ってあるかな
903:デフォルトの名無しさん
22/05/19 08:44:16.13 13z7p19v.net
モダンなFORTHなど存在しない!
904:デフォルトの名無しさん
22/05/20 15:21:07.51 B9Pct0M/.net
初学者だけど
まあレトロなところに惹かれたのは否定できないな
有名な"FORTH思考"とか、一般プログラミング作法の啓蒙書としては素晴らしい
ブロックの章立ての章とかよく考えさせられる、まあ実ファィルに置き換えて写経してるけど
905:デフォルトの名無しさん
24/01/01 09:03:44.52 MIyexYoQ.net
あけおめ!
906:デフォルトの名無しさん
24/01/21 09:24:04.48 rroAgTgL.net
古の8bit機みたいな小さいマシンでnextルーチン書くところから始めてみたい
907:デフォルトの名無しさん
24/05/04 06:00:27.59 +DAXDwQe.net
標準FORTHが国会図書館のサイトで読めるようになってる(要登録
URLリンク(dl.ndl.go.jp)
他にも古い本が色々見られるようになったっぽい。
908:デフォルトの名無しさん
24/05/05 14:45:30.58 Fv0JPqsX.net
読もう。持ってたのは昔無くした
909:デフォルトの名無しさん
25/01/01 10:04:42.73 exme2yo6.net
あけおめ
910:デフォルトの名無しさん
25/06/14 06:37:53.81 3Q/jS2n6.net
forthソースファイルをunices上で実行可能ファイルにする一般的な方法ってある?
PC上を想定していて超リッチなgforthなら #! 機構を想定して#!を\のシノニムとして定義してくれてて助かるんだけれども、これのない場合にも対応したい
思い付いたのは
: && true ; \ exec forth "$0" -- "$@"
forth側:
ワード&&(普通未定義)をtrue=-1としてコロン定義、後はコメント
sh側: :コマンドが成功したらtrueコマンドを実行、次にインタプリタを起動
なんだけれどsh側では
" exec" "forth" ...
とトークン化されてcommand not found
\execとスペース開けずに書けたら良いんだけどするとforthはコメントとして認識しない
何かいい知恵あったら教えてください
911:デフォルトの名無しさん
25/06/14 06:52:21.04 3Q/jS2n6.net
>>902
forthのrollは n roll でn個先までを1回まわすけど
postscriptのrollは n m roll でn個先までm回まわせてより強力なのよね
mは負でも可で逆回転もできる
あんまりコードに数値を入れるのはbad practiceとはいえforth書いてると時々欲しくなるやつ…
912:デフォルトの名無しさん
25/06/21 00:54:36.13 flEjrxpy.net
>>910だけど自己解決
: && true ; ( exec forth "$0" -- "$@" )
で行けた
潔癖症ではないから定義されたワード&&は気にしない、たぶん処理系定義の&&は見たこと無いこら潰す事もないはず
一応win32forthとか複数の処理系で
forget &&
て消せたと思うんだけれど、今試してみたらgforthに無いからforgetは非標準ワードなのな
913:デフォルトの名無しさん
25/06/21 11:16:23.88 fGhLJfIJ.net
こら
914:デフォルトの名無しさん
25/06/26 14:21:09.64 nmyewptE.net
神経質すぎじゃねる
まあforgetはmarkerで実装できそうな気がする
915:デフォルトの名無しさん
25/10/12 02:30:37.41 DKsy7+ZR.net
PCで触ってないからunix(shebang)+forth処理系のハックは詳しくないんだけれども、まあ面白そうだね
ワードを消すforgetは任意のワード対象、で良かったかな(たしかそう)
しかしmarkerは事前に設定したマーカーまでオフセットずらして巻き戻し、よってそれまでのワードがリセットされる仕組みだったはずだから、任意ワードを、特に名指しで消すには不向きでは
いやまあ消せるんだからマーカーの記録されてるメモリを退避したりリカバリしたり丁寧に管理してやればできるはずだが…
916:デフォルトの名無しさん
25/10/17 05:21:31.52 D1Ebmx1L.net
別に余計なワードがあろうと問題なくね
たまたま同じ名前のワードを定義したらそれが有効な訳だし
ブートストラップ用途なら別に潰されても困らん、ブートストラップにしか使わんのだからな