2 part forth

1デフォルトの名無しさん
垢版 |
NGNG
第四世代
2006/08/30(水) 08:50:36
LLRing乙でした。
2006/09/03(日) 23:05:33
FORTHマンセー
2006/10/21(土) 16:45:01
最近話題無いの?
2006/10/21(土) 22:50:10
back and forthです。
2006/10/21(土) 22:51:33
joyとかの話する?
2006/10/23(月) 13:32:14
今更forth使ってる人は自分で問題解決できる人ばっかだからなあ
2006/10/25(水) 07:31:20
>>296
解決できない俺はどうすれば・・・
2006/10/26(木) 00:39:00
質問すればいいんじゃねえの?!

しかしこのスレ
2年以上経つのにまだ300行ってないのか
2006/11/10(金) 22:20:47
なんかニュースないの?
2006/11/10(金) 22:26:12
>>298
>2年以上経つのにまだ300行ってないのか

FORTHプログラム張りなんだぜ?
2006/11/28(火) 05:56:22
test

>>261-265
>>266,267
2006/11/29(水) 12:28:15
: hoge foo bar ;

{ foo bar } hoge def #コードブロック
* foo bar hoge def #なし
303デフォルトの名無しさん
垢版 |
2006/12/09(土) 03:15:37
age
http://factorcode.org/
304デフォルトの名無しさん
垢版 |
2006/12/10(日) 21:07:56
虎擬の新年号付属基板に移植するプロジェクト
2006/12/26(火) 05:05:37
>>301
おばかな流れにワロス
2007/01/28(日) 04:43:44
a
307デフォルトの名無しさん
垢版 |
2007/02/27(火) 19:51:33
b
2007/02/27(火) 20:28:16
FORTH のすごいところは 対話型の言語でありながらコンパイラだってとこじゃないのかなぁ…
2007/02/27(火) 20:57:50
forthの凄いところは2スタックマシンと辞書による入れ子構造だと思う。

2007/03/02(金) 12:31:00
(・∀・ )っ/凵 ⌒☆ VisualForthマダー?
2007/03/02(金) 12:34:49
>>310
ムーアたん自ら開発済み。
http://www.colorforth.com/index.html
312デフォルトの名無しさん
垢版 |
2007/03/30(金) 06:30:41
最近のCPUって、プログラムの自己書き換えができないとか聞いたけど、
そうだとするとFORTH実装するのつらいよね。
2007/03/30(金) 07:48:32
たしかに今も昔もCPUの回路は自分で変更できないな。
2007/03/30(金) 23:27:06
メモリ書き換えればいいじゃん >312
2007/03/31(土) 16:33:43
>>314
最近のCPUってもコードキャッシュに先読みしたりしているから、
下手にメモリを書き換えると、先読みしたコードと、実際のメモリのコードが一致しなくなる。
ので、正常に動作しなくなったり、パイプラインにペナルティが発生して、動作がおそくなったりするらしい。

