1 名前:デフォルトの名無しさん [04/01/10 03:45] 第四世代
231 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 13:09:33 ] >>229 は正しい事言ってるんだけど。FORTHとして。 FORTHの言語仕様をろくに確認しないうちに、 思い込みで作り始めてる香具師がいるわけで。
232 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:05:54 ] >>231 =229 はぁ?ナニ言ってんのおまえ
233 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 20:55:41 ] このスレはもうだめぽ。
234 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 01:45:08 ] >>227 C言語レベルでオゲーなら、↓こんな所からコードを読んでみるのは、いかがでせぅか? T4th eshop.advanet.co.jp/formmail/t4th.html GForth www.jwdt.com/~paysan/gforth.html GikoForth gikoforth.s13.xrea.com/gikoforth.html T4thは正確にはモドキらしいけど、日曜プログラミング程度で突付ける程度の気楽さですよ。 > 適当なOS向けの拡張ってどうやってやるんだろう。 ぱっと思いつくのは、Win32 APIのLoadLibraryとGetProcAddressを呼び出す ワード(命令)を用意すれば いいんじゃないかな?と。 >というか、キューとかにしちゃってもいいのか?? STLのstackも確かqueueの特殊系だったので、それで良いと思いますよ。 (上のはCで実装しているけど、まぁ似たような感じだし)
235 名前:227 mailto:sage [2005/05/01(日) 04:00:31 ] 先日brainf*ckを自作してみたら、大体C++のクラスで150行位になった。 僕が保守できる限界がこれ位なだよなー。結構ヘタレ。 >>234 thx! あまり長いソースはよんだことないからなー。 1000行はちょっと長いね。まーいいか。 地道によんでみます。 >ぱっと思いつくのは、Win32 APIのLoadLibraryとGetProcAddressを呼び出す >ワード(命令)を用意すれば いいんじゃないかな?と。 うまいまわし方はわからんけど、簡単そうですね。 >というか、キューとかにしちゃってもいいのか?? どうしてこんなこといっちゃったんだろう。 意図忘れちゃった。(汗
236 名前:227 mailto:sage [2005/05/02(月) 21:43:03 ] www.uploda.org/file/uporg88200.lzh スタック電卓作ってみました。 形にはなってない感じですが・・・。 とりあえず、ソースはまだカオス化してないはずなので興味があるなら読んでみてください。 変数等は使えません。辞書も無理。 拡張は、クラスStackCalcのenumのTokennumを必要数増やして、 メソッド、Doの中にあるstd::stringのtoken[]に命令文を追加して、 switch文に新しい数字を増やして、 新しいメソッドを書くだけ。 こんなに簡単。(笑 扱いはMain.cppを見てください。 エラー処理はほぼしてないです。 あー、これをどれだけ拡張すると、forthになるのやら。 制御構文がネックだなー。Boost::tokenizerはバックして解析できないみたいだし・・・。 あと、ファイルは二日ほどで消える予定です。
237 名前:236 mailto:sage [2005/05/02(月) 21:46:48 ] あ、URLのh抜くの忘れてた。
238 名前:デフォルトの名無しさん mailto:sage [2005/05/08(日) 03:21:28 ] 保守上げ
239 名前:デフォルトの名無しさん [2005/05/08(日) 03:28:55 ] 保守上げ。リバイバル。
240 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 22:55:12 ] Forth さばいばる
241 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 23:05:01 ] いや、ぜんぜん生き残ってないし
242 名前:デフォルトの名無しさん [2005/05/18(水) 19:40:57 ] 三回転半腰捻り腰痛対策age
243 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 04:28:13 ] S-Langはスタックベースの言語なんだね。 でも構文見るとまるでCだ。
244 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 05:14:52 ] SLangの少ない日本語ページ mizotec.s27.xrea.com/slang.html genjo9.lit.let.hokudai.ac.jp/keita/read.cgi?S-Lang&l=jp
245 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 03:08:40 ] あれ? ここってforthスレだよねぇ〜・・・(謎
246 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 03:24:28 ] fifth
247 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 23:58:45 ] ミットコンッドッリアアアッァァアァァァァァァァァァァァアアアアアァァァァア。 age
248 名前:デフォルトの名無しさん [2005/06/05(日) 23:59:43 ] うぉぉおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおぉぉぉぉぉぉりゃぁぁぁぁぁぁぁぁぁぁぁぁあぁぁぁっぁぁぁっぁぁぁぁぁっぁぁぁぁ age
249 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 04:47:43 ] ttp://www.retroforth.org/
250 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 07:23:13 ] ttp://stackempty.info
251 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 21:25:18 ] ↑ブラクラ と書かれると嫌だろ? ちゃんと何のリンクかぐらい書けや
252 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 14:44:53 ] サーバーが見つかりません
253 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 21:45:27 ] と書かれると嫌だろ? ちゃんと何のリンクかぐらい書けや
254 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 15:05:46 ] 数年前の記事ですが... I Hate Forth ttp://embedded.com/story/OEG20010731S0028 I Love Forth ttp://embedded.com/showArticle.jhtml?articleID=9900308
255 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 18:54:36 ] ムーアさん、亡くなった?
256 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 20:49:19 ] そんな話聞いた事無いけどな。 Dr. Moogなら亡くなったが。
257 名前:デフォルトの名無しさん [2005/11/09(水) 00:49:06 ] hoth
258 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 02:24:58 ] こんだけ過疎な理由はなんだ? Forthの悪いところでも晒していこうぜ。 ちなみにおれはアセンブラより難解だと思ってる一人だぜ。
259 名前:デフォルトの名無しさん [2005/11/12(土) 06:28:32 ] 俺はPythonやJavaより読みやすいと思ってる一人だぜ.
260 名前:デフォルトの名無しさん [2005/12/07(水) 02:41:39 ] 何か話題ないのか
261 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 10:20:28 ] FORTH にある ROT って つまり age のことだよね? 最近やっと気付いたよ w
262 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 22:57:42 ] : age ROT ;
263 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 23:57:33 ] sage は SWAP でいいのかな? : sage SWAP ;
264 名前:デフォルトの名無しさん mailto:sage [2005/12/08(木) 02:35:14 ] やっぱり : foo bar ; より /foo { bar } def の方がわかりやすいなあ : を imdsw_on ; を imdsw_offとかにすれば ちょっとはわかるような わからんか
265 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 01:54:03 ] FORTHは全部が後置記法に統一されてないのがちぐはぐで嫌
266 名前:デフォルトの名無しさん [2005/12/16(金) 14:42:09 ] age
267 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 19:51:11 ] >>265 FORTHの中の人の事情がいろいろ表に出てきてるから。 事情がわかると「なるほど」と思う。
268 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 20:26:43 ] >>265 硬いこというなよ。普通の言語だって演算子の優先順位とかあるじゃんか。 ソースも1文字ずつ後ろから読んでたら面白かったのに>forth
269 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 22:34:35 ] 前から後ろから
270 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 08:06:49 ] でも入口と出口は一緒 pushしてpop 「おめでとうございます。元気な男の子ですよ」
271 名前:デフォルトの名無しさん [2005/12/17(土) 10:33:36 ] interlog
272 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 12:43:43 ] そこで、swapしちゃいます
273 名前:デフォルトの名無しさん mailto:sage [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 となるようにです。 よろしくおながいします。
275 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 23:31:47 ] ゅしほ
276 名前:デフォルトの名無しさん [2006/03/05(日) 10:04:15 ] >>27 のリンク先で 「WORDというワードは呪われた代物で、無いほうがよい」っていうのはどういう意味かね。 ほとんど表記法を変更する目的でしか使われないからかな。
277 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 16:17:17 ] 訳注に書いてあるとおり。 プログラムの可読性を損ねるからだと思われ。
278 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 22:15:13 ] TextSS のWindowsXP(Professional)64bit対応化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
279 名前:デフォルトの名無しさん mailto:sage [2006/03/30(木) 18:03:27 ] 手軽に手に入る唯一のFORTHチップ? www.offete.com/ep32book.html
280 名前:デフォルトの名無しさん mailto:sage [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 立ち上げたいなぁ。
283 名前:274 mailto:sage [2006/05/18(木) 12:01:42 ] >>281 激しくありがとうございます
284 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 16:13:05 ] >>282 期待age
285 名前:デフォルトの名無しさん [2006/05/18(木) 16:13:50 ] sageいれちまった... orz
286 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 16:19:51 ] というか日本支部生きてたのか(w
287 名前:デフォルトの名無しさん [2006/06/01(木) 02:25:15 ] >>286 生きてません。本家FIGでもリンクがなくなっています。 とはいえ、三世代FIG-JAPAN設立構想も検討中。
288 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 18:37:34 ] LL Ringに参戦するようだが、勝算はどれくらいだろう?
289 名前: mailto:sage [2006/08/23(水) 21:25:38 ] Windows上で動くFORTHってない? DOS窓で動くやつじゃなくて、APIとか叩けるやつ。
290 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 06:22:31 ] つ win32forth
291 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 08:50:36 ] LLRing乙でした。
292 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 23:05:33 ] FORTHマンセー
293 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 16:45:01 ] 最近話題無いの?
294 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 22:50:10 ] back and forthです。
295 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 22:51:33 ] joyとかの話する?
296 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 13:32:14 ] 今更forth使ってる人は自分で問題解決できる人ばっかだからなあ
297 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 07:31:20 ] >>296 解決できない俺はどうすれば・・・
298 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:39:00 ] 質問すればいいんじゃねえの?! しかしこのスレ 2年以上経つのにまだ300行ってないのか
299 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 22:20:47 ] なんかニュースないの?
300 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 22:26:12 ] >>298 >2年以上経つのにまだ300行ってないのか FORTHプログラム張りなんだぜ?
301 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 05:56:22 ] test >>261-265 >>266 ,267
302 名前:デフォルトの名無しさん mailto:sage [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 factorcode.org/
304 名前:デフォルトの名無しさん [2006/12/10(日) 21:07:56 ] 虎擬の新年号付属基板に移植するプロジェクト
305 名前:デフォルトの名無しさん mailto:sage [2006/12/26(火) 05:05:37 ] >>301 おばかな流れにワロス
306 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:43:44 ] a
307 名前:デフォルトの名無しさん [2007/02/27(火) 19:51:33 ] b
308 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:28:16 ] FORTH のすごいところは 対話型の言語でありながらコンパイラだってとこじゃないのかなぁ…
309 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:57:50 ] forthの凄いところは2スタックマシンと辞書による入れ子構造だと思う。
310 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:31:00 ] (・∀・ )っ/凵 ⌒☆ VisualForthマダー?
311 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:34:49 ] >>310 ムーアたん自ら開発済み。 www.colorforth.com/index.html
312 名前:デフォルトの名無しさん [2007/03/30(金) 06:30:41 ] 最近のCPUって、プログラムの自己書き換えができないとか聞いたけど、 そうだとするとFORTH実装するのつらいよね。
313 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 07:48:32 ] たしかに今も昔もCPUの回路は自分で変更できないな。
314 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 23:27:06 ] メモリ書き換えればいいじゃん >312
315 名前:デフォルトの名無しさん mailto: [2007/03/31(土) 16:33:43 ] >>314 最近のCPUってもコードキャッシュに先読みしたりしているから、 下手にメモリを書き換えると、先読みしたコードと、実際のメモリのコードが一致しなくなる。 ので、正常に動作しなくなったり、パイプラインにペナルティが発生して、動作がおそくなったりするらしい。 FORTHって、新しくワードを追加すると、自分自身が大きくなっていくような言語だから、 そこらへんどうすればいいのかわからない。 だれか教えてくれんかな。
316 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 05:04:00 ] FORTH以前にコンピュータの基礎知識が混乱してるな。
317 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:54:31 ] >>316 FORTHの事、知らないだろ。
318 名前:デフォルトの名無しさん [2007/04/01(日) 13:11:17 ] >>313 VBばっかり使ってないで、ハーバードアーキテクチャとノイマンアーキテクチャの違いに付いて勉強しろよ(w
319 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:33:44 ] 最近だとこの関係でJITコンパイラとXDビットでも問題になってましたな。 JIT関係にノウハウありそうだけど、良く判らん
320 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 05:03:35 ] べつに何の困難もないと思うけどな。 パラメータスタックなんて自由度の低いポインタみたいなもんじゃん。
321 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:18:58 ] なんかよくわからんけど、問題になりそうなのは、既存ワードの書き換え時だと思うので、 ワード書き換え→キャッシュをフラッシュ でいいと思う。
322 名前:デフォルトの名無しさん [2007/04/23(月) 23:27:41 ] いかにForthでも、線路を作りながら電車を走らせるようなことはありません。 ワードをコンパイルした後、そのワードを実行するまでには 少なくとも実行ワード名を読み込むI/Oプロセスが介在するので、 人間にとっては一瞬でも、機械には一服する余裕があります。 あと、Forthのワードのオーバーライドは、 関数型言語によくあるようにプログラムの全体についてそのワードの定義を更新するのではなく、 再定義後に読み込まれる部分についてしか効果がありません。 後から遡って定義を変更できるようにするには、 初めから特別な方法で定義しておくようになっています。 こんな感じでどうでしょう。
323 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 06:20:31 ] forthの人気のなさは異常
324 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 23:36:56 ] 異常だな。〜 if 〜 then 〜 else のせいだったりするんかね? ……forthに何があったらもっと流行るかな?
325 名前:sage [2007/04/24(火) 23:53:34 ] て、むしろ正常ってこと?
326 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:24:51 ] Forthを使いたいと思う人より、Forthの処理系を造りたいと思う人の方が多そうな予感
327 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 07:13:54 ] 自分もForthを作っているクチ 毎日、Forthでプログラム作ってるぜ!って奴はいますか?
328 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 08:55:54 ] ど素人の趣味なので毎日はしませんが、Forth系じゃないコードはほとんど書きません。 むしろForthでForthを作れば良いのではないかと思います。
329 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:17:29 ] >328 Schemeみたいに最低限のプリミティブを用意して、それからForthを組むようにしたら面白いかもね。 Lispだとこんな感じか。 ttp://ja.wikipedia.org/wiki/LISP#.E6.9C.80.E5.B0.8F.E3.81.AELISP Forthの場合、スタック関連の操作、代入、分岐、Immediate、postponeぐらいで 実装できそうな気がする
330 名前:328 mailto:sage [2007/04/30(月) 21:27:11 ] >>329 古典的なForthみたいにですね。 昔はアセンブリで書いた核の部分は、今はCでいいですからね。 ただ、何を核にすれば必要十分なのかについて、あまり資料がないですね。 四則演算と論理演算(ビット操作)もあった方がいい気もしますが、どうなんでしょう (Lispは四則演算はいらない?)。 gforthはそういうやり方らしいですけど、 実行速度のためCで書き込むプリミティブを多めに取ったと書いています。 はじめ漠然と考えていたのは、間接スレッディングのforth環境の上でネイティブ方式のforthを頭から書いてしまう というようなことでした。Executableフォーマットのファイルを作るのが結構面倒ですけど。 そこまでしなくても、Cのダイナミックライブラリとのインターフェイスがforth上で書ければ、 ほとんど何でもforthでできるんですけどね。 逆に言えば、マシンやOSの低レベルの仕様を調べないと派手なことをするのは難しいので、 そこが難点かも知れません。 もともとforthは言語仕様自体は貧弱なので、 アプリケーション毎に自前の言語を組上げていくみたいな面白さもあります。 インプットストリームも弄れるので、シンタックスまで変更できますし。 それがあまり面白がられていないということですかね。
331 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 09:02:05 ] 昔、近所の古本屋で標準FORTHを100円で保護したのだが、捨ててしまった。漏れの馬鹿。 ところで、Beginning Forthを注文した。米国からなので2週間くらいかかりそう。