2 part forth (909レス)
1-

313
(1): 2007/03/30(金)07:48 AAS
たしかに今も昔もCPUの回路は自分で変更できないな。
314
(1): 2007/03/30(金)23:27 AAS
メモリ書き換えればいいじゃん >312
315: [ ] 2007/03/31(土)16:33 AAS
>>314
最近のCPUってもコードキャッシュに先読みしたりしているから、
下手にメモリを書き換えると、先読みしたコードと、実際のメモリのコードが一致しなくなる。
ので、正常に動作しなくなったり、パイプラインにペナルティが発生して、動作がおそくなったりするらしい。

FORTHって、新しくワードを追加すると、自分自身が大きくなっていくような言語だから、
そこらへんどうすればいいのかわからない。
だれか教えてくれんかな。
316
(1): 2007/04/01(日)05:04 AAS
FORTH以前にコンピュータの基礎知識が混乱してるな。
317: 2007/04/01(日)12:54 AAS
>>316
FORTHの事、知らないだろ。
318: 2007/04/01(日)13:11 AAS
>>313
VBばっかり使ってないで、ハーバードアーキテクチャとノイマンアーキテクチャの違いに付いて勉強しろよ(w
319: 2007/04/01(日)16:33 AAS
最近だとこの関係でJITコンパイラとXDビットでも問題になってましたな。
JIT関係にノウハウありそうだけど、良く判らん
320: 2007/04/02(月)05:03 AAS
べつに何の困難もないと思うけどな。
パラメータスタックなんて自由度の低いポインタみたいなもんじゃん。
321: 2007/04/11(水)23:18 AAS
なんかよくわからんけど、問題になりそうなのは、既存ワードの書き換え時だと思うので、

ワード書き換え→キャッシュをフラッシュ

でいいと思う。
322: 2007/04/23(月)23:27 AAS
いかにForthでも、線路を作りながら電車を走らせるようなことはありません。
ワードをコンパイルした後、そのワードを実行するまでには
少なくとも実行ワード名を読み込むI/Oプロセスが介在するので、
人間にとっては一瞬でも、機械には一服する余裕があります。

あと、Forthのワードのオーバーライドは、
関数型言語によくあるようにプログラムの全体についてそのワードの定義を更新するのではなく、
再定義後に読み込まれる部分についてしか効果がありません。
省3
323: 2007/04/24(火)06:20 AAS
forthの人気のなさは異常
324: 2007/04/24(火)23:36 AAS
異常だな。〜 if 〜 then 〜 else のせいだったりするんかね?
……forthに何があったらもっと流行るかな?
325: sage 2007/04/24(火)23:53 AAS
て、むしろ正常ってこと?
326: 2007/04/28(土)23:24 AAS
Forthを使いたいと思う人より、Forthの処理系を造りたいと思う人の方が多そうな予感
327: 2007/04/30(月)07:13 AAS
自分もForthを作っているクチ
毎日、Forthでプログラム作ってるぜ!って奴はいますか?
328
(2): 2007/04/30(月)08:55 AAS
ど素人の趣味なので毎日はしませんが、Forth系じゃないコードはほとんど書きません。

むしろForthでForthを作れば良いのではないかと思います。
329
(1): 2007/04/30(月)12:17 AAS
>328
Schemeみたいに最低限のプリミティブを用意して、それからForthを組むようにしたら面白いかもね。
Lispだとこんな感じか。
外部リンク:ja.wikipedia.org

Forthの場合、スタック関連の操作、代入、分岐、Immediate、postponeぐらいで
実装できそうな気がする
330: 328 2007/04/30(月)21:27 AAS
>>329
古典的なForthみたいにですね。
昔はアセンブリで書いた核の部分は、今はCでいいですからね。
ただ、何を核にすれば必要十分なのかについて、あまり資料がないですね。
四則演算と論理演算(ビット操作)もあった方がいい気もしますが、どうなんでしょう
(Lispは四則演算はいらない?)。
gforthはそういうやり方らしいですけど、
省11
331: 2007/05/03(木)09:02 AAS
昔、近所の古本屋で標準FORTHを100円で保護したのだが、捨ててしまった。漏れの馬鹿。
ところで、Beginning Forthを注文した。米国からなので2週間くらいかかりそう。
332: 2007/05/06(日)22:37 AAS
Forthはともかく資料不足。よって今更ながら英語の入門書をもう一個:
外部リンク[htm]:www.mpeforth.com
『Programming Forth』 - Stephen Pelc et al.
333: 2007/05/16(水)04:42 AAS
汎用で考えるとやっぱり今どきスタックは32ビット長ですよねえ。
そこで移植にお勧めの埋め込み用32ビットプロセッサって何がありますか?
I/Oがたっぷり用意されているので遊べるかなって思いますがどうでしょう。
334: 2007/05/24(木)20:39 AAS
パフォーマンス優先ならSHじゃね?
最近秋葉でも手に入りやすくなったし。

FORTHコンパイラをアセンブラでガリガリに書きたい人なら
アセンブラが書きやすいH8かな。
335: 2007/06/05(火)19:20 AAS
φ(。。) めもめも
336
(1): 2007/06/05(火)20:54 AAS
HDLだけでFORTHは作れる?
337: 2007/06/11(月)13:07 AAS
>>336
作れるみたいですね やってみたことないけどw
外部リンク[htm]:www.ultratechnology.com
この中のMicroCoreって初めて知りました
外部リンク:www.microcore.org
338: 2007/07/26(木)16:12 AAS
joyの話しようぜ
339
(1): 2007/09/15(土)23:22 AAS
後で読む: i386 / Linux 向け Forth コンパイラの作り方。

外部リンク[txt]:www.annexia.org
340
(1): 2007/09/26(水)15:51 AAS
CでForthの処理系を書いてみた。
GCにはBoehm GC、辞書にはJudy Arrayを使ったので
ほとんど手間がかかっていないわりに速かった。
まだ単純な処理しか出来ないけどrubyとかより速いかも。
341: 2007/09/29(土)00:15 AAS
ささやかな期待
342
(1): 2007/09/29(土)19:36 AAS
rubyより遅いforhtなんてあるのか?
343
(1): 2007/09/29(土)19:51 AAS
>>342
rubyで書けばいいんじゃね?
344: 2007/09/30(日)17:21 AAS
>>343
激しく楽しくない気が
345
(2): 2007/09/30(日)19:36 AAS
>>340
GC?
346
(1): 2007/10/02(火)20:36 AAS
>>345
Garbage Collector でそ。
347
(1): 2007/10/02(火)22:29 AAS
(forthに)GC?

てことじゃないか?
348: 345 2007/10/03(水)23:33 AAS
>>347
フォローありがとうございます。

>>346
すみません。347さんの線でお願いします。

どう使うのかなあ?と。
349: 2007/10/04(木)15:23 AAS
concatenative
350: 2007/10/07(日)11:41 AAS
" hoge" は汚なく感じるな
"hoge" か " hoge " だろと
351: 2007/10/16(火)01:35 AAS
外部リンク[cgi]:www.forthfreak.net

Programming guidelines when you start doing forth programming:
* try to keep your words to one line, two lines max
* try not to pass more than 3 items on the stack to a word, preferably only 2
* try not to juggle more than 3 items on the stack within a word if you can
352: 2007/10/24(水)17:49 AAS
FreeBSD 6.2 では boot loder の動作を
コントロールするために ficl という forth が使われていて
るので、勉強中です。

FreeBSD のサーバーをリモートから管理しています。

以前のバージョンでは nextboot(8) で別ディスク上のカーネルを
次回のみテスト的に起動する設定ができたのですが、今のバージョン 6.2 では
nextboot(8) では同一ディスク内のカーネルのテスト的起動しかできません。
省6
353: 2007/11/03(土)19:38 AAS
いまふ
354: 2007/12/22(土)11:53 AAS
dsForthがアドエスで動くのはガイシュツ?
355: 2008/01/04(金)04:23 AAS
notガイシュツ
356
(1): 2008/01/27(日)13:50 AAS
このスレの人たちが使う電卓はRPLだったりするの?
357
(1): 2008/01/27(日)15:03 AAS
HPの電卓?
358: 356 2008/01/27(日)17:17 AAS
>>357
そうです。RPNの間違いでした。
359: 2008/01/27(日)18:59 AAS
HP41CV,HP28,HP48SX,HP32S,と使ってきましたよ。
ちなみに今使っているHP35は問題大あり!
360: 2008/02/07(木)10:12 AAS
Adobe高速JavaScript実装、バイトコードにForthを採用
外部リンク[html]:journal.mycom.co.jp
361: 2008/02/07(木)15:34 AAS
LLVM涙目
362: 2008/02/07(木)21:52 AAS
単なるスタックベースのVMなだけじゃないの?
JavaVMとか既存のVMと一緒でしょ
363: 2008/02/16(土)22:40 AAS
急に某ゲーム機上で動くforthが作りたくなって>>339が挙げてるやつ読んでるんだが(まあこれはi386用だけど)、わかりやすいなこれ
実を言うと今までforthはあまり理解してなかったけど、モヤモヤしてたことがすっきりしてきた
しかしforthってシンプルで美しいなぁ
Lispやsmalltalkに負けないと思うのに、このマイナーさ…
364: 2008/02/17(日)00:09 AAS
concatenative languageあたりをキーワードにWebをさまよってみると良いよ。
joy factorあたりが面白いかね。おいらも俺言語作成中。
365: 2008/02/17(日)00:24 AAS
factor は良いねぇ。秘かに期待している。
366: 2008/02/18(月)11:50 AAS
基本的に

1.stackの一番上と二番目の値に対して演算
2.stackの一番上だけ取り除く
3.stackのn番目と一番目を交換

の機能だけがあると思ってていい?
367: 2008/02/19(火)07:10 AAS
concatenativeに?
それならスタックに対する関数適用だけかな
368
(1): 2008/03/20(木)14:28 AAS
forthのコメントってもしやforthで書かれてる?
( コメント ) ←これ
369
(1): 2008/03/20(木)15:22 AAS
>>368
実装にもよるけど、
ワード ( を読むと、フラグが立って、ワード ) まで無視する。
Forth で書いてある、ってこういう意味ってことでいいのかな?
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 は直前に定義されたワードを、
イミディエイトワードにするワード。
省2
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
省1
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-スタックマシンの計算能力は、有限オートマトンよりも高いが、
> 決定性プッシュダウン・オートマトンよりも低い。

> 一方、複数のスタックを持つスタックマシンはチューリング機械と等価である。
省4
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

どんな言語使って作るかしらん
こんなの補助として使ってみるのも便利かもしらん
1-
あと 516 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s