2 part forth

1デフォルトの名無しさん
垢版 |
NGNG
第四世代
2005/12/16(金) 19:51:11
>>265
FORTHの中の人の事情がいろいろ表に出てきてるから。
事情がわかると「なるほど」と思う。
2005/12/16(金) 20:26:43
>>265
硬いこというなよ。普通の言語だって演算子の優先順位とかあるじゃんか。
ソースも1文字ずつ後ろから読んでたら面白かったのに>forth
2005/12/16(金) 22:34:35
前から後ろから
2005/12/17(土) 08:06:49
でも入口と出口は一緒
pushしてpop
「おめでとうございます。元気な男の子ですよ」
271デフォルトの名無しさん
垢版 |
2005/12/17(土) 10:33:36
interlog
2005/12/17(土) 12:43:43
そこで、swapしちゃいます
2005/12/17(土) 13:46:53
HTROFに改名しますた
274デフォルトの名無しさん
垢版 |
2006/01/07(土) 18:05:41
自然数 N が与えられたとき、
1 から N までの数字を N 個並べる組み合わせをすべて
列挙するプログラムは Forth で書くとどうなりますか?

例えば N = 3 のとき
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
となるようにです。
よろしくおながいします。
2006/02/12(日) 23:31:47
ゅしほ
276デフォルトの名無しさん
垢版 |
2006/03/05(日) 10:04:15
>>27のリンク先で
「WORDというワードは呪われた代物で、無いほうがよい」っていうのはどういう意味かね。
ほとんど表記法を変更する目的でしか使われないからかな。
2006/03/05(日) 16:17:17
訳注に書いてあるとおり。
プログラムの可読性を損ねるからだと思われ。
2006/03/18(土) 22:15:13
TextSS のWindowsXP(Professional)64bit対応化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
2006/03/30(木) 18:03:27
手軽に手に入る唯一のFORTHチップ?

http://www.offete.com/ep32book.html
2006/03/30(木) 18:17:19
オライリーの表紙に龍はないだろ
281デフォルトの名無しさん
垢版 |
2006/05/02(火) 18:58:48
>>274

こんな感じか? たぶんもっと美しいやり方があるのだろうが、ヘタレの
俺にはこの程度しかわからん。

variable x
0 x !
: make.stack 1+ 1 do i loop ;
: clean.stack x @ 0 do drop loop ;
: fn recursive
dup 2 = if
drop .s swap .s swap
else
>r r@ 0 do J 1 - fn J 1 - roll cr loop r> drop
then ;
: show.all
dup x !
dup 0 = if
." Error" drop
else
dup 1 = if
.s
else
cr make.stack dup fn drop
then
x @ clean.stack
then ;

3 show.allとかやってみて。
282デフォルトの名無しさん
垢版 |
2006/05/18(木) 11:40:06
Thinking FORTH を CCL で日本語化するプロジェクトが進行中。
本日作業分担を大まかに決める予定。

日本FORTH研究会の会報をPDF・オープン化することも本日の議題。

LL Ring! Language Update に出るか否かも本日決定?

第3世代 FIG JAPAN 立ち上げたいなぁ。
283274
垢版 |
2006/05/18(木) 12:01:42
>>281
激しくありがとうございます
2006/05/18(木) 16:13:05
>>282 期待age
285デフォルトの名無しさん
垢版 |
2006/05/18(木) 16:13:50
sageいれちまった... orz
2006/05/18(木) 16:19:51
というか日本支部生きてたのか(w
287デフォルトの名無しさん
垢版 |
2006/06/01(木) 02:25:15
>>286

生きてません。本家FIGでもリンクがなくなっています。
とはいえ、三世代FIG-JAPAN設立構想も検討中。
2006/08/09(水) 18:37:34
LL Ringに参戦するようだが、勝算はどれくらいだろう?
289
垢版 |
2006/08/23(水) 21:25:38
Windows上で動くFORTHってない?
DOS窓で動くやつじゃなくて、APIとか叩けるやつ。
2006/08/30(水) 06:22:31
つ win32forth
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番目と一番目を交換

の機能だけがあると思ってていい?
レスを投稿する

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

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