FORTHって、新しくワードを追加すると、自分自身が大きくなっていくような言語だから、
そこらへんどうすればいいのかわからない。
だれか教えてくれんかな。
2007/04/01(日) 05:04:00
FORTH以前にコンピュータの基礎知識が混乱してるな。
2007/04/01(日) 12:54:31
>>316
FORTHの事、知らないだろ。
318デフォルトの名無しさん
垢版 |
2007/04/01(日) 13:11:17
>>313
VBばっかり使ってないで、ハーバードアーキテクチャとノイマンアーキテクチャの違いに付いて勉強しろよ(w

2007/04/01(日) 16:33:44
最近だとこの関係でJITコンパイラとXDビットでも問題になってましたな。
JIT関係にノウハウありそうだけど、良く判らん
2007/04/02(月) 05:03:35
べつに何の困難もないと思うけどな。
パラメータスタックなんて自由度の低いポインタみたいなもんじゃん。
2007/04/11(水) 23:18:58
なんかよくわからんけど、問題になりそうなのは、既存ワードの書き換え時だと思うので、

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

でいいと思う。

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

あと、Forthのワードのオーバーライドは、
関数型言語によくあるようにプログラムの全体についてそのワードの定義を更新するのではなく、
再定義後に読み込まれる部分についてしか効果がありません。
後から遡って定義を変更できるようにするには、
初めから特別な方法で定義しておくようになっています。

こんな感じでどうでしょう。
2007/04/24(火) 06:20:31
forthの人気のなさは異常
2007/04/24(火) 23:36:56
異常だな。〜 if 〜 then 〜 else のせいだったりするんかね?
……forthに何があったらもっと流行るかな?
325sage
垢版 |
2007/04/24(火) 23:53:34
て、むしろ正常ってこと?
2007/04/28(土) 23:24:51
Forthを使いたいと思う人より、Forthの処理系を造りたいと思う人の方が多そうな予感
2007/04/30(月) 07:13:54
自分もForthを作っているクチ
毎日、Forthでプログラム作ってるぜ!って奴はいますか?
2007/04/30(月) 08:55:54
ど素人の趣味なので毎日はしませんが、Forth系じゃないコードはほとんど書きません。

むしろForthでForthを作れば良いのではないかと思います。
2007/04/30(月) 12:17:29
>328
Schemeみたいに最低限のプリミティブを用意して、それからForthを組むようにしたら面白いかもね。
Lispだとこんな感じか。
ttp://ja.wikipedia.org/wiki/LISP#.E6.9C.80.E5.B0.8F.E3.81.AELISP

Forthの場合、スタック関連の操作、代入、分岐、Immediate、postponeぐらいで
実装できそうな気がする
330328
垢版 |
2007/04/30(月) 21:27:11
>>329
古典的なForthみたいにですね。
昔はアセンブリで書いた核の部分は、今はCでいいですからね。
ただ、何を核にすれば必要十分なのかについて、あまり資料がないですね。
四則演算と論理演算(ビット操作)もあった方がいい気もしますが、どうなんでしょう
(Lispは四則演算はいらない?)。
gforthはそういうやり方らしいですけど、
実行速度のためCで書き込むプリミティブを多めに取ったと書いています。

はじめ漠然と考えていたのは、間接スレッディングのforth環境の上でネイティブ方式のforthを頭から書いてしまう
というようなことでした。Executableフォーマットのファイルを作るのが結構面倒ですけど。
そこまでしなくても、Cのダイナミックライブラリとのインターフェイスがforth上で書ければ、
ほとんど何でもforthでできるんですけどね。
逆に言えば、マシンやOSの低レベルの仕様を調べないと派手なことをするのは難しいので、
そこが難点かも知れません。

もともとforthは言語仕様自体は貧弱なので、
アプリケーション毎に自前の言語を組上げていくみたいな面白さもあります。
インプットストリームも弄れるので、シンタックスまで変更できますし。
それがあまり面白がられていないということですかね。
2007/05/03(木) 09:02:05
昔、近所の古本屋で標準FORTHを100円で保護したのだが、捨ててしまった。漏れの馬鹿。
ところで、Beginning Forthを注文した。米国からなので2週間くらいかかりそう。
2007/05/06(日) 22:37:02
Forthはともかく資料不足。よって今更ながら英語の入門書をもう一個:
ttp://www.mpeforth.com/books.htm
『Programming Forth』 - Stephen Pelc et al.
2007/05/16(水) 04:42:21
汎用で考えるとやっぱり今どきスタックは32ビット長ですよねえ。
そこで移植にお勧めの埋め込み用32ビットプロセッサって何がありますか?
I/Oがたっぷり用意されているので遊べるかなって思いますがどうでしょう。
2007/05/24(木) 20:39:30
パフォーマンス優先ならSHじゃね?
最近秋葉でも手に入りやすくなったし。

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

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

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

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

どう使うのかなあ?と。
2007/10/04(木) 15:23:24
concatenative
2007/10/07(日) 11:41:29
" hoge" は汚なく感じるな
"hoge" か " hoge " だろと
2007/10/16(火) 01:35:58
http://www.forthfreak.net/index.cgi?ForthBestPractices

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
2007/10/24(水) 17:49:19
FreeBSD 6.2 では boot loder の動作を
コントロールするために ficl という forth が使われていて
るので、勉強中です。

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

以前のバージョンでは nextboot(8) で別ディスク上のカーネルを
次回のみテスト的に起動する設定ができたのですが、今のバージョン 6.2 では
nextboot(8) では同一ディスク内のカーネルのテスト的起動しかできません。

二台のディスクがついているマシンのそれぞれのディスクに別々にOSを
インストールして、交互にアップデートをかけたいのです。
リモートからのコントロールしかできないので、ssh のアクセスができなく
なると一万円払ってOS再インストールなので

そんなわけで、forth のcodeを見ているのですが、難しいです。 orz

FreeBSDのloader 改造したりしている人はいませんか?

353デフォルトの名無しさん
垢版 |
2007/11/03(土) 19:38:03
いまふ
2007/12/22(土) 11:53:19
dsForthがアドエスで動くのはガイシュツ?
2008/01/04(金) 04:23:01
notガイシュツ
2008/01/27(日) 13:50:29
このスレの人たちが使う電卓はRPLだったりするの?
2008/01/27(日) 15:03:59
HPの電卓?
358356
垢版 |
2008/01/27(日) 17:17:11
>>357
そうです。RPNの間違いでした。
2008/01/27(日) 18:59:27
HP41CV,HP28,HP48SX,HP32S,と使ってきましたよ。
ちなみに今使っているHP35は問題大あり!

2008/02/07(木) 10:12:19
Adobe高速JavaScript実装、バイトコードにForthを採用
http://journal.mycom.co.jp/news/2008/02/07/011/index.html
2008/02/07(木) 15:34:36
LLVM涙目
2008/02/07(木) 21:52:21
単なるスタックベースのVMなだけじゃないの?
JavaVMとか既存のVMと一緒でしょ
2008/02/16(土) 22:40:23
急に某ゲーム機上で動くforthが作りたくなって>>339が挙げてるやつ読んでるんだが(まあこれはi386用だけど)、わかりやすいなこれ
実を言うと今までforthはあまり理解してなかったけど、モヤモヤしてたことがすっきりしてきた
しかしforthってシンプルで美しいなぁ
Lispやsmalltalkに負けないと思うのに、このマイナーさ…
2008/02/17(日) 00:09:41
concatenative languageあたりをキーワードにWebをさまよってみると良いよ。
joy factorあたりが面白いかね。おいらも俺言語作成中。
2008/02/17(日) 00:24:42
factor は良いねぇ。秘かに期待している。
2008/02/18(月) 11:50:59

基本的に

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

の機能だけがあると思ってていい?
2008/02/19(火) 07:10:53
concatenativeに?
それならスタックに対する関数適用だけかな
368デフォルトの名無しさん
垢版 |
2008/03/20(木) 14:28:46
forthのコメントってもしやforthで書かれてる?
( コメント ) ←これ
2008/03/20(木) 15:22:35
>>368
実装にもよるけど、
ワード ( を読むと、フラグが立って、ワード ) まで無視する。
Forth で書いてある、ってこういう意味ってことでいいのかな?
370デフォルトの名無しさん
垢版 |
2008/03/20(木) 15:50:12
>>369
いやなんかマクロみたいな機能を使って書かれているのかなーと
forth知らないので全然分かんないんですけど

要するに↓みたいにforth言語で書かれているのか?ってことです
: ( hoge hoge ... ;
2008/03/20(木) 20:15:20
『標準FORTH』だと pp.166 にある。

: ( 29 WORD DROP ; IMMEDIATE

29 は ')' のコード

WORD はスタックトップと同じキャラが出てくるまで入力を読んで、
その先頭のアドレスをスタックトップに置くワード。DROP は説明の
必要ないな。IMMEDIATE は直前に定義されたワードを、
イミディエイトワードにするワード。

C マガジンのきだあきらさんの連載『千言万語』の Forth の時に
紹介してたネタだったような気もする。
2008/03/20(木) 20:16:04
千言万語単行本にならねーかな
2008/03/20(木) 21:37:32
追加。
イミディエイトワード、というのが、プログラムの実行時ではなく
読み込み時に意味を持つワードなので、マクロのような機能と
言えるかもしれません。
374デフォルトの名無しさん
垢版 |
2008/03/21(金) 07:42:46
>>371-373
サンクス

http://www.geocities.jp/naosacra/mops/particle2/immediate.html
これ見てるけどimmediateの意味がいまいちわからん…
何のためのものなんだ?

: ( 29 WORD DROP ; IMMEDIATE
例えば↑にimmediateがついてなかったらどういう動作になるんだろう
2008/03/21(金) 08:55:03
仮に ( がイミディエイトワードで無かったとすると、

: hoge ほげほげ ( ほげほげ ) ;

とか書いた場合に、hoge の定義の一部として、実行される部分になって
しまいます。定義中でも直ちに実行されるワードがイミディエイトワードです。
376デフォルトの名無しさん
垢版 |
2008/03/22(土) 10:18:31
>>375
なるほど
理解した。サンクス
377デフォルトの名無しさん
垢版 |
2008/03/27(木) 22:38:05
最近、Concatenativeな言語というもの目にしたんでage

2008/03/28(金) 00:23:41
なんか酷いのみつけてきたwwwww

ちょっと草植えときますね型言語 Grass
http://www.blue.sky.or.jp/grass/doc_ja.html

スタックマシン使ってるってだけみたいだが(俺には良く分からん)
2008/03/31(月) 10:36:35
forth厨はなんでもかんでもスタックマシンにするな
2008/04/03(木) 02:09:52
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
2008/04/10(木) 03:00:58
あれ?factorの新しいの入れたら日本語出なくなった
エンコード関係?
2008/05/14(水) 14:10:30
factorソースから入れるのめんどくさいな・・・
gitなんて初めて知ったよ
2008/06/03(火) 17:56:33
何か面白い話無い?
2008/06/05(木) 11:05:57
スタック1本で動作する処理系作れ
2008/06/05(木) 16:18:58
バロースのメインフレームはシングルスタックなんだぜ?
2008/06/05(木) 18:37:49
wikipediaより

> スタックを1つしか持たないスタックマシンは、
> 計算モデルとしては非常に弱い。例えば、1-スタックマシンでは、
> 0n1n(0の並びの後に同じ個数の1が並ぶ言語)のような単純な言語も認識できない。
> 1-スタックマシンの計算能力は、有限オートマトンよりも高いが、
> 決定性プッシュダウン・オートマトンよりも低い。

> 一方、複数のスタックを持つスタックマシンはチューリング機械と等価である。
> 例えば、2-スタックマシンでは、チューリング機械をエミュレートできる
> (チューリング機械のヘッド位置から左側のテープをひとつのスタックが代替し、
> 右側のテープをもうひとつのスタックが代替する)。

へぇ〜
2008/07/17(木) 00:50:58
factorのドキュメント消えてら
388デフォルトの名無しさん
垢版 |
2008/08/01(金) 21:55:57
V
http://en.wikipedia.org/wiki/V_(programming_language)

Onyx
http://www.canonware.com/onyx/

Forthもこれらも俺には使いこなせないんだけどね orz
389388
垢版 |
2008/08/01(金) 21:57:15
Vはこっちのページも
http://code.google.com/p/v-language/
2008/08/02(土) 03:04:06
Forthの実装中sage
実装法のドキュメント付きで晒すかも
2008/08/02(土) 04:01:08
forthって、引数の数ミスるだけで崩壊するよな

>>390
どんな俺フォースを見せてくれるんだい?
誰もいないしここ、日記帳のつもりで使ってくれよ。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況