2 part forth

1デフォルトの名無しさん
垢版 |
NGNG
第四世代
2デフォルトの名無しさん
垢版 |
NGNG
参考リンク
http://lab.ee.uec.ac.jp/text/treat6s.html
http://www.geocities.jp/naosacra/index.html
3デフォルトの名無しさん
垢版 |
NGNG
hoshu
4デフォルトの名無しさん
垢版 |
NGNG
ほっしゅ
つーか誰もいねえな
NGNG
いまや衰退してしまった FORTH に対してムーアが、
── FORTH にすまないことをした。あやまらなくてはならない。
と、しんみり言った言葉が胸を打つ。

林 晴比古 著、オペラ座のパソコン、初版 P.123







作成者がこう言ってるんだから、もう終了でいいんじゃない ?
NGNG
OpenFirmwareとか地味に使ってるじゃないすか
NGNG
しかしmopsスレの住人とかどこにいったんだろう?
タイトルのつけかたがまずかったな…。
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から派生した別言語と考えても良いと思う。
レスを投稿する

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

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