2 part forth

1デフォルトの名無しさん
垢版 |
NGNG
第四世代
27デフォルトの名無しさん
垢版 |
NGNG
>>14のttp://www.kt.rim.or.jp/〜tyamamot/forth/c4th.htmlは
ちょっと電波臭いけど面白いと思う。
NGNG
>>26
スタックマシンということなら、JVMとか。
NGNG
>>25
あぷ
30デフォルトの名無しさん
垢版 |
NGNG
http://pc2.2ch.net/test/r.i/tech/1070886635/60
NGNG
あげ
32デフォルトの名無しさん
垢版 |
NGNG
>>29
アップした。
homepage.mac.com/holythunderforce/FileSharing1.html
NGNG
>>32
ダウソ出来んばい
34デフォルトの名無しさん
垢版 |
NGNG
むか〜し、MZ80でForthを走らせてたのを思い出した。懐かしい
35デフォルトの名無しさん
垢版 |
NGNG
どっか上げられるウプローダ知らない?
3629
垢版 |
NGNG
ダウソできたよ
37デフォルトの名無しさん
垢版 |
NGNG
盛り上がらねーな
38デフォルトの名無しさん
垢版 |
NGNG
ホッ種
39デフォルトの名無しさん
垢版 |
NGNG
>>28
JVMってJavaのVMのこと?
ありゃFORTHとはぜんぜん違うよ。

ところで
コンソールから読み込んだFORTHの構文をJava VMのマシン語に
コンパイルしつつ、
メモリに書き込んでそこにジャンプして実行ってのを考えたりも
したんだけど....。
まずPCレジスタが公開されてない。PCいじるインストラクションがあったとしても、
クラスローダーが認めた由緒正しいインスタンス以外のオフセットに
ジャンプすると例外が発生するとかの仕様がある。

ハックできなそう。つか、できない。
つまらん、と思ってJavaの勉強やめた。
NGNG
おまえらforthでEmacsを作れ
41デフォルトの名無しさん
垢版 |
NGNG
ムーアさんの思想とはかけはなれてるな
NGNG
スレタイわかりにくすぎ>1
43デフォルトの名無しさん
垢版 |
NGNG
>>11
ラプラスって、確かLisp+Forthだったみたいだけど、ちゃんと読む前にアスキーを捨てられて詳細が解らんです。でも確かに有りました。私も詳細が知りたい。
44デフォルトの名無しさん
垢版 |
NGNG
マジでforthで何かつくりたいんだけど、
何かネタないかね。

40が言うようにエディタ?
NGNG
仕様書
FORTHコンパイラを内蔵し、それ自体がFORTH実行環境であり
FORTHにより拡張可能なエディタ。
仮想敵をEmacsとし、Emacsで可能なことはすべて実現させることを
最終目標とする。
ただしキーバインドはWordStar準拠とする。

あとはよろしく
NGNG
WordStar入れるならWindows標準のキー定義も入れてくれ
ところでFORTHの場合FFI関係の作りは楽なのかな
NGNG
天文シミュレーションのような
プログラムシミュレーション

programinginging..^.^.
NGNG
http://www.zetetics.com/bj/papers/oofs.htm

OO な Forth っていっぱいあるねぇ。Prolog と Lisp と Forth で処理系の多さを
競ったら、どれがトップになるだろうか。
NGNG
Forthまんせー
http://pc2.2ch.net/test/read.cgi/tech/1074996153/159-175nofirst
NGNG
>>48
LispとForthはToyプログラム的な処理系も含めると星の数ほど
あるからねぇ。Prologは知らないけれど。
ForthのOO拡張もいっぱいあるけど、forth好きな人には、
わずかなメモリの無駄や、実行速度のオーバーヘッドも
許せないってタイプが多い気がする。
(そして、やりすぎるとColorForthになる。。。)

>>49
速度もマンセーだが、マクロと同等以上の、
抽象化能力を持つForthマンセー。
メタプログラミングマンセー。

NGNG
>>50
基本的には同意なんだが。マクロと同等以上というほどメタプログラミング
的には勝ってないような…。昔 LISPer と競った経験から言うと、効率では
勝てると思うけど、記号処理(構文解析とか)入ってくると分が悪いと思われ。
FORTH ライク構文なら無敵だと思うけど。
NGNG
>>51
そうかな?「マクロ以上」は言い過ぎかもしれないけど、
>>49の多重ループの展開なんかは、マクロ並みの
抽象化だと思うけどな。
NGNG
いっちょ処理系でも作るか
NGNG
話題少ないし、おまいら、クイズで楽しみませんか?

第1問

dup ( a -- a a )
swap ( a b -- b a )
drop ( a -- )
>r ( a -- return stack: a )
r> ( return stack: a -- a )

以上5つのワードだけで、

2dup ( a b -- a b a b )

を定義すれ。
NGNG
第2問
同じく

3dup ( a b c -- a b c a b c )

を定義しる。
NGNG
第3問

: foo twice ." Hello" ;

でfooを実行すると

HelloHello

を出力するようなtwiceを定義してみれ。


NGNG
: 2dup >r dup r> dup >r swap r> ;
: 3dup >r 2dup r> dup >r swap >r swap r> r> ;

>>56
immediateを使う? よく思い出せん。
5854-56
垢版 |
NGNG
>>57
2dup、3dup、お見事っす。

>>56はimmediateを使うという解答もアリですが、
immediateを使わないちょっとトリッキーだけど
もっとシンプルな方法があります。
59デフォルトの名無しさん
垢版 |
NGNG
人少ないなぁ。

第4問

: AA reverse ." AA" ;

: BB AA ." BB" ;

: CC BB ." CC" ;

でCCを実行すると

CCBBAA

を出力するようなreverseを定義すれ。

‥‥‥実はコレ第3問のヒントだったりする。

60デフォルトの名無しさん
垢版 |
NGNG
Forth のお勧め本ってどんなのありますか?


最近RPNに萌えてます。
HPの電卓欲しくなっちゃった。
NGNG
自分は「標準Forth」
http://www.amazon.co.jp/exec/obidos/ASIN/4320022475/ref=sr_aps_b_/249-4245738-4019557#product-details
でForthを学んだんだけど絶版だろうね。
古本屋か図書館で探すしかないと思われ。

英語でも良ければ、
http://home.iae.nl/users/mhx/sf.html
ここのChapter 1から順に読んでいくのがオススメ。
62デフォルトの名無しさん
垢版 |
NGNG
懲りずに第5問。

: foo
  ." 1 "
  resume
  ." 2 "
  resume
;

: bar
  ['] foo call/cc
  ." 3 "
  resume
  ." 4 "
  drop
;

で、barを実行すると、

1 3 2 4

と表示するような、resumeとcall/ccをがんがって定義してみれ。
ちなみに、この2つのワードは以下のスタックコメントに示すような
引数と返り値を持つものとする。

resume ( continuation -- continuation' )
call/cc ( xt -- continuation )

# ワード名とスタックコメントの名前がアレですが、
# 字面に惑わされなければ、仕様を満たすのは簡単なはず。
# 第3問〜第5問は基本的に同じカラクリ、というのがヒント。
NGNG
Mindって分家?単に日本語で書けるForth?
64デフォルトの名無しさん
垢版 |
NGNG
MindはいろいろForthにない仕様があったので、
MindはForthから派生した別言語と考えても良いと思う。
NGNG
ホント、人が居ないyo....._| ̄|○

誰も見てないかもしれないけど解答編。

>>56
: twice r> dup >r >r ;

>>59
: reverse r> r> swap r> swap >r swap >r >r ;

>>62
: resume r> swap >r ;
: call/cc r> swap execute ;

‥‥リターンスタックをいじるとヘンなことができて面白いよね。
‥‥‥‥‥。
_| ̄|○


NGNG
>>65
スマン、しばらく見てなかった。
>>56はwordの最後までを二回ってことだったか。
次のwordだけを、かと勘違いしてた。
って>>62はそう書いてるな。
NGNG
>>66
>wordの最後までを二回ってことだったか。
わざと曖昧に書きますた。引っかけ問題のようなもので‥‥。
NGNG

 浪なみ
69デフォルトの名無しさん
垢版 |
NGNG
age
70デフォルトの名無しさん
垢版 |
NGNG
mops for win 希望
NGNG
やっぱ判りにくいよこれ。
LISPはわかったんだが。。。
NGNG
慣れです。
NGNG
よくわからないけど、
スタック2本あるんだよね?
あとWordとExcelが入っているとか、いないとか。
正直よくわからない。
NGNG
それと、気になった事だけど、
>>65
人居ない、なんて連呼してると
ほんとに人いなくなるよ
もっと前向きに行こうよ
NGNG
了解。
76デフォルトの名無しさん
垢版 |
NGNG
Chuck Mooreってチューリング賞もらってないよね?
threaded code発明したのってChuckでしょ?
NGNG
チューリング賞のことは知らないが、
threaded code発明したはChuck Mooreです。

NGNG
threaded codeってそんなに画期的なことなの?
Z80で言えば CD xx yy のCDを無くして、メモリ消費が約2/3になるってだけでしょ?
NGNG
http://www.kt.rim.or.jp/~tyamamot/forthj/threaded-codej.html
NGNG
コードが小さくて速いので多くのVMがthreaded codeを採用している。
昔のプロセッサでは、アセンブリで書いたコードよりもForthのコードの
方が速かったことさえあるという。(伝説)
NGNG
速いのはいいんだけど、
コード読み書きがしんどいと思わない?
変数とかあまり使わないみたいだから、
フローを初めから追っていく必要あるし。
結局この言語もライブラリ次第かなと思った。
NGNG
逆ポーランドをむしろ好む人々も結構な数おりますが、
Stack Juggling がコードを読みにくくするという人も
います。
Forthコードの見通しを良くするには、他の言語よりも
かなり小さな単位でワードを定義するのがよろしいかと。
極端な話、1ワードはせいぜい5行までで記述し、
10行を超えるワードは分割すべきであるとか。
スタックコメントを活用し、小さなTestを繰り返し
ながらボトムアップにくみ上げていくと意外に、
スタックだけで問題解決できていたりします。

83デフォルトの名無しさん
垢版 |
NGNG
無限ループから抜け出す方法はありますか?
begin...againだと抜け出せないみたいなのですけど。
NGNG
>>83
ループ部分をワードに切り出してexitでワードごと抜けてください。
NGNG
電脳書房の新着案内で「標準 FORTH」入ったっていうから見に行ったら
もうsold outですた。はやッ!
ちなみに漏れが持ってるFORTH本は「パソコンユーザのためのFORTH入門」
(A.ウィンフィールド著 寺島元章訳 1986年初版)
薄いけど、なかなか渋い良い本です。

ちょっと前まであまりなかったlisp本やsmalltalk本も最近は沢山でてるのにな。
forth本も出版してほしい。
86デフォルトの名無しさん
垢版 |
NGNG
dayone
NGNG
昔からPostscriptが有名なんだからいいんじゃ
NGNG
ぜんぜん関係ないけどAdobeて最初聞いた時
病気の名前かと思った
89デフォルトの名無しさん
垢版 |
NGNG
FORTHは、なんか団体が弱いイメージがある。
Adobeが中心になって盛り上げるかしれ。
AdobeってFORTH系言語で一番儲けてる会社だろ?
NGNG
AdobeのPostScriptって、FORTHとは似て非なる言語と聞きましたが。
(詳細はわからないです。ゴメソ)

団体が弱いっつーか、なんつーか、
「コアなマニアは熱狂的にFORTHを支持している」って噂は良く聞くけど、
その「コアなマニア」って一体ドコにいるのよ? って感じですね。
ググっても、今でも熱心にFORTHやってるサイト見つからないんですよね。
(数年全然更新されていないサイトとかは結構見つかる)
NGNG
マニアたちはcomp.lang.forthに巣食ってますが、
web siteは寒い状況。
92デフォルトの名無しさん
垢版 |
NGNG
>>41
ムーアさんの思想詳細希望
93デフォルトの名無しさん
垢版 |
NGNG
>>90
gforthとか、ベンチマークサイトで活躍してるとこぐらいしか見たことないね。
やっぱ、Schemeに対するSICPや、Perlのラクダ本みたいな有名所の良書が必要なのか。
それとも英雄が必要なのか。
94デフォルトの名無しさん
垢版 |
NGNG
>>93
いい本があると、かなり違うかもね。
NGNG
>>92
ttp://www.kt.rim.or.jp/~tyamamot/forth/c4th.html

しかしムーアタソは変なものを作るねぇ。
ttp://www.kt.rim.or.jp/~tyamamot/forth/c4th.html
9695
垢版 |
NGNG
下のリンクは間違い。
正しくは、ttp://www.eforth.com.tw/academy/chips/mup.htm
NGNG
俺の思うForthの偉い人

Chuck Moore
http://www.colorforth.com/

M. Anton Ertl
http://www.complang.tuwien.ac.at/projects/forth.html

Bernd Paysan
http://www.jwdt.com/~paysan/index.html

Mike Hore
http://www.powermops.org/
NGNG
遥か昔のByte誌でForth特集をやってるんですね
http://www.colorforth.com/byte.htm
99デフォルトの名無しさん
垢版 |
NGNG
Forthで書かれたCやJavaなんてナンセンス
------------同じ理由で---------------
CやJavaで書かれたForthなんてナンセンス!

Forthは問題の解決に役立つツールを素早く作れる
だからプロトタイピングにとても向いている

GNU Forth? それはそれで結構だけれどね
小気味良く動く本来の持ち味は失われるだろう
100デフォルトの名無しさん
垢版 |
NGNG
ANS/ISO標準化は結局のところ草の根Forth処理系を淘汰することにしか役に立たなかった
標準化で潤うのはForth社であり、開発効率が上がると考えた大企業、陸海空軍
やがて草の根の支持を失ったForthは全く廃れた・・・と少なからず思われているようだ

http://www.forth.com/Content/Clients.htm
NGNG
forth で国内ページをぐぐると、トップが厚生労働省ってのが悲しい。
2番目もプログラム言語とは全然関係ないし。
102ジャパン
垢版 |
NGNG
婦女暴行事件 でぐぐると、トップに首相の名が現れる国です
NGNG
forthのソースが読みたいんですけど一番小さいのて何ですかね?
NGNG
>>103
: 2* DUP + ;
NGNG
移植の参考にしたいという意味ならコア・ワード数を最小限に絞ったeFORTH
いろいろな実行環境のソースが公開されているよ
元々は6502用に書かれたFigForthも小さいけどね
辞書構成にさまざまな形式があって、どちらも速度アップの余地ありってところ
NGNG
>105 ありがと
しかしアセンブラかきついなぁ
NGNG
>>106
習うより慣れろってやつじゃないの?
どれか動くForth系を触りながら中身を調べるって手もあるし
しかし、これだけH8が普及しているのに国内で移植したっていう例は無いのかな
H8 eFORTHのソースがあるんだから、ほとんどそのままで行けるハズ

関係ないけど、あのHPなんとかならんのかね・・・さくっと削除するとかさ
Forth Interest Group, Japan
NGNG
>107
確かにリンクしか存在せず更新もされない研究会てのもあるだけ無駄つうか
NGNG
だいたい本家サイトに無視されちゃってる

↓それに比べてエライ違いですね
http://www.figuk.plus.com/
NGNG
>>103
これなんてどう? コンパクトな方だと思うけど。AVRなら命令セットが素直だし参考ってことで。
http://www.cqpub.co.jp/toragi/download/2002/TR0209F/TR0209F.HTM

ただ、これもそうなんだけど、世に言う「FORTHコンパイラ」は本来の自立した柔軟性に欠けるから手直しがいるだろうね。
本気でやるならATmegaなんかに載せると良さそう。セルフでフラッシュが書き込みできるから。確かH8はそこがサポートされてない。
NGNG
ATMELだと32ビットのARMが出てるね。
NGNG
アセンブラ関わる時点で移植性は捨てねばならん
NGNG
処理系の移植? 他言語でも移植時のアセンブラ記述はありだと思うけど。
リアルタイムアプリの移植にしてもそうだよね、部分的に使うだけかも知れないけどさ。
Forthでクロスコンパイルって移植技もあるみたいだけど詳しいことは判らないな。
114103
垢版 |
NGNG
Gforthのソース見たけど結構Cで書かれてるね。
ヘタレなオレはCで書かれたForthもどきでも読んでみるよ
その前に図書館で見つけたFORTHへの招待でも読んで再勉強。
NGNG
キモは二本のスタックの実装とリンクリストやワードの構成でしょうね。
第三のスタックを使ったりとか、突っ込めばいろいろ奥深いものがありそうだけど。
何種類かあるカーネルの構造について詳しく解説されているページがあって
英文だけどかなり参考になると思う。最小限のアセンブラソース付きです。

http://www.zetetics.com/bj/papers/
NGNG
あ〜ぁ、放置されちゃってスタックが埃まみれじゃん
NGNG
昔、漏れが晒したやつはデータスタックとリターンスタックのほかに
コンパイル時にジャンプ先アドレスを保存するために使うコントロールフロースタックの
3本構成でつくりますた。
NGNG
>>117
なるほど。コントロールフロースタックって何に使うのかと思ったら、そういう使い方をするんですね。さっそく採り入れてみようかな。
現在JSR型のものをワンチップCPUに移植中。データスタックとリターンスタックのどちらもトップを固定メモリーアドレス上に置いてます。かなり書き進んだところでハタと考えました。エディタは・・・どうしよう?
119デフォルトの名無しさん
垢版 |
NGNG
さりげなく関連ページちゃんと書いてあるのな
NGNG
Amazon.com
forth の検索結果:4件
並べ替え:

1. 実用FORTHテクニック入門
西川 利男 (著)
出品者から通常2営業日以内に発送
【マーケットプレイス】 新品/ユースド価格 : ¥1,300
NGNG
日本語プログラミングコンテスト実行委員会
実行委員長 審査委員会 審査委員長
西川利男(科学ライタ、元工業技術院主任研究官)
実行委員 片桐 明(スクリプツ・ラボ代表)
122デフォルトの名無しさん
垢版 |
NGNG
詳しいひといるう?
ワードの仕組み(仕様)教えてよ
NGNG
>>122
あんまり詳しくないけど、どういう処理系のどんなワードの仕様か
書けば答えてくれる人もいるかも。

NGNG
>>123
処理系を作ろうと思っているんですが、辞書から探すのに効率のいい
ワードの仕様ってどんなんだろうと

思って聞いたんですけど、
http://www-lab.ee.uec.ac.jp/text/forth/
ここ参考にしてやってみることにしました。
NGNG
>>124
資料は79年標準仕様のものなので、現在の94年版も併せて参考にするのが良いと思う。
FORGETのように消えているワードがあったりする。DPANS94で検索すると出て来ます。
79年標準はFIG-FORTH 6502版を下敷きにしているから、そのソースも探してみると良い。
スタックの実現や、ワードや辞書の構造は処理系ごとに自由が認められているので
実際のところ自分がスマートだと考える仕様がベスト。
NGNG
crを完全にスペースに置き換えた場合(全てのワードを即時実行にする)、
何か弊害あります?
レスを投稿する

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

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