2 part forth

1デフォルトの名無しさん
垢版 |
NGNG
第四世代
NGNG
何か作るかあ。
NGNG
forthの特徴は関数型とか述語記述とかそういう次元の話ではなくて
ただ単に逆ポーランド表記である と見た場合、そこに新たにオブジェクト指向だとか
いろいろな概念を付け加えるのは案外容易なのかなと考えているのですがどうだろうか
NGNG
>>10
昔laplaceってのがあったなぁ。
NGNG
>>11
なんスかそれ?ラプラス変換?
NGNG
ASCIIに載ってたFORTHの変種なんだけど、よく覚えてない。
リストが扱えるようになってたような気がする。
NGNG
ふむ…。
web上にはそれに関するリソース見つけきれないです。
もう少し探してみよう。

検索の過程でなんとなくひっかかった情報達
ttp://mizotec.s27.xrea.com/slang/overview.html
ttp://www.kt.rim.or.jp/〜tyamamot/forth/c4th.html
ttp://homepage2.nifty.com/logic/
ttp://www.kt.rim.or.jp/〜tyamamot/forthj/forthj.html

prologとかなり親和性が高い様な気がするなあ
NGNG
保守っておこう
NGNG
最低でも実装しなければいけない命令ってどれぐらいあるだろうか?
17デフォルトの名無しさん
垢版 |
NGNG
着手 age
NGNG
保守 sage
NGNG
開発中 保守 sage
20デフォルトの名無しさん
垢版 |
NGNG
誰か助けてヨ
NGNG
最近勉強を始めてみようと gforth 導入しますた・・・
寂れてますね・・・
NGNG
ですね(^^)
23デフォルトの名無しさん
垢版 |
NGNG
ttp://directory.google.com/Top/Computers/Programming/Languages/Forth/
を巡っております。
ttp://webdev.amsystech.com/mlosh/
ここのソースを参考にして処理系作ろうかと思案中。
24デフォルトの名無しさん
垢版 |
NGNG
hoth
25デフォルトの名無しさん
垢版 |
NGNG
forthはおもしろい言語だとは思うんだが、
何に使うかが問題だよね。
自作アプリにスクリプトを付けるなんて用途には最適かもね。
コアな部分がCで数十ライン、デフォルトのワードを100個内蔵しても
1Kラインで済んだし。
NGNG
ユーザに書かせるスクリプトじゃなくて、内部で処理するバイトコードが
FORTH系ってのは結構あるんじゃないかと。
処理系の高機能化と簡素化を両立する手段のひとつとして。
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/
レスを投稿する

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