[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 21:09 / Filesize : 129 KB / Number-of Response : 566
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

2 part forth



1 名前:デフォルトの名無しさん [04/01/10 03:45]
第四世代

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 立ち上げたいなぁ。

283 名前:274 mailto:sage [2006/05/18(木) 12:01:42 ]
>>281
激しくありがとうございます


284 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 16:13:05 ]
>>282 期待age

285 名前:デフォルトの名無しさん [2006/05/18(木) 16:13:50 ]
sageいれちまった... orz

286 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 16:19:51 ]
というか日本支部生きてたのか(w

287 名前:デフォルトの名無しさん [2006/06/01(木) 02:25:15 ]
>>286

生きてません。本家FIGでもリンクがなくなっています。
とはいえ、三世代FIG-JAPAN設立構想も検討中。

288 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 18:37:34 ]
LL Ringに参戦するようだが、勝算はどれくらいだろう?

289 名前: mailto:sage [2006/08/23(水) 21:25:38 ]
Windows上で動くFORTHってない?
DOS窓で動くやつじゃなくて、APIとか叩けるやつ。




290 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 06:22:31 ]
つ win32forth

291 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 08:50:36 ]
LLRing乙でした。

292 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:05:33 ]
FORTHマンセー

293 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 16:45:01 ]
最近話題無いの?

294 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 22:50:10 ]
back and forthです。

295 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 22:51:33 ]
joyとかの話する?

296 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 13:32:14 ]
今更forth使ってる人は自分で問題解決できる人ばっかだからなあ

297 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 07:31:20 ]
>>296
解決できない俺はどうすれば・・・

298 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:39:00 ]
質問すればいいんじゃねえの?!

しかしこのスレ
2年以上経つのにまだ300行ってないのか

299 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 22:20:47 ]
なんかニュースないの?



300 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 22:26:12 ]
>>298
>2年以上経つのにまだ300行ってないのか

FORTHプログラム張りなんだぜ?

301 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 05:56:22 ]
test

>>261-265
>>266,267

302 名前:デフォルトの名無しさん mailto:sage [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
factorcode.org/

304 名前:デフォルトの名無しさん [2006/12/10(日) 21:07:56 ]
虎擬の新年号付属基板に移植するプロジェクト

305 名前:デフォルトの名無しさん mailto:sage [2006/12/26(火) 05:05:37 ]
>>301
おばかな流れにワロス


306 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:43:44 ]
a

307 名前:デフォルトの名無しさん [2007/02/27(火) 19:51:33 ]
b

308 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:28:16 ]
FORTH のすごいところは 対話型の言語でありながらコンパイラだってとこじゃないのかなぁ…

309 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:57:50 ]
forthの凄いところは2スタックマシンと辞書による入れ子構造だと思う。





310 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:31:00 ]
(・∀・ )っ/凵 ⌒☆ VisualForthマダー?

311 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:34:49 ]
>>310
ムーアたん自ら開発済み。
www.colorforth.com/index.html

312 名前:デフォルトの名無しさん [2007/03/30(金) 06:30:41 ]
最近のCPUって、プログラムの自己書き換えができないとか聞いたけど、
そうだとするとFORTH実装するのつらいよね。

313 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 07:48:32 ]
たしかに今も昔もCPUの回路は自分で変更できないな。

314 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 23:27:06 ]
メモリ書き換えればいいじゃん >312

315 名前:デフォルトの名無しさん mailto: [2007/03/31(土) 16:33:43 ]
>>314
最近のCPUってもコードキャッシュに先読みしたりしているから、
下手にメモリを書き換えると、先読みしたコードと、実際のメモリのコードが一致しなくなる。
ので、正常に動作しなくなったり、パイプラインにペナルティが発生して、動作がおそくなったりするらしい。

FORTHって、新しくワードを追加すると、自分自身が大きくなっていくような言語だから、
そこらへんどうすればいいのかわからない。
だれか教えてくれんかな。


316 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 05:04:00 ]
FORTH以前にコンピュータの基礎知識が混乱してるな。

317 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:54:31 ]
>>316
FORTHの事、知らないだろ。

318 名前:デフォルトの名無しさん [2007/04/01(日) 13:11:17 ]
>>313
VBばっかり使ってないで、ハーバードアーキテクチャとノイマンアーキテクチャの違いに付いて勉強しろよ(w



319 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:33:44 ]
最近だとこの関係でJITコンパイラとXDビットでも問題になってましたな。
JIT関係にノウハウありそうだけど、良く判らん



320 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 05:03:35 ]
べつに何の困難もないと思うけどな。
パラメータスタックなんて自由度の低いポインタみたいなもんじゃん。

321 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:18:58 ]
なんかよくわからんけど、問題になりそうなのは、既存ワードの書き換え時だと思うので、

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

でいいと思う。



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

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

こんな感じでどうでしょう。

323 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 06:20:31 ]
forthの人気のなさは異常

324 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 23:36:56 ]
異常だな。〜 if 〜 then 〜 else のせいだったりするんかね?
……forthに何があったらもっと流行るかな?

325 名前:sage [2007/04/24(火) 23:53:34 ]
て、むしろ正常ってこと?

326 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:24:51 ]
Forthを使いたいと思う人より、Forthの処理系を造りたいと思う人の方が多そうな予感

327 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 07:13:54 ]
自分もForthを作っているクチ
毎日、Forthでプログラム作ってるぜ!って奴はいますか?


328 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 08:55:54 ]
ど素人の趣味なので毎日はしませんが、Forth系じゃないコードはほとんど書きません。

むしろForthでForthを作れば良いのではないかと思います。

329 名前:デフォルトの名無しさん mailto:sage [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ぐらいで
実装できそうな気がする




330 名前:328 mailto:sage [2007/04/30(月) 21:27:11 ]
>>329
古典的なForthみたいにですね。
昔はアセンブリで書いた核の部分は、今はCでいいですからね。
ただ、何を核にすれば必要十分なのかについて、あまり資料がないですね。
四則演算と論理演算(ビット操作)もあった方がいい気もしますが、どうなんでしょう
(Lispは四則演算はいらない?)。
gforthはそういうやり方らしいですけど、
実行速度のためCで書き込むプリミティブを多めに取ったと書いています。

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

もともとforthは言語仕様自体は貧弱なので、
アプリケーション毎に自前の言語を組上げていくみたいな面白さもあります。
インプットストリームも弄れるので、シンタックスまで変更できますし。
それがあまり面白がられていないということですかね。

331 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 09:02:05 ]
昔、近所の古本屋で標準FORTHを100円で保護したのだが、捨ててしまった。漏れの馬鹿。
ところで、Beginning Forthを注文した。米国からなので2週間くらいかかりそう。

332 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:37:02 ]
Forthはともかく資料不足。よって今更ながら英語の入門書をもう一個:
ttp://www.mpeforth.com/books.htm
『Programming Forth』 - Stephen Pelc et al.

333 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 04:42:21 ]
汎用で考えるとやっぱり今どきスタックは32ビット長ですよねえ。
そこで移植にお勧めの埋め込み用32ビットプロセッサって何がありますか?
I/Oがたっぷり用意されているので遊べるかなって思いますがどうでしょう。

334 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:39:30 ]
パフォーマンス優先ならSHじゃね?
最近秋葉でも手に入りやすくなったし。

FORTHコンパイラをアセンブラでガリガリに書きたい人なら
アセンブラが書きやすいH8かな。

335 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 19:20:03 ]
φ(。。) めもめも

336 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 20:54:14 ]
HDLだけでFORTHは作れる?

337 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:07:14 ]
>>336
作れるみたいですね やってみたことないけどw
ttp://www.ultratechnology.com/chips.htm
この中のMicroCoreって初めて知りました
ttp://www.microcore.org/

338 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:12:13 ]
joyの話しようぜ

339 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:22:38 ]
後で読む: i386 / Linux 向け Forth コンパイラの作り方。

ttp://www.annexia.org/_file/jonesforth.s.txt



340 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 15:51:44 ]
CでForthの処理系を書いてみた。
GCにはBoehm GC、辞書にはJudy Arrayを使ったので
ほとんど手間がかかっていないわりに速かった。
まだ単純な処理しか出来ないけどrubyとかより速いかも。


341 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:15:24 ]
ささやかな期待

342 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 19:36:42 ]
rubyより遅いforhtなんてあるのか?

343 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 19:51:26 ]
>>342
rubyで書けばいいんじゃね?

344 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:21:13 ]
>>343
激しく楽しくない気が

345 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 19:36:18 ]
>>340
GC?

346 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 20:36:49 ]
>>345
Garbage Collector でそ。

347 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:29:09 ]
(forthに)GC?

てことじゃないか?

348 名前:345 mailto:sage [2007/10/03(水) 23:33:04 ]
>>347
フォローありがとうございます。

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

どう使うのかなあ?と。

349 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 15:23:24 ]
concatenative



350 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 11:41:29 ]
" hoge" は汚なく感じるな
"hoge" か " hoge " だろと

351 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:35:58 ]
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

352 名前:デフォルトの名無しさん mailto:sage [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 ]
いまふ

354 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:53:19 ]
dsForthがアドエスで動くのはガイシュツ?

355 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 04:23:01 ]
notガイシュツ

356 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 13:50:29 ]
このスレの人たちが使う電卓はRPLだったりするの?


357 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:03:59 ]
HPの電卓?

358 名前:356 mailto:sage [2008/01/27(日) 17:17:11 ]
>>357
そうです。RPNの間違いでした。

359 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:59:27 ]
HP41CV,HP28,HP48SX,HP32S,と使ってきましたよ。
ちなみに今使っているHP35は問題大あり!





360 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:12:19 ]
Adobe高速JavaScript実装、バイトコードにForthを採用
journal.mycom.co.jp/news/2008/02/07/011/index.html

361 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:34:36 ]
LLVM涙目

362 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:52:21 ]
単なるスタックベースのVMなだけじゃないの?
JavaVMとか既存のVMと一緒でしょ

363 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:40:23 ]
急に某ゲーム機上で動くforthが作りたくなって>>339が挙げてるやつ読んでるんだが(まあこれはi386用だけど)、わかりやすいなこれ
実を言うと今までforthはあまり理解してなかったけど、モヤモヤしてたことがすっきりしてきた
しかしforthってシンプルで美しいなぁ
Lispやsmalltalkに負けないと思うのに、このマイナーさ…

364 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:09:41 ]
concatenative languageあたりをキーワードにWebをさまよってみると良いよ。
joy factorあたりが面白いかね。おいらも俺言語作成中。

365 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:24:42 ]
factor は良いねぇ。秘かに期待している。

366 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 11:50:59 ]

基本的に

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

の機能だけがあると思ってていい?


367 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 07:10:53 ]
concatenativeに?
それならスタックに対する関数適用だけかな

368 名前:デフォルトの名無しさん [2008/03/20(木) 14:28:46 ]
forthのコメントってもしやforthで書かれてる?
( コメント ) ←これ

369 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:22:35 ]
>>368
実装にもよるけど、
ワード ( を読むと、フラグが立って、ワード ) まで無視する。
Forth で書いてある、ってこういう意味ってことでいいのかな?



370 名前:デフォルトの名無しさん [2008/03/20(木) 15:50:12 ]
>>369
いやなんかマクロみたいな機能を使って書かれているのかなーと
forth知らないので全然分かんないんですけど

要するに↓みたいにforth言語で書かれているのか?ってことです
: ( hoge hoge ... ;

371 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:15:20 ]
『標準FORTH』だと pp.166 にある。

: ( 29 WORD DROP ; IMMEDIATE

29 は ')' のコード

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

C マガジンのきだあきらさんの連載『千言万語』の Forth の時に
紹介してたネタだったような気もする。

372 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:16:04 ]
千言万語単行本にならねーかな

373 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:37:32 ]
追加。
イミディエイトワード、というのが、プログラムの実行時ではなく
読み込み時に意味を持つワードなので、マクロのような機能と
言えるかもしれません。

374 名前:デフォルトの名無しさん [2008/03/21(金) 07:42:46 ]
>>371-373
サンクス

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

: ( 29 WORD DROP ; IMMEDIATE
例えば↑にimmediateがついてなかったらどういう動作になるんだろう

375 名前:デフォルトの名無しさん mailto:sage [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



378 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 00:23:41 ]
なんか酷いのみつけてきたwwwww

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

スタックマシン使ってるってだけみたいだが(俺には良く分からん)

379 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 10:36:35 ]
forth厨はなんでもかんでもスタックマシンにするな



380 名前:デフォルトの名無しさん mailto:sage [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

381 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 03:00:58 ]
あれ?factorの新しいの入れたら日本語出なくなった
エンコード関係?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<129KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef