2 part forth
at TECH
[1からを表示]
50:デフォルトの名無しさん
04/02/17 23:29
>>48
LispとForthはToyプログラム的な処理系も含めると星の数ほど
あるからねぇ。Prologは知らないけれど。
ForthのOO拡張もいっぱいあるけど、forth好きな人には、
わずかなメモリの無駄や、実行速度のオーバーヘッドも
許せないってタイプが多い気がする。
(そして、やりすぎるとColorForthになる。。。)
>>49
速度もマンセーだが、マクロと同等以上の、
抽象化能力を持つForthマンセー。
メタプログラミングマンセー。
51:デフォルトの名無しさん
04/02/18 00:21
>>50
基本的には同意なんだが。マクロと同等以上というほどメタプログラミング
的には勝ってないような…。昔 LISPer と競った経験から言うと、効率では
勝てると思うけど、記号処理(構文解析とか)入ってくると分が悪いと思われ。
FORTH ライク構文なら無敵だと思うけど。
52:デフォルトの名無しさん
04/02/18 01:21
>>51
そうかな?「マクロ以上」は言い過ぎかもしれないけど、
>>49の多重ループの展開なんかは、マクロ並みの
抽象化だと思うけどな。
53:デフォルトの名無しさん
04/02/18 03:39
いっちょ処理系でも作るか
54:デフォルトの名無しさん
04/02/18 12:24
話題少ないし、おまいら、クイズで楽しみませんか?
第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 )
を定義すれ。
55:デフォルトの名無しさん
04/02/18 12:25
第2問
同じく
3dup ( a b c -- a b c a b c )
を定義しる。
56:デフォルトの名無しさん
04/02/18 12:27
第3問
: foo twice ." Hello" ;
でfooを実行すると
HelloHello
を出力するようなtwiceを定義してみれ。
57:デフォルトの名無しさん
04/02/18 17:59
: 2dup >r dup r> dup >r swap r> ;
: 3dup >r 2dup r> dup >r swap >r swap r> r> ;
>>56
immediateを使う? よく思い出せん。
58:54-56
04/02/18 19:06
>>57
2dup、3dup、お見事っす。
>>56はimmediateを使うという解答もアリですが、
immediateを使わないちょっとトリッキーだけど
もっとシンプルな方法があります。
59:デフォルトの名無しさん
04/02/19 17:08
人少ないなぁ。
第4問
: AA reverse ." AA" ;
: BB AA ." BB" ;
: CC BB ." CC" ;
でCCを実行すると
CCBBAA
を出力するようなreverseを定義すれ。
‥‥‥実はコレ第3問のヒントだったりする。
60:デフォルトの名無しさん
04/02/19 21:25
Forth のお勧め本ってどんなのありますか?
最近RPNに萌えてます。
HPの電卓欲しくなっちゃった。
61:デフォルトの名無しさん
04/02/19 23:02
自分は「標準Forth」
URLリンク(www.amazon.co.jp)
でForthを学んだんだけど絶版だろうね。
古本屋か図書館で探すしかないと思われ。
英語でも良ければ、
URLリンク(home.iae.nl)
ここのChapter 1から順に読んでいくのがオススメ。
62:デフォルトの名無しさん
04/02/20 12:42
懲りずに第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問は基本的に同じカラクリ、というのがヒント。
63:デフォルトの名無しさん
04/02/21 08:41
Mindって分家?単に日本語で書けるForth?
64:デフォルトの名無しさん
04/02/21 10:29
MindはいろいろForthにない仕様があったので、
MindはForthから派生した別言語と考えても良いと思う。
65:_| ̄|○
04/02/23 20:44
ホント、人が居ない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 ;
‥‥リターンスタックをいじるとヘンなことができて面白いよね。
‥‥‥‥‥。
_| ̄|○
66:デフォルトの名無しさん
04/02/24 14:02
>>65
スマン、しばらく見てなかった。
>>56はwordの最後までを二回ってことだったか。
次のwordだけを、かと勘違いしてた。
って>>62はそう書いてるな。
67:デフォルトの名無しさん
04/02/25 12:33
>>66
>wordの最後までを二回ってことだったか。
わざと曖昧に書きますた。引っかけ問題のようなもので‥‥。
68:デフォルトの名無しさん
04/03/24 03:33
浪なみ
69:デフォルトの名無しさん
04/04/07 03:14
age
70:デフォルトの名無しさん
04/04/08 03:12
mops for win 希望
71:デフォルトの名無しさん
04/04/10 01:00
やっぱ判りにくいよこれ。
LISPはわかったんだが。。。
72:デフォルトの名無しさん
04/04/10 01:09
慣れです。
73:デフォルトの名無しさん
04/04/10 15:58
よくわからないけど、
スタック2本あるんだよね?
あとWordとExcelが入っているとか、いないとか。
正直よくわからない。
74:デフォルトの名無しさん
04/04/10 16:00
それと、気になった事だけど、
>>65
人居ない、なんて連呼してると
ほんとに人いなくなるよ
もっと前向きに行こうよ
75:デフォルトの名無しさん
04/04/10 20:12
了解。
76:デフォルトの名無しさん
04/04/13 10:13
Chuck Mooreってチューリング賞もらってないよね?
threaded code発明したのってChuckでしょ?
77:デフォルトの名無しさん
04/04/13 14:34
チューリング賞のことは知らないが、
threaded code発明したはChuck Mooreです。
78:デフォルトの名無しさん
04/04/13 21:50
threaded codeってそんなに画期的なことなの?
Z80で言えば CD xx yy のCDを無くして、メモリ消費が約2/3になるってだけでしょ?
79:デフォルトの名無しさん
04/04/13 23:10
URLリンク(www.kt.rim.or.jp)
80:デフォルトの名無しさん
04/04/13 23:16
コードが小さくて速いので多くのVMがthreaded codeを採用している。
昔のプロセッサでは、アセンブリで書いたコードよりもForthのコードの
方が速かったことさえあるという。(伝説)
81:デフォルトの名無しさん
04/04/14 18:53
速いのはいいんだけど、
コード読み書きがしんどいと思わない?
変数とかあまり使わないみたいだから、
フローを初めから追っていく必要あるし。
結局この言語もライブラリ次第かなと思った。
82:デフォルトの名無しさん
04/04/15 00:05
逆ポーランドをむしろ好む人々も結構な数おりますが、
Stack Juggling がコードを読みにくくするという人も
います。
Forthコードの見通しを良くするには、他の言語よりも
かなり小さな単位でワードを定義するのがよろしいかと。
極端な話、1ワードはせいぜい5行までで記述し、
10行を超えるワードは分割すべきであるとか。
スタックコメントを活用し、小さなTestを繰り返し
ながらボトムアップにくみ上げていくと意外に、
スタックだけで問題解決できていたりします。
83:デフォルトの名無しさん
04/04/15 09:40
無限ループから抜け出す方法はありますか?
begin...againだと抜け出せないみたいなのですけど。
84:デフォルトの名無しさん
04/04/15 12:08
>>83
ループ部分をワードに切り出してexitでワードごと抜けてください。
85:デフォルトの名無しさん
04/05/05 21:29
電脳書房の新着案内で「標準 FORTH」入ったっていうから見に行ったら
もうsold outですた。はやッ!
ちなみに漏れが持ってるFORTH本は「パソコンユーザのためのFORTH入門」
(A.ウィンフィールド著 寺島元章訳 1986年初版)
薄いけど、なかなか渋い良い本です。
ちょっと前まであまりなかったlisp本やsmalltalk本も最近は沢山でてるのにな。
forth本も出版してほしい。
86:デフォルトの名無しさん
04/05/12 00:53
dayone
87:デフォルトの名無しさん
04/05/13 01:02
昔からPostscriptが有名なんだからいいんじゃ
88:デフォルトの名無しさん
04/05/13 01:03
ぜんぜん関係ないけどAdobeて最初聞いた時
病気の名前かと思った
89:デフォルトの名無しさん
04/05/14 20:43
FORTHは、なんか団体が弱いイメージがある。
Adobeが中心になって盛り上げるかしれ。
AdobeってFORTH系言語で一番儲けてる会社だろ?
90:デフォルトの名無しさん
04/05/17 20:13
AdobeのPostScriptって、FORTHとは似て非なる言語と聞きましたが。
(詳細はわからないです。ゴメソ)
団体が弱いっつーか、なんつーか、
「コアなマニアは熱狂的にFORTHを支持している」って噂は良く聞くけど、
その「コアなマニア」って一体ドコにいるのよ? って感じですね。
ググっても、今でも熱心にFORTHやってるサイト見つからないんですよね。
(数年全然更新されていないサイトとかは結構見つかる)
91:デフォルトの名無しさん
04/05/17 22:20
マニアたちはcomp.lang.forthに巣食ってますが、
web siteは寒い状況。
92:デフォルトの名無しさん
04/05/24 03:49
>>41
ムーアさんの思想詳細希望
93:デフォルトの名無しさん
04/05/26 00:58
>>90
gforthとか、ベンチマークサイトで活躍してるとこぐらいしか見たことないね。
やっぱ、Schemeに対するSICPや、Perlのラクダ本みたいな有名所の良書が必要なのか。
それとも英雄が必要なのか。
94:デフォルトの名無しさん
04/05/26 16:12
>>93
いい本があると、かなり違うかもね。
95:デフォルトの名無しさん
04/05/26 21:19
>>92
URLリンク(www.kt.rim.or.jp)
しかしムーアタソは変なものを作るねぇ。
URLリンク(www.kt.rim.or.jp)
96:95
04/05/26 21:24
下のリンクは間違い。
正しくは、URLリンク(www.eforth.com.tw)
97:デフォルトの名無しさん
04/05/27 12:58
俺の思うForthの偉い人
Chuck Moore
URLリンク(www.colorforth.com)
M. Anton Ertl
URLリンク(www.complang.tuwien.ac.at)
Bernd Paysan
URLリンク(www.jwdt.com)
Mike Hore
URLリンク(www.powermops.org)
98:デフォルトの名無しさん
04/06/06 06:49
遥か昔のByte誌でForth特集をやってるんですね
URLリンク(www.colorforth.com)
99:デフォルトの名無しさん
04/06/07 05:18
Forthで書かれたCやJavaなんてナンセンス
------------同じ理由で---------------
CやJavaで書かれたForthなんてナンセンス!
Forthは問題の解決に役立つツールを素早く作れる
だからプロトタイピングにとても向いている
GNU Forth? それはそれで結構だけれどね
小気味良く動く本来の持ち味は失われるだろう
100:デフォルトの名無しさん
04/06/07 05:39
ANS/ISO標準化は結局のところ草の根Forth処理系を淘汰することにしか役に立たなかった
標準化で潤うのはForth社であり、開発効率が上がると考えた大企業、陸海空軍
やがて草の根の支持を失ったForthは全く廃れた・・・と少なからず思われているようだ
URLリンク(www.forth.com)
101:デフォルトの名無しさん
04/06/11 22:26
forth で国内ページをぐぐると、トップが厚生労働省ってのが悲しい。
2番目もプログラム言語とは全然関係ないし。
102:ジャパン
04/06/12 13:15
婦女暴行事件 でぐぐると、トップに首相の名が現れる国です
103:デフォルトの名無しさん
04/06/13 04:16
forthのソースが読みたいんですけど一番小さいのて何ですかね?
104:デフォルトの名無しさん
04/06/13 05:43
>>103
: 2* DUP + ;
105:デフォルトの名無しさん
04/06/13 06:02
移植の参考にしたいという意味ならコア・ワード数を最小限に絞ったeFORTH
いろいろな実行環境のソースが公開されているよ
元々は6502用に書かれたFigForthも小さいけどね
辞書構成にさまざまな形式があって、どちらも速度アップの余地ありってところ
106:デフォルトの名無しさん
04/06/13 07:27
>105 ありがと
しかしアセンブラかきついなぁ
107:デフォルトの名無しさん
04/06/13 09:09
>>106
習うより慣れろってやつじゃないの?
どれか動くForth系を触りながら中身を調べるって手もあるし
しかし、これだけH8が普及しているのに国内で移植したっていう例は無いのかな
H8 eFORTHのソースがあるんだから、ほとんどそのままで行けるハズ
関係ないけど、あのHPなんとかならんのかね・・・さくっと削除するとかさ
Forth Interest Group, Japan
108:デフォルトの名無しさん
04/06/13 16:52
>107
確かにリンクしか存在せず更新もされない研究会てのもあるだけ無駄つうか
109:デフォルトの名無しさん
04/06/13 17:11
だいたい本家サイトに無視されちゃってる
↓それに比べてエライ違いですね
URLリンク(www.figuk.plus.com)
110:デフォルトの名無しさん
04/06/14 09:13
>>103
これなんてどう? コンパクトな方だと思うけど。AVRなら命令セットが素直だし参考ってことで。
URLリンク(www.cqpub.co.jp)
ただ、これもそうなんだけど、世に言う「FORTHコンパイラ」は本来の自立した柔軟性に欠けるから手直しがいるだろうね。
本気でやるならATmegaなんかに載せると良さそう。セルフでフラッシュが書き込みできるから。確かH8はそこがサポートされてない。
111:デフォルトの名無しさん
04/06/18 08:23
ATMELだと32ビットのARMが出てるね。
112:デフォルトの名無しさん
04/06/18 11:32
アセンブラ関わる時点で移植性は捨てねばならん
113:デフォルトの名無しさん
04/06/18 20:45
処理系の移植? 他言語でも移植時のアセンブラ記述はありだと思うけど。
リアルタイムアプリの移植にしてもそうだよね、部分的に使うだけかも知れないけどさ。
Forthでクロスコンパイルって移植技もあるみたいだけど詳しいことは判らないな。
114:103
04/06/19 02:17
Gforthのソース見たけど結構Cで書かれてるね。
ヘタレなオレはCで書かれたForthもどきでも読んでみるよ
その前に図書館で見つけたFORTHへの招待でも読んで再勉強。
115:デフォルトの名無しさん
04/06/19 19:22
キモは二本のスタックの実装とリンクリストやワードの構成でしょうね。
第三のスタックを使ったりとか、突っ込めばいろいろ奥深いものがありそうだけど。
何種類かあるカーネルの構造について詳しく解説されているページがあって
英文だけどかなり参考になると思う。最小限のアセンブラソース付きです。
URLリンク(www.zetetics.com)
116:デフォルトの名無しさん
04/06/25 00:32
あ〜ぁ、放置されちゃってスタックが埃まみれじゃん
117:デフォルトの名無しさん
04/06/27 22:40
昔、漏れが晒したやつはデータスタックとリターンスタックのほかに
コンパイル時にジャンプ先アドレスを保存するために使うコントロールフロースタックの
3本構成でつくりますた。
118:デフォルトの名無しさん
04/06/28 14:03
>>117
なるほど。コントロールフロースタックって何に使うのかと思ったら、そういう使い方をするんですね。さっそく採り入れてみようかな。
現在JSR型のものをワンチップCPUに移植中。データスタックとリターンスタックのどちらもトップを固定メモリーアドレス上に置いてます。かなり書き進んだところでハタと考えました。エディタは・・・どうしよう?
119:デフォルトの名無しさん
04/07/13 12:39
さりげなく関連ページちゃんと書いてあるのな
120:デフォルトの名無しさん [sage]
04/07/13 21:01
Amazon.com
forth の検索結果:4件
並べ替え:
1. 実用FORTHテクニック入門
西川 利男 (著)
出品者から通常2営業日以内に発送
【マーケットプレイス】 新品/ユースド価格 : ¥1,300
121:デフォルトの名無しさん
04/07/14 07:27
日本語プログラミングコンテスト実行委員会
実行委員長 審査委員会 審査委員長
西川利男(科学ライタ、元工業技術院主任研究官)
実行委員 片桐 明(スクリプツ・ラボ代表)
122:デフォルトの名無しさん
04/07/16 22:20
詳しいひといるう?
ワードの仕組み(仕様)教えてよ
123:デフォルトの名無しさん
04/07/16 22:59
>>122
あんまり詳しくないけど、どういう処理系のどんなワードの仕様か
書けば答えてくれる人もいるかも。
124:デフォルトの名無しさん
04/07/16 23:20
>>123
処理系を作ろうと思っているんですが、辞書から探すのに効率のいい
ワードの仕様ってどんなんだろうと
思って聞いたんですけど、
URLリンク(www-lab.ee.uec.ac.jp)
ここ参考にしてやってみることにしました。
125:デフォルトの名無しさん
04/07/17 02:43
>>124
資料は79年標準仕様のものなので、現在の94年版も併せて参考にするのが良いと思う。
FORGETのように消えているワードがあったりする。DPANS94で検索すると出て来ます。
79年標準はFIG-FORTH 6502版を下敷きにしているから、そのソースも探してみると良い。
スタックの実現や、ワードや辞書の構造は処理系ごとに自由が認められているので
実際のところ自分がスマートだと考える仕様がベスト。
126:デフォルトの名無しさん
04/07/18 19:11
crを完全にスペースに置き換えた場合(全てのワードを即時実行にする)、
何か弊害あります?
127:デフォルトの名無しさん
04/07/18 20:57
>>125
FORGET は旧式の拡張ワードとして未だ生きながらえているね。
新ワードは MARKER。前もって、MARKER word としてヘッダーを作っておいて
後の実行時に word cr でヘッダー以後のワードを消し去るという使い方。
変数をプログラムメモリと別の領域に置く方式への配慮という感じがする。
128:デフォルトの名無しさん
04/07/18 21:09
>>126
即時実行型のFORTHでは過去にGraFORTHを触ったことがあります。
コロン定義なしでDO LOOP文を入力するとリターンキーで実行する。
最初からそういう形の仕様で考えてあれば弊害はないはずですよ。
129:デフォルトの名無しさん
04/07/18 21:56
>>128
コロン定義無しっすかあ 厳しいなあ
即時実行するかしないかの1bitスイッチとそれを操作する[,]の2つのワードを作っておいて
[ ワード名 命令 ] DEFW なんてやり方も考えてみましたけど
実装がめ、めんどそうやなあ〜
スペースのみで全て即時実行の方がミニマリズム全開でカッチョエ〜とか思いますけど
いた仕方ない cr待ちに変えるかあ〜
130:デフォルトの名無しさん
04/07/18 23:29
>>129
> [ ワード名 命令 ] DEFW
これだったら通常のコロン定義の方がシンプルでは?
どうせなら
[ 命令 ] DEFW ワード名
とか。
でも即時実行のみでやるなら
/ワード名 [ 命令 ] DEFW
かな……。
Postscriptみたいだ‥‥‥。
131:デフォルトの名無しさん
04/07/18 23:38
>スペースのみで全て即時実行
Forthは基本的にスペースが来たら即時実行という考え方で良いと
思うんですが。
ただ、
・immediate属性でないワードはコロン定義の間は実行せずにコード生成
・immediate属性のワードはいつも即時実行
というルールに従っていれば。
132:デフォルトの名無しさん
04/07/19 00:25
>>131
やっとimmediateの使い方を理解できました。
シェルと構文解析を同時に考えるから混ざってしまってたのか・・・
>>130
定義されてないワードが来たらワード定義に移るとか考えましたが、
デバッグというか間違えた時しにそうなのでなかったことにします。
133:デフォルトの名無しさん
04/08/17 12:39
今さらながらプログラマーズ ハンドブックをForth社に注文した。
入手できるうちで現在の標準を一番反映したものになっているのだと思う。
オーダー番号は22だったけど、やっぱりForthって超マイナーなのかな?
134:デフォルトの名無しさん
04/08/22 01:06
唯我独尊言語
135:デフォルトの名無しさん
04/08/24 08:37
>>134
「どれ一つとして尊くない命はなく、だからこそ尊いというお釈迦様の言葉・・・」
136:デフォルトの名無しさん
04/08/24 18:17
「どれ一つとして尊くないForthはなく、だからこそ尊いというおムーア様の言葉・・・」
137:デフォルトの名無しさん
04/08/24 18:37
>>136
パチパチパチ! 君に500 CELL分け与えよう。
500 cells allot
138:134
04/08/25 20:55
>>135-137
そんな高尚なつもりではなかったんだが、
ま、いいか。
Forthを信ぜよ、栄光あれ!
139:133
04/08/26 06:01
正味5日間でプログラマーズ ハンドブックが届きました。$49.95の価値は十分にあると思う。というか、'94標準FORTHに関してはこれが現実的に唯一のガイドブック。送料は色々選べる中から$11のものをチョイス。(amazon.comでは本のみ$71.35)
肝心の中身はネットに頼って調べているよりも断然良かった。'94標準ばかりが能じゃないけど、どこかで方言がずらりと並ぶワードリストを見たことがあるから、やっぱり標準化は必要悪だったのかも知れないね。
140:デフォルトの名無しさん
04/08/26 09:26
>>139
いいなあ。欲しいなあ。
141:デフォルトの名無しさん
04/08/26 13:21
ISO/IEC 15145:1997 Informatinon technology -- Programming languages -- FORTH
はどうなのよ。あんまり情報がないけど、たぶん'94FORTH。
142:デフォルトの名無しさん
04/08/26 13:48
>>141
URLリンク(www.eos.org.eg)
これだったらANSが出している高い準拠解説書の方が良さそう
プログラマーズの共著者の一人は天文台時代からムーアの秘書?
をやっていた現Forth Incの社長でdpansの委員長を務めている人物
・・・だから
>$49.95の価値は十分にある
かな
143:デフォルトの名無しさん
04/08/30 05:42
forthは、下手すっとアセンブラより難しいの
こんなの流行るわけないだよ
144:デフォルトの名無しさん
04/08/30 14:57
みいちゃんはあちゃんにちゃんで寝るえ〜
145:デフォルトの名無しさん
04/08/30 20:57
電波系が混じってるから下げるしかないね
146:デフォルトの名無しさん
04/09/01 18:19
DPANS94ってのはISOのやつとは別物?
147:デフォルトの名無しさん
04/09/01 21:02
マイナー言語はISOで定義されたからって
それが標準になるわけじゃないんだよな
なんのためのISOだよ
148:デフォルトの名無しさん
04/09/11 23:35:50
>>146
ネットで公開されているDPANS94は下書きの最終段階のもので、正式な標準ドキュメントはANSIから得るよう公開ページに書かれているね。
実際のところ公開されているものは承認されたものだから、イコール標準ドキュメントとみなして差し支えないと思うけど。
それから、ANS Forth ANSI X3.215:1994 は ISO/IEC 15145:1997と同一だそうです。
URLリンク(forth.com)
149:デフォルトの名無しさん
04/10/07 12:00:14
May the FORTH be with you!
150:デフォルトの名無しさん
04/10/09 16:17:30
>>149
by Oh! MZ (ねたに反応…、これでいいよね?)
151:デフォルトの名無しさん
04/11/07 19:36:28
Fifthは?
152:デフォルトの名無しさん
04/11/07 20:21:10
Fifthは腹を切って死ぬべきだ。
また、彼らはただ死んで終わるものではない。
唯一神ムーアが地獄の火の中に投げ込む者達だ。
彼らの支持者も同様だ。
理由はthleded codeを殺すなら自分が死ぬべきだからだ。
詳しい理由はURLリンク(www.complang.tuwien.ac.at)で熟知すべし。
153:デフォルトの名無しさん
04/11/07 20:22:02
threadのスペルミスった....orz
154:デフォルトの名無しさん
04/11/08 23:35:14
>>151
最新版
URLリンク(www.runesoft.co.jp)
155:デフォルトの名無しさん
04/11/10 22:13:43
なんかすごい展開になってるな
156:デフォルトの名無しさん
04/11/11 22:16:08
lispはlisper、
rubyはrubyist、
pythonはpythonian、
ではFORTHを使う人はなんと呼ばれるのでしょうか?
157:デフォルトの名無しさん
04/11/11 23:07:00
>>156
Jedi
158:156
04/11/12 22:06:36
>>157
こんなカコイイ答えが返ってくるとは思わなかったのでびっくりです。
159:デフォルトの名無しさん
04/11/13 08:44:06
FORTHの暗黒面とはなんでしょうか、お師匠様。
160:デフォルトの名無しさん
04/11/14 22:38:00
>>159
... スタック?
161:デフォルトの名無しさん
04/11/15 21:46:00
それはムーアの無用の用の有用のヨーダ
162:デフォルトの名無しさん
04/11/19 22:41:18
Forthは米国では根強い人気がある、と言われてるのに、
amazon.comの言語カテゴリにはForthが無いんですけど、、
163:デフォルトの名無しさん
04/11/21 21:32:11
Forthを日常的に使っている方っていますか?
どんな用途に使ってますか?
#個人的興味のために作ってる、、ってのが一番多いかな
#自分がそうだし
164:デフォルトの名無しさん
04/11/21 22:11:10
仕事で毎日Postscriptプリンタ使ってます。
って冗談はともかく、最近は趣味以外の用途には
ほとんど使われてないんじゃないの?
165:デフォルトの名無しさん
04/11/21 23:30:57
とりあえず処理系のコアの部分だけ作って、
1 2 + . とか入力したら 3 って表示されて、
「わーい、動いた〜」とか言って安心してあとは放置、
ってパターンが一番多い希ガス。
処理系のコアだけ作るなら、そこそこ実力あるプログラマーなら簡単。
ただ実際、実用に使うとなると、C言語使えば済むから、
わざわざ FORTH を実用レベルまで完成度を高める気がしないんだよね。
8ビット機時代みたいに、
まともな高級言語のコンパイラが個人では入手困難だったころには、
比較的簡単に作れる FORTH って魅力的だったんだけど。
166:デフォルトの名無しさん
04/11/23 04:39:05
URLリンク(www.gihyo.co.jp)
Forthは出てこないが、中身は仮想スタックマシンの作り方だよ。
著者は文系出身の女性。中田センセとの2ショットあり
167:デフォルトの名無しさん
04/11/23 09:20:06
Forth本て少ないよね。
っていうか、ここ15年ほど出てない、、
昔「標準FORTH」って本持ってたけど捨ててしまったorz
168:デフォルトの名無しさん
04/11/27 23:36:10
4th
169:デフォルトの名無しさん
04/11/30 05:17:34
>>166
スレ違いです。
氏ね
170:デフォルトの名無しさん
04/11/30 07:47:33
どうせ過疎スレなんだし堅い事言うなよ。
171:デフォルトの名無しさん
04/12/05 12:16:00
過疎なるがゆえの矜持ですよ
172:デフォルトの名無しさん
04/12/10 21:28:17
スレタイの並びの意味がやっとわかった
173:デフォルトの名無しさん
04/12/30 21:50:26
え、どういう忌み?
174:デフォルトの名無しさん
05/01/03 15:53:10
あれだ、2chって新スレとか上がったスレが上に来るだろ。
これこそまさにスタックというやつだ。
175:デフォルトの名無しさん
05/01/03 20:36:46
2chはtopのスレ以外にもアクセスできるから、スタックではないだろう。
176:デフォルトの名無しさん
05/01/07 23:50:07
オフセットするんでいいんでない
177:デフォルトの名無しさん
05/01/08 09:59:50
スレはpop出来ないじゃないか。
178:デフォルトの名無しさん
05/01/13 09:38:30
Naoさんのページの新着情報に、"Thinking Forth"が公開され(てい)るという情報が。
わーい。これから読みます。
一応URL貼っておきます。
URLリンク(thinking-forth.sourceforge.net)
Naoさんいわく、「本物の名著」だそうで。
179:デフォルトの名無しさん
05/01/13 21:52:52
読んだらおせてください。
180:デフォルトの名無しさん
05/01/21 00:05:42
>>43が気になるage
181:デフォルトの名無しさん
05/01/22 02:17:00
人来い
182:デフォルトの名無しさん
05/01/22 18:57:50
ou
183:デフォルトの名無しさん
05/01/23 09:49:26
4TH
184:デフォルトの名無しさん
05/01/29 19:53:43
じぇぢ
185:デフォルトの名無しさん
05/02/06 06:52:57
PIC18forthを作ったヒトがいるらしい。Pythonで書いたっていうけど
forthはforthで書くのが正しいんじゃなかったっけ?
URLリンク(lists.rfc1149.net)
186:デフォルトの名無しさん
05/03/09 21:12:32
>forthはforthで書くのが正しいんじゃなかったっけ?
?
187:デフォルトの名無しさん
05/03/10 08:17:06
forth環境自身に移植用のツールやらが入ってるのさ。
188:デフォルトの名無しさん
05/03/29 20:41:02
あ そういうことですか
189:デフォルトの名無しさん
05/04/06 20:19:05
forthの仕組みがわかるサイトないですか
190:デフォルトの名無しさん
05/04/08 13:08:38
>189
URLリンク(www.forth.org)
191:デフォルトの名無しさん
05/04/08 22:07:02
forthには呆れた
192:デフォルトの名無しさん
05/04/08 22:22:18
認知症ですか
193:デフォルトの名無しさん
05/04/11 01:13:26
日本の FORTH 界の総本山
URLリンク(www.forth.go.jp)
194:デフォルトの名無しさん
05/04/22 21:22:42
FORTH使えねえ・・
195:デフォルトの名無しさん
05/04/22 21:23:16
FORTHでまともなアプリ作ってみろよ
あんのか?
196:デフォルトの名無しさん
05/04/23 11:58:23
君が使ってるマザボのBIOSの半分ぐらいはforthの可能性があるな。
あと、君がPSプリンタ使ってればpostscriptという形でforthが動いているわけで。
組み込み世界ではわりと普通に使われてますが何か?
197:デフォルトの名無しさん
05/04/23 12:59:24
嘘ばっか
ソース晒してみろよ
PSはFORTHじゃねーし
198:デフォルトの名無しさん
05/04/23 18:04:23
URLリンク(www.answers.com)
ほい。とりあえずSunがSparcシリーズのBIOSの記述に使ってるらすぃ。
あとASUSが採用してたはずなんだが、すぐに出てこなかった。
あと、PostScriptとforthの関係性な。
URLリンク(c2.com)
199:デフォルトの名無しさん
05/04/23 18:11:18
ググってやっと見つかったのか
お疲れさん
200:デフォルトの名無しさん
05/04/23 18:45:38
>ソース晒してみろよ
組み込みソフトなんてのはネジと同じ単なる部品。
どこの世界に「ウチはxxのネジを使ってます」なんて言いふらす自動車屋があるってんだよ。
バカかこいつ(w
201:デフォルトの名無しさん
05/04/23 18:54:35
その言い訳はマイナー言語全般で使えるね
参考になるよ
202:デフォルトの名無しさん
05/04/23 18:56:09
で、組み込みとPS以外は無いの?
203:デフォルトの名無しさん
05/04/23 21:17:09
無かったら何?
204:デフォルトの名無しさん
05/04/23 21:37:02
FORTH使えねえ・・
205:デフォルトの名無しさん
05/04/23 21:52:22
お前には使えねえ・・
206:デフォルトの名無しさん
05/04/23 22:23:51
おめえは使えるのか?
だとしたら、何か一発、でかい事しようぜ?!
207:デフォルトの名無しさん
05/04/23 22:41:36
Forthって予約語とか命令とかってどれくらいあるの?
簡単なスタック計算機なら作ったことあるんだけど、どれくらい拡張するとForthになるんだろう。
208:デフォルトの名無しさん
05/04/23 22:44:52
スタック計算機って、おめえ、1 2 + とかだろ?
そんなんじゃプログラミング言語とはいえねえわな。
その形式で制御文とか関数定義考えたこたあるか?
209:デフォルトの名無しさん
05/04/23 22:45:20
アプリってなんだ
210:デフォルトの名無しさん
05/04/23 22:48:00
>>208
> そんなんじゃプログラミング言語とはいえねえわな。
もういいからそこらへんで冷たくなってろ
211:デフォルトの名無しさん
05/04/23 23:02:44
>208
数字が出たら、素直にスタックに積んで、
トークンが出たら、変数領域を参照して、あったらスタックに積んで、
なかったら、命令領域を参照してあったら、命令にスタックそのものを渡して計算させる。
命令と変数は基本的にstd::mapを使ってコールバックの形などで実現する。
whileとかの解析で思考が詰まってたところだよ。
いっその事、字句解析機もコールバックに渡してしまおうとおもってた。
字句解析には、BOOST::tokenizerを使う。
スタックに積む形式はBOOST::anyあたりがいいかなーと、バリアント変数好きの自分は考えていた。
辞書作成(実質サブルーチン)はちょっとてまかかりそうだけど、evalっぽいの実装すればいけそうだとか考えてた。
とかとか、漠然と考えたことはあるんだけど、実行効率は落第点だろうね。
212:211
05/04/23 23:07:40
素材はもちろんC++
アプリにくっつけて、Forthスクリプトもいいかなーとか妄想してる。
213:デフォルトの名無しさん
05/04/23 23:30:54
そして誰もいなくなった。
214:デフォルトの名無しさん
05/04/23 23:40:47
FORTH使えねえ・・
215:デフォルトの名無しさん
05/04/23 23:55:35
がんばれ
216:デフォルトの名無しさん
05/04/24 00:04:53
なんでもちろんC++なのかねえ。
普通アセだろ?こんなの
217:デフォルトの名無しさん
05/04/24 00:45:22
土日らしいな
218:デフォルトの名無しさん
05/04/24 08:22:03
>>211
FORTHへの招待 ,Harry Katzan,Jr.
池野信一監訳 近代科学社 1600円 ISBN4-7649-0082-3 C3050
読んでみればFORTHの実装がどれだけお手軽か分かる。
絶版なんでOPACで持ってる図書館を探してくれ。
219:211
05/04/24 15:41:48
>>216
アセンブラできません。(笑
趣味グラマなんで。
>>218
ずいぶん古い文献のようですね。1984年か。
僕、2歳かな・・・。なんだか感慨深いですね。
220:211
05/04/24 16:48:33
地元の図書館の検索ページ行ってみたが、ないな。
僕の手が届く(自作できそうな)処理系ってbarinf*ckとforth位なんだよなー。
構文解析作るの面倒だし、うーん。
221:デフォルトの名無しさん
05/04/24 17:02:19
>>220
県内の図書館は大抵連携していて他館のも借り出せるから、
他の図書館も探すべし。
(県内図書館の横断検索システムが大抵ある。)
最悪でも国会図書館から地元の図書館へ借り出せる。
(ただし館内閲覧のみ)
222:デフォルトの名無しさん
05/04/24 19:52:47
>>221
詳しいんだね。
それで、県の横断検索でもみつかったけど大学の図書だ。
こういうのも横断して借りれるのかな。ちょっと躊躇してるけど、試してみようかな。
Thx!
#しかし便利だな。この検索方法。
223:デフォルトの名無しさん
05/04/24 21:05:06
Forthなんか自作しても誰も褒めてくれないよ
Lispにしとけば?
224:デフォルトの名無しさん
05/04/25 18:34:25
別に人に褒めてもらうために処理系作るわけじゃないし。
225:デフォルトの名無しさん
05/04/25 21:02:47
Forthなんか自作しても誰も使わないよ
Lispにしとけば?
226:デフォルトの名無しさん
05/04/25 21:20:05
やけに伸びてると思ったら‥‥。
>>211
>whileとかの解析で思考が詰まってたところだよ。
FORTHの場合、多くの制御構造はbranchと0branch
(無条件相対ジャンプと条件ジャンプ)命令を実装したら
FORTH自身で作れる。
>>218 の本とか読んでみなされ。
あと、遠い昔にForth(というかMops+自作Lib)で作った
「メモ帳アプリもどき」のソースを晒しときますね。
URLリンク(gdsz.hp.infoseek.co.jp)
227:211
05/04/26 20:43:23
URLリンク(www-lab.ee.uec.ac.jp)
こういうの発見。
意外とC並みのことができそうな感じ。
でも、スクリプトとしてはあんま必要なさそうなのが結構あるなー。
一つのスタックにdoubleとintを混在させる方法が結構面倒そうだ。
やっぱ、Boost::anyかなぁ・・・。any使っとくとその後の拡張が楽そうだな。(Win方面のハンドルとか。)
うーん。
トンカチを持ってる人はすべての問題が釘に見えるっていうのがあるけど、
なんかそんな感じに陥っていそうな感じだ。
どうしよ。
>>226
オブジェクト指向のforthかな??
マニュアルないから、パラメータの意味がわかりにくいな。(引数とかとか。)
でも、ちゃんとアプリできてるのはすごいと思う。
適当なOS向けの拡張ってどうやってやるんだろう。
Boost::anyにハンドル類を突っ込むしか思い当たらない・・・。
スタック何本いるんだろ。3本かな・・・??
というか、キューとかにしちゃってもいいのか??
228:デフォルトの名無しさん
05/04/28 19:20:51
ホンダガラッタ
ヘンダガラッタ
フンダガラッタ
フン!フン!
エッグマンが現れた。
229:デフォルトの名無しさん
05/04/28 23:40:24
> 一つのスタックにdoubleとintを混在させる方法が結構面倒そうだ。
実数は実数スタックに積むんじゃね?
230:デフォルトの名無しさん
05/04/29 12:19:01
はぁ?ナニ言ってんのおまえ
231:デフォルトの名無しさん
05/04/29 13:09:33
>>229は正しい事言ってるんだけど。FORTHとして。
FORTHの言語仕様をろくに確認しないうちに、
思い込みで作り始めてる香具師がいるわけで。
232:デフォルトの名無しさん
05/04/29 18:05:54
>>231=229
はぁ?ナニ言ってんのおまえ
233:デフォルトの名無しさん
05/04/29 20:55:41
このスレはもうだめぽ。
234:デフォルトの名無しさん
05/05/01 01:45:08
>>227
C言語レベルでオゲーなら、↓こんな所からコードを読んでみるのは、いかがでせぅか?
T4th
URLリンク(eshop.advanet.co.jp)
GForth
URLリンク(www.jwdt.com)
GikoForth
URLリンク(gikoforth.s13.xrea.com)
T4thは正確にはモドキらしいけど、日曜プログラミング程度で突付ける程度の気楽さですよ。
> 適当なOS向けの拡張ってどうやってやるんだろう。
ぱっと思いつくのは、Win32 APIのLoadLibraryとGetProcAddressを呼び出す
ワード(命令)を用意すれば いいんじゃないかな?と。
>というか、キューとかにしちゃってもいいのか??
STLのstackも確かqueueの特殊系だったので、それで良いと思いますよ。
(上のはCで実装しているけど、まぁ似たような感じだし)
235:227
05/05/01 04:00:31
先日brainf*ckを自作してみたら、大体C++のクラスで150行位になった。
僕が保守できる限界がこれ位なだよなー。結構ヘタレ。
>>234
thx!
あまり長いソースはよんだことないからなー。
1000行はちょっと長いね。まーいいか。
地道によんでみます。
>ぱっと思いつくのは、Win32 APIのLoadLibraryとGetProcAddressを呼び出す
>ワード(命令)を用意すれば いいんじゃないかな?と。
うまいまわし方はわからんけど、簡単そうですね。
>というか、キューとかにしちゃってもいいのか??
どうしてこんなこといっちゃったんだろう。
意図忘れちゃった。(汗
236:227
05/05/02 21:43:03
URLリンク(www.uploda.org)
スタック電卓作ってみました。
形にはなってない感じですが・・・。
とりあえず、ソースはまだカオス化してないはずなので興味があるなら読んでみてください。
変数等は使えません。辞書も無理。
拡張は、クラスStackCalcのenumのTokennumを必要数増やして、
メソッド、Doの中にあるstd::stringのtoken[]に命令文を追加して、
switch文に新しい数字を増やして、
新しいメソッドを書くだけ。
こんなに簡単。(笑
扱いはMain.cppを見てください。
エラー処理はほぼしてないです。
あー、これをどれだけ拡張すると、forthになるのやら。
制御構文がネックだなー。Boost::tokenizerはバックして解析できないみたいだし・・・。
あと、ファイルは二日ほどで消える予定です。
237:236
05/05/02 21:46:48
あ、URLのh抜くの忘れてた。
238:デフォルトの名無しさん
05/05/08 03:21:28
保守上げ
239:デフォルトの名無しさん
05/05/08 03:28:55
保守上げ。リバイバル。
240:デフォルトの名無しさん
05/05/10 22:55:12
Forth さばいばる
241:デフォルトの名無しさん
05/05/11 23:05:01
いや、ぜんぜん生き残ってないし
242:デフォルトの名無しさん
05/05/18 19:40:57
三回転半腰捻り腰痛対策age
243:デフォルトの名無しさん
05/05/24 04:28:13
S-Langはスタックベースの言語なんだね。
でも構文見るとまるでCだ。
244:デフォルトの名無しさん
05/05/28 05:14:52
SLangの少ない日本語ページ
URLリンク(mizotec.s27.xrea.com)
URLリンク(genjo9.lit.let.hokudai.ac.jp)
245:デフォルトの名無しさん
05/06/05 03:08:40
あれ? ここってforthスレだよねぇ〜・・・(謎
246:デフォルトの名無しさん
05/06/05 03:24:28
fifth
247:デフォルトの名無しさん
05/06/05 23:58:45
ミットコンッドッリアアアッァァアァァァァァァァァァァァアアアアアァァァァア。
age
248:デフォルトの名無しさん
05/06/05 23:59:43
うぉぉおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおぉぉぉぉぉぉりゃぁぁぁぁぁぁぁぁぁぁぁぁあぁぁぁっぁぁぁっぁぁぁぁぁっぁぁぁぁ
age
249:デフォルトの名無しさん
05/06/06 04:47:43
URLリンク(www.retroforth.org)
250:デフォルトの名無しさん
05/06/15 07:23:13
URLリンク(stackempty.info)
251:デフォルトの名無しさん
05/06/21 21:25:18
↑ブラクラ
と書かれると嫌だろ?
ちゃんと何のリンクかぐらい書けや
252:デフォルトの名無しさん
05/06/22 14:44:53
サーバーが見つかりません
253:デフォルトの名無しさん
05/06/22 21:45:27
と書かれると嫌だろ?
ちゃんと何のリンクかぐらい書けや
254:デフォルトの名無しさん
05/07/09 15:05:46
数年前の記事ですが...
I Hate Forth
URLリンク(embedded.com)
I Love Forth
URLリンク(embedded.com)
255:デフォルトの名無しさん
05/09/02 18:54:36
ムーアさん、亡くなった?
256:名無しさん@そうだ選挙に行こう
05/09/11 20:49:19
そんな話聞いた事無いけどな。
Dr. Moogなら亡くなったが。
257:デフォルトの名無しさん
05/11/09 00:49:06
hoth
258:デフォルトの名無しさん
05/11/12 02:24:58
こんだけ過疎な理由はなんだ?
Forthの悪いところでも晒していこうぜ。
ちなみにおれはアセンブラより難解だと思ってる一人だぜ。
259:デフォルトの名無しさん
05/11/12 06:28:32
俺はPythonやJavaより読みやすいと思ってる一人だぜ.
260:デフォルトの名無しさん
05/12/07 02:41:39
何か話題ないのか
261:デフォルトの名無しさん
05/12/07 10:20:28
FORTH にある ROT って
つまり age のことだよね?
最近やっと気付いたよ w
262:デフォルトの名無しさん
05/12/07 22:57:42
: age ROT ;
263:デフォルトの名無しさん
05/12/07 23:57:33
sage は SWAP でいいのかな?
: sage SWAP ;
264:デフォルトの名無しさん
05/12/08 02:35:14
やっぱり
: foo bar ;
より
/foo { bar } def
の方がわかりやすいなあ
: を imdsw_on ; を imdsw_offとかにすれば
ちょっとはわかるような
わからんか
265:デフォルトの名無しさん
05/12/10 01:54:03
FORTHは全部が後置記法に統一されてないのがちぐはぐで嫌
266:デフォルトの名無しさん
05/12/16 14:42:09
age
267:デフォルトの名無しさん
05/12/16 19:51:11
>>265
FORTHの中の人の事情がいろいろ表に出てきてるから。
事情がわかると「なるほど」と思う。
268:デフォルトの名無しさん
05/12/16 20:26:43
>>265
硬いこというなよ。普通の言語だって演算子の優先順位とかあるじゃんか。
ソースも1文字ずつ後ろから読んでたら面白かったのに>forth
269:デフォルトの名無しさん
05/12/16 22:34:35
前から後ろから
270:デフォルトの名無しさん
05/12/17 08:06:49
でも入口と出口は一緒
pushしてpop
「おめでとうございます。元気な男の子ですよ」
271:デフォルトの名無しさん
05/12/17 10:33:36
interlog
272:デフォルトの名無しさん
05/12/17 12:43:43
そこで、swapしちゃいます
273:デフォルトの名無しさん
05/12/17 13:46:53
HTROFに改名しますた
274:デフォルトの名無しさん
06/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
となるようにです。
よろしくおながいします。
275:デフォルトの名無しさん
06/02/12 23:31:47
ゅしほ
276:デフォルトの名無しさん
06/03/05 10:04:15
>>27のリンク先で
「WORDというワードは呪われた代物で、無いほうがよい」っていうのはどういう意味かね。
ほとんど表記法を変更する目的でしか使われないからかな。
277:デフォルトの名無しさん
06/03/05 16:17:17
訳注に書いてあるとおり。
プログラムの可読性を損ねるからだと思われ。
278:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 22:15:13
TextSS のWindowsXP(Professional)64bit対応化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
279:デフォルトの名無しさん
06/03/30 18:03:27
手軽に手に入る唯一のFORTHチップ?
URLリンク(www.offete.com)
280:デフォルトの名無しさん
06/03/30 18:17:19
オライリーの表紙に龍はないだろ
281:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/05/18 11:40:06
Thinking FORTH を CCL で日本語化するプロジェクトが進行中。
本日作業分担を大まかに決める予定。
日本FORTH研究会の会報をPDF・オープン化することも本日の議題。
LL Ring! Language Update に出るか否かも本日決定?
第3世代 FIG JAPAN 立ち上げたいなぁ。
283:274
06/05/18 12:01:42
>>281
激しくありがとうございます
284:デフォルトの名無しさん
06/05/18 16:13:05
>>282 期待age
285:デフォルトの名無しさん
06/05/18 16:13:50
sageいれちまった... orz
286:デフォルトの名無しさん
06/05/18 16:19:51
というか日本支部生きてたのか(w
287:デフォルトの名無しさん
06/06/01 02:25:15
>>286
生きてません。本家FIGでもリンクがなくなっています。
とはいえ、三世代FIG-JAPAN設立構想も検討中。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5329日前に更新/129 KB
担当:undef