2 part forth

1デフォルトの名無しさん
垢版 |
NGNG
第四世代
206デフォルトの名無しさん
垢版 |
2005/04/23(土) 22:23:51
おめえは使えるのか?
だとしたら、何か一発、でかい事しようぜ?!
207デフォルトの名無しさん
垢版 |
2005/04/23(土) 22:41:36
Forthって予約語とか命令とかってどれくらいあるの?
簡単なスタック計算機なら作ったことあるんだけど、どれくらい拡張するとForthになるんだろう。
208デフォルトの名無しさん
垢版 |
2005/04/23(土) 22:44:52
スタック計算機って、おめえ、1 2 + とかだろ?
そんなんじゃプログラミング言語とはいえねえわな。
その形式で制御文とか関数定義考えたこたあるか?
209デフォルトの名無しさん
垢版 |
2005/04/23(土) 22:45:20
アプリってなんだ
210デフォルトの名無しさん
垢版 |
2005/04/23(土) 22:48:00
>>208
> そんなんじゃプログラミング言語とはいえねえわな。
もういいからそこらへんで冷たくなってろ
2005/04/23(土) 23:02:44
>208
数字が出たら、素直にスタックに積んで、
トークンが出たら、変数領域を参照して、あったらスタックに積んで、
なかったら、命令領域を参照してあったら、命令にスタックそのものを渡して計算させる。
命令と変数は基本的にstd::mapを使ってコールバックの形などで実現する。
whileとかの解析で思考が詰まってたところだよ。
いっその事、字句解析機もコールバックに渡してしまおうとおもってた。
字句解析には、BOOST::tokenizerを使う。

スタックに積む形式はBOOST::anyあたりがいいかなーと、バリアント変数好きの自分は考えていた。

辞書作成(実質サブルーチン)はちょっとてまかかりそうだけど、evalっぽいの実装すればいけそうだとか考えてた。

とかとか、漠然と考えたことはあるんだけど、実行効率は落第点だろうね。
212211
垢版 |
2005/04/23(土) 23:07:40
素材はもちろんC++

アプリにくっつけて、Forthスクリプトもいいかなーとか妄想してる。
2005/04/23(土) 23:30:54
そして誰もいなくなった。
214デフォルトの名無しさん
垢版 |
2005/04/23(土) 23:40:47
FORTH使えねえ・・
2005/04/23(土) 23:55:35
がんばれ
216デフォルトの名無しさん
垢版 |
2005/04/24(日) 00:04:53
なんでもちろんC++なのかねえ。
普通アセだろ?こんなの
2005/04/24(日) 00:45:22
土日らしいな
2005/04/24(日) 08:22:03
>>211
FORTHへの招待 ,Harry Katzan,Jr.
池野信一監訳 近代科学社 1600円 ISBN4-7649-0082-3 C3050

読んでみればFORTHの実装がどれだけお手軽か分かる。
絶版なんでOPACで持ってる図書館を探してくれ。
219211
垢版 |
2005/04/24(日) 15:41:48
>>216
アセンブラできません。(笑
趣味グラマなんで。

>>218
ずいぶん古い文献のようですね。1984年か。
僕、2歳かな・・・。なんだか感慨深いですね。
220211
垢版 |
2005/04/24(日) 16:48:33
地元の図書館の検索ページ行ってみたが、ないな。
僕の手が届く(自作できそうな)処理系ってbarinf*ckとforth位なんだよなー。
構文解析作るの面倒だし、うーん。
2005/04/24(日) 17:02:19
>>220
県内の図書館は大抵連携していて他館のも借り出せるから、
他の図書館も探すべし。
(県内図書館の横断検索システムが大抵ある。)

最悪でも国会図書館から地元の図書館へ借り出せる。
(ただし館内閲覧のみ)
2005/04/24(日) 19:52:47
>>221
詳しいんだね。
それで、県の横断検索でもみつかったけど大学の図書だ。
こういうのも横断して借りれるのかな。ちょっと躊躇してるけど、試してみようかな。
Thx!

#しかし便利だな。この検索方法。
2005/04/24(日) 21:05:06
Forthなんか自作しても誰も褒めてくれないよ
Lispにしとけば?
2005/04/25(月) 18:34:25
別に人に褒めてもらうために処理系作るわけじゃないし。
2005/04/25(月) 21:02:47
Forthなんか自作しても誰も使わないよ
Lispにしとけば?
2005/04/25(月) 21:20:05
やけに伸びてると思ったら‥‥。
>>211
>whileとかの解析で思考が詰まってたところだよ。
FORTHの場合、多くの制御構造はbranchと0branch
(無条件相対ジャンプと条件ジャンプ)命令を実装したら
FORTH自身で作れる。
>>218 の本とか読んでみなされ。

あと、遠い昔にForth(というかMops+自作Lib)で作った
「メモ帳アプリもどき」のソースを晒しときますね。
ttp://gdsz.hp.infoseek.co.jp/cgi-bin/yukiwiki/yukiwiki.cgi?mycmd=read&mypage=mNote
227211
垢版 |
2005/04/26(火) 20:43:23
ttp://www-lab.ee.uec.ac.jp/text/forth/man/man.html
こういうの発見。
意外とC並みのことができそうな感じ。
でも、スクリプトとしてはあんま必要なさそうなのが結構あるなー。

一つのスタックにdoubleとintを混在させる方法が結構面倒そうだ。
やっぱ、Boost::anyかなぁ・・・。any使っとくとその後の拡張が楽そうだな。(Win方面のハンドルとか。)
うーん。

トンカチを持ってる人はすべての問題が釘に見えるっていうのがあるけど、
なんかそんな感じに陥っていそうな感じだ。
どうしよ。

>>226
オブジェクト指向のforthかな??
マニュアルないから、パラメータの意味がわかりにくいな。(引数とかとか。)
でも、ちゃんとアプリできてるのはすごいと思う。

適当なOS向けの拡張ってどうやってやるんだろう。
Boost::anyにハンドル類を突っ込むしか思い当たらない・・・。
スタック何本いるんだろ。3本かな・・・??
というか、キューとかにしちゃってもいいのか??
2005/04/28(木) 19:20:51
ホンダガラッタ
ヘンダガラッタ
フンダガラッタ
フン!フン!

エッグマンが現れた。
2005/04/28(木) 23:40:24
> 一つのスタックにdoubleとintを混在させる方法が結構面倒そうだ。
実数は実数スタックに積むんじゃね?
2005/04/29(金) 12:19:01
はぁ?ナニ言ってんのおまえ
2005/04/29(金) 13:09:33
>>229は正しい事言ってるんだけど。FORTHとして。
FORTHの言語仕様をろくに確認しないうちに、
思い込みで作り始めてる香具師がいるわけで。

2005/04/29(金) 18:05:54
>>231=229
はぁ?ナニ言ってんのおまえ
2005/04/29(金) 20:55:41
このスレはもうだめぽ。
2005/05/01(日) 01:45:08
>>227
C言語レベルでオゲーなら、↓こんな所からコードを読んでみるのは、いかがでせぅか?

T4th
http://eshop.advanet.co.jp/formmail/t4th.html

GForth
http://www.jwdt.com/~paysan/gforth.html

GikoForth
http://gikoforth.s13.xrea.com/gikoforth.html

T4thは正確にはモドキらしいけど、日曜プログラミング程度で突付ける程度の気楽さですよ。

> 適当なOS向けの拡張ってどうやってやるんだろう。
ぱっと思いつくのは、Win32 APIのLoadLibraryとGetProcAddressを呼び出す
ワード(命令)を用意すれば いいんじゃないかな?と。

>というか、キューとかにしちゃってもいいのか??
STLのstackも確かqueueの特殊系だったので、それで良いと思いますよ。
(上のはCで実装しているけど、まぁ似たような感じだし)

235227
垢版 |
2005/05/01(日) 04:00:31
先日brainf*ckを自作してみたら、大体C++のクラスで150行位になった。
僕が保守できる限界がこれ位なだよなー。結構ヘタレ。

>>234
thx!
あまり長いソースはよんだことないからなー。
1000行はちょっと長いね。まーいいか。
地道によんでみます。

>ぱっと思いつくのは、Win32 APIのLoadLibraryとGetProcAddressを呼び出す
>ワード(命令)を用意すれば いいんじゃないかな?と。
うまいまわし方はわからんけど、簡単そうですね。

>というか、キューとかにしちゃってもいいのか??
どうしてこんなこといっちゃったんだろう。
意図忘れちゃった。(汗
236227
垢版 |
2005/05/02(月) 21:43:03
http://www.uploda.org/file/uporg88200.lzh
スタック電卓作ってみました。
形にはなってない感じですが・・・。
とりあえず、ソースはまだカオス化してないはずなので興味があるなら読んでみてください。
変数等は使えません。辞書も無理。

拡張は、クラスStackCalcのenumのTokennumを必要数増やして、
メソッド、Doの中にあるstd::stringのtoken[]に命令文を追加して、
switch文に新しい数字を増やして、
新しいメソッドを書くだけ。
こんなに簡単。(笑

扱いはMain.cppを見てください。
エラー処理はほぼしてないです。

あー、これをどれだけ拡張すると、forthになるのやら。
制御構文がネックだなー。Boost::tokenizerはバックして解析できないみたいだし・・・。

あと、ファイルは二日ほどで消える予定です。
237236
垢版 |
2005/05/02(月) 21:46:48
あ、URLのh抜くの忘れてた。
2005/05/08(日) 03:21:28
保守上げ
239デフォルトの名無しさん
垢版 |
2005/05/08(日) 03:28:55
保守上げ。リバイバル。
2005/05/10(火) 22:55:12
Forth さばいばる
2005/05/11(水) 23:05:01
いや、ぜんぜん生き残ってないし
242デフォルトの名無しさん
垢版 |
2005/05/18(水) 19:40:57
三回転半腰捻り腰痛対策age
2005/05/24(火) 04:28:13
S-Langはスタックベースの言語なんだね。
でも構文見るとまるでCだ。
2005/05/28(土) 05:14:52
SLangの少ない日本語ページ
http://mizotec.s27.xrea.com/slang.html
http://genjo9.lit.let.hokudai.ac.jp/keita/read.cgi?S-Lang&l=jp
2005/06/05(日) 03:08:40
あれ? ここってforthスレだよねぇ〜・・・(謎
2005/06/05(日) 03:24:28
fifth
2005/06/05(日) 23:58:45
ミットコンッドッリアアアッァァアァァァァァァァァァァァアアアアアァァァァア。
age
248デフォルトの名無しさん
垢版 |
2005/06/05(日) 23:59:43
うぉぉおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおぉぉぉぉぉぉりゃぁぁぁぁぁぁぁぁぁぁぁぁあぁぁぁっぁぁぁっぁぁぁぁぁっぁぁぁぁ
age
2005/06/06(月) 04:47:43
ttp://www.retroforth.org/
2005/06/15(水) 07:23:13
ttp://stackempty.info
2005/06/21(火) 21:25:18
↑ブラクラ

と書かれると嫌だろ?
ちゃんと何のリンクかぐらい書けや
2005/06/22(水) 14:44:53
サーバーが見つかりません
2005/06/22(水) 21:45:27
と書かれると嫌だろ?
ちゃんと何のリンクかぐらい書けや
2005/07/09(土) 15:05:46
数年前の記事ですが...

I Hate Forth
ttp://embedded.com/story/OEG20010731S0028
I Love Forth
ttp://embedded.com/showArticle.jhtml?articleID=9900308
2005/09/02(金) 18:54:36
ムーアさん、亡くなった?
2005/09/11(日) 20:49:19
そんな話聞いた事無いけどな。
Dr. Moogなら亡くなったが。
257デフォルトの名無しさん
垢版 |
2005/11/09(水) 00:49:06
hoth
2005/11/12(土) 02:24:58
こんだけ過疎な理由はなんだ?
Forthの悪いところでも晒していこうぜ。
ちなみにおれはアセンブラより難解だと思ってる一人だぜ。
259デフォルトの名無しさん
垢版 |
2005/11/12(土) 06:28:32
俺はPythonやJavaより読みやすいと思ってる一人だぜ.
260デフォルトの名無しさん
垢版 |
2005/12/07(水) 02:41:39
何か話題ないのか
2005/12/07(水) 10:20:28
FORTH にある ROT って
つまり age のことだよね?

最近やっと気付いたよ w
2005/12/07(水) 22:57:42
: age ROT ;
2005/12/07(水) 23:57:33
sage は SWAP でいいのかな?

: sage SWAP ;
2005/12/08(木) 02:35:14
やっぱり
: foo bar ;
より
/foo { bar } def
の方がわかりやすいなあ
: を imdsw_on ; を imdsw_offとかにすれば
ちょっとはわかるような
わからんか
2005/12/10(土) 01:54:03
FORTHは全部が後置記法に統一されてないのがちぐはぐで嫌
266デフォルトの名無しさん
垢版 |
2005/12/16(金) 14:42:09
age
2005/12/16(金) 19:51:11
>>265
FORTHの中の人の事情がいろいろ表に出てきてるから。
事情がわかると「なるほど」と思う。
2005/12/16(金) 20:26:43
>>265
硬いこというなよ。普通の言語だって演算子の優先順位とかあるじゃんか。
ソースも1文字ずつ後ろから読んでたら面白かったのに>forth
2005/12/16(金) 22:34:35
前から後ろから
2005/12/17(土) 08:06:49
でも入口と出口は一緒
pushしてpop
「おめでとうございます。元気な男の子ですよ」
271デフォルトの名無しさん
垢版 |
2005/12/17(土) 10:33:36
interlog
2005/12/17(土) 12:43:43
そこで、swapしちゃいます
2005/12/17(土) 13:46:53
HTROFに改名しますた
274デフォルトの名無しさん
垢版 |
2006/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
となるようにです。
よろしくおながいします。
2006/02/12(日) 23:31:47
ゅしほ
276デフォルトの名無しさん
垢版 |
2006/03/05(日) 10:04:15
>>27のリンク先で
「WORDというワードは呪われた代物で、無いほうがよい」っていうのはどういう意味かね。
ほとんど表記法を変更する目的でしか使われないからかな。
2006/03/05(日) 16:17:17
訳注に書いてあるとおり。
プログラムの可読性を損ねるからだと思われ。
2006/03/18(土) 22:15:13
TextSS のWindowsXP(Professional)64bit対応化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
2006/03/30(木) 18:03:27
手軽に手に入る唯一のFORTHチップ?

http://www.offete.com/ep32book.html
2006/03/30(木) 18:17:19
オライリーの表紙に龍はないだろ
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 立ち上げたいなぁ。
283274
垢版 |
2006/05/18(木) 12:01:42
>>281
激しくありがとうございます
2006/05/18(木) 16:13:05
>>282 期待age
285デフォルトの名無しさん
垢版 |
2006/05/18(木) 16:13:50
sageいれちまった... orz
2006/05/18(木) 16:19:51
というか日本支部生きてたのか(w
287デフォルトの名無しさん
垢版 |
2006/06/01(木) 02:25:15
>>286

生きてません。本家FIGでもリンクがなくなっています。
とはいえ、三世代FIG-JAPAN設立構想も検討中。
2006/08/09(水) 18:37:34
LL Ringに参戦するようだが、勝算はどれくらいだろう?
289
垢版 |
2006/08/23(水) 21:25:38
Windows上で動くFORTHってない?
DOS窓で動くやつじゃなくて、APIとか叩けるやつ。
2006/08/30(水) 06:22:31
つ win32forth
2006/08/30(水) 08:50:36
LLRing乙でした。
2006/09/03(日) 23:05:33
FORTHマンセー
2006/10/21(土) 16:45:01
最近話題無いの?
2006/10/21(土) 22:50:10
back and forthです。
2006/10/21(土) 22:51:33
joyとかの話する?
2006/10/23(月) 13:32:14
今更forth使ってる人は自分で問題解決できる人ばっかだからなあ
2006/10/25(水) 07:31:20
>>296
解決できない俺はどうすれば・・・
2006/10/26(木) 00:39:00
質問すればいいんじゃねえの?!

しかしこのスレ
2年以上経つのにまだ300行ってないのか
2006/11/10(金) 22:20:47
なんかニュースないの?
2006/11/10(金) 22:26:12
>>298
>2年以上経つのにまだ300行ってないのか

FORTHプログラム張りなんだぜ?
2006/11/28(火) 05:56:22
test

>>261-265
>>266,267
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
http://factorcode.org/
304デフォルトの名無しさん
垢版 |
2006/12/10(日) 21:07:56
虎擬の新年号付属基板に移植するプロジェクト
2006/12/26(火) 05:05:37
>>301
おばかな流れにワロス
レスを投稿する

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

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