探検
2 part forth
1デフォルトの名無しさん
NGNG 第四世代
304デフォルトの名無しさん
2006/12/10(日) 21:07:56 虎擬の新年号付属基板に移植するプロジェクト
305デフォルトの名無しさん
2006/12/26(火) 05:05:37306デフォルトの名無しさん
2007/01/28(日) 04:43:44 a
307デフォルトの名無しさん
2007/02/27(火) 19:51:33 b
308デフォルトの名無しさん
2007/02/27(火) 20:28:16 FORTH のすごいところは 対話型の言語でありながらコンパイラだってとこじゃないのかなぁ…
309デフォルトの名無しさん
2007/02/27(火) 20:57:50 forthの凄いところは2スタックマシンと辞書による入れ子構造だと思う。
310デフォルトの名無しさん
2007/03/02(金) 12:31:00 (・∀・ )っ/凵 ⌒☆ VisualForthマダー?
311デフォルトの名無しさん
2007/03/02(金) 12:34:49312デフォルトの名無しさん
2007/03/30(金) 06:30:41 最近のCPUって、プログラムの自己書き換えができないとか聞いたけど、
そうだとするとFORTH実装するのつらいよね。
そうだとするとFORTH実装するのつらいよね。
313デフォルトの名無しさん
2007/03/30(金) 07:48:32 たしかに今も昔もCPUの回路は自分で変更できないな。
314デフォルトの名無しさん
2007/03/30(金) 23:27:06 メモリ書き換えればいいじゃん >312
315デフォルトの名無しさん
2007/03/31(土) 16:33:43 >>314
最近のCPUってもコードキャッシュに先読みしたりしているから、
下手にメモリを書き換えると、先読みしたコードと、実際のメモリのコードが一致しなくなる。
ので、正常に動作しなくなったり、パイプラインにペナルティが発生して、動作がおそくなったりするらしい。
FORTHって、新しくワードを追加すると、自分自身が大きくなっていくような言語だから、
そこらへんどうすればいいのかわからない。
だれか教えてくれんかな。
最近のCPUってもコードキャッシュに先読みしたりしているから、
下手にメモリを書き換えると、先読みしたコードと、実際のメモリのコードが一致しなくなる。
ので、正常に動作しなくなったり、パイプラインにペナルティが発生して、動作がおそくなったりするらしい。
FORTHって、新しくワードを追加すると、自分自身が大きくなっていくような言語だから、
そこらへんどうすればいいのかわからない。
だれか教えてくれんかな。
316デフォルトの名無しさん
2007/04/01(日) 05:04:00 FORTH以前にコンピュータの基礎知識が混乱してるな。
317デフォルトの名無しさん
2007/04/01(日) 12:54:31 >>316
FORTHの事、知らないだろ。
FORTHの事、知らないだろ。
318デフォルトの名無しさん
2007/04/01(日) 13:11:17319デフォルトの名無しさん
2007/04/01(日) 16:33:44 最近だとこの関係でJITコンパイラとXDビットでも問題になってましたな。
JIT関係にノウハウありそうだけど、良く判らん
JIT関係にノウハウありそうだけど、良く判らん
320デフォルトの名無しさん
2007/04/02(月) 05:03:35 べつに何の困難もないと思うけどな。
パラメータスタックなんて自由度の低いポインタみたいなもんじゃん。
パラメータスタックなんて自由度の低いポインタみたいなもんじゃん。
321デフォルトの名無しさん
2007/04/11(水) 23:18:58 なんかよくわからんけど、問題になりそうなのは、既存ワードの書き換え時だと思うので、
ワード書き換え→キャッシュをフラッシュ
でいいと思う。
ワード書き換え→キャッシュをフラッシュ
でいいと思う。
322デフォルトの名無しさん
2007/04/23(月) 23:27:41 いかにForthでも、線路を作りながら電車を走らせるようなことはありません。
ワードをコンパイルした後、そのワードを実行するまでには
少なくとも実行ワード名を読み込むI/Oプロセスが介在するので、
人間にとっては一瞬でも、機械には一服する余裕があります。
あと、Forthのワードのオーバーライドは、
関数型言語によくあるようにプログラムの全体についてそのワードの定義を更新するのではなく、
再定義後に読み込まれる部分についてしか効果がありません。
後から遡って定義を変更できるようにするには、
初めから特別な方法で定義しておくようになっています。
こんな感じでどうでしょう。
ワードをコンパイルした後、そのワードを実行するまでには
少なくとも実行ワード名を読み込むI/Oプロセスが介在するので、
人間にとっては一瞬でも、機械には一服する余裕があります。
あと、Forthのワードのオーバーライドは、
関数型言語によくあるようにプログラムの全体についてそのワードの定義を更新するのではなく、
再定義後に読み込まれる部分についてしか効果がありません。
後から遡って定義を変更できるようにするには、
初めから特別な方法で定義しておくようになっています。
こんな感じでどうでしょう。
323デフォルトの名無しさん
2007/04/24(火) 06:20:31 forthの人気のなさは異常
324デフォルトの名無しさん
2007/04/24(火) 23:36:56 異常だな。〜 if 〜 then 〜 else のせいだったりするんかね?
……forthに何があったらもっと流行るかな?
……forthに何があったらもっと流行るかな?
325sage
2007/04/24(火) 23:53:34 て、むしろ正常ってこと?
326デフォルトの名無しさん
2007/04/28(土) 23:24:51 Forthを使いたいと思う人より、Forthの処理系を造りたいと思う人の方が多そうな予感
327デフォルトの名無しさん
2007/04/30(月) 07:13:54 自分もForthを作っているクチ
毎日、Forthでプログラム作ってるぜ!って奴はいますか?
毎日、Forthでプログラム作ってるぜ!って奴はいますか?
328デフォルトの名無しさん
2007/04/30(月) 08:55:54 ど素人の趣味なので毎日はしませんが、Forth系じゃないコードはほとんど書きません。
むしろForthでForthを作れば良いのではないかと思います。
むしろForthでForthを作れば良いのではないかと思います。
329デフォルトの名無しさん
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ぐらいで
実装できそうな気がする
Schemeみたいに最低限のプリミティブを用意して、それからForthを組むようにしたら面白いかもね。
Lispだとこんな感じか。
ttp://ja.wikipedia.org/wiki/LISP#.E6.9C.80.E5.B0.8F.E3.81.AELISP
Forthの場合、スタック関連の操作、代入、分岐、Immediate、postponeぐらいで
実装できそうな気がする
330328
2007/04/30(月) 21:27:11 >>329
古典的なForthみたいにですね。
昔はアセンブリで書いた核の部分は、今はCでいいですからね。
ただ、何を核にすれば必要十分なのかについて、あまり資料がないですね。
四則演算と論理演算(ビット操作)もあった方がいい気もしますが、どうなんでしょう
(Lispは四則演算はいらない?)。
gforthはそういうやり方らしいですけど、
実行速度のためCで書き込むプリミティブを多めに取ったと書いています。
はじめ漠然と考えていたのは、間接スレッディングのforth環境の上でネイティブ方式のforthを頭から書いてしまう
というようなことでした。Executableフォーマットのファイルを作るのが結構面倒ですけど。
そこまでしなくても、Cのダイナミックライブラリとのインターフェイスがforth上で書ければ、
ほとんど何でもforthでできるんですけどね。
逆に言えば、マシンやOSの低レベルの仕様を調べないと派手なことをするのは難しいので、
そこが難点かも知れません。
もともとforthは言語仕様自体は貧弱なので、
アプリケーション毎に自前の言語を組上げていくみたいな面白さもあります。
インプットストリームも弄れるので、シンタックスまで変更できますし。
それがあまり面白がられていないということですかね。
古典的なForthみたいにですね。
昔はアセンブリで書いた核の部分は、今はCでいいですからね。
ただ、何を核にすれば必要十分なのかについて、あまり資料がないですね。
四則演算と論理演算(ビット操作)もあった方がいい気もしますが、どうなんでしょう
(Lispは四則演算はいらない?)。
gforthはそういうやり方らしいですけど、
実行速度のためCで書き込むプリミティブを多めに取ったと書いています。
はじめ漠然と考えていたのは、間接スレッディングのforth環境の上でネイティブ方式のforthを頭から書いてしまう
というようなことでした。Executableフォーマットのファイルを作るのが結構面倒ですけど。
そこまでしなくても、Cのダイナミックライブラリとのインターフェイスがforth上で書ければ、
ほとんど何でもforthでできるんですけどね。
逆に言えば、マシンやOSの低レベルの仕様を調べないと派手なことをするのは難しいので、
そこが難点かも知れません。
もともとforthは言語仕様自体は貧弱なので、
アプリケーション毎に自前の言語を組上げていくみたいな面白さもあります。
インプットストリームも弄れるので、シンタックスまで変更できますし。
それがあまり面白がられていないということですかね。
331デフォルトの名無しさん
2007/05/03(木) 09:02:05 昔、近所の古本屋で標準FORTHを100円で保護したのだが、捨ててしまった。漏れの馬鹿。
ところで、Beginning Forthを注文した。米国からなので2週間くらいかかりそう。
ところで、Beginning Forthを注文した。米国からなので2週間くらいかかりそう。
332デフォルトの名無しさん
2007/05/06(日) 22:37:02 Forthはともかく資料不足。よって今更ながら英語の入門書をもう一個:
ttp://www.mpeforth.com/books.htm
『Programming Forth』 - Stephen Pelc et al.
ttp://www.mpeforth.com/books.htm
『Programming Forth』 - Stephen Pelc et al.
333デフォルトの名無しさん
2007/05/16(水) 04:42:21 汎用で考えるとやっぱり今どきスタックは32ビット長ですよねえ。
そこで移植にお勧めの埋め込み用32ビットプロセッサって何がありますか?
I/Oがたっぷり用意されているので遊べるかなって思いますがどうでしょう。
そこで移植にお勧めの埋め込み用32ビットプロセッサって何がありますか?
I/Oがたっぷり用意されているので遊べるかなって思いますがどうでしょう。
334デフォルトの名無しさん
2007/05/24(木) 20:39:30 パフォーマンス優先ならSHじゃね?
最近秋葉でも手に入りやすくなったし。
FORTHコンパイラをアセンブラでガリガリに書きたい人なら
アセンブラが書きやすいH8かな。
最近秋葉でも手に入りやすくなったし。
FORTHコンパイラをアセンブラでガリガリに書きたい人なら
アセンブラが書きやすいH8かな。
335デフォルトの名無しさん
2007/06/05(火) 19:20:03 φ(。。) めもめも
336デフォルトの名無しさん
2007/06/05(火) 20:54:14 HDLだけでFORTHは作れる?
337デフォルトの名無しさん
2007/06/11(月) 13:07:14 >>336
作れるみたいですね やってみたことないけどw
ttp://www.ultratechnology.com/chips.htm
この中のMicroCoreって初めて知りました
ttp://www.microcore.org/
作れるみたいですね やってみたことないけどw
ttp://www.ultratechnology.com/chips.htm
この中のMicroCoreって初めて知りました
ttp://www.microcore.org/
338デフォルトの名無しさん
2007/07/26(木) 16:12:13 joyの話しようぜ
339デフォルトの名無しさん
2007/09/15(土) 23:22:38 後で読む: i386 / Linux 向け Forth コンパイラの作り方。
ttp://www.annexia.org/_file/jonesforth.s.txt
ttp://www.annexia.org/_file/jonesforth.s.txt
340デフォルトの名無しさん
2007/09/26(水) 15:51:44 CでForthの処理系を書いてみた。
GCにはBoehm GC、辞書にはJudy Arrayを使ったので
ほとんど手間がかかっていないわりに速かった。
まだ単純な処理しか出来ないけどrubyとかより速いかも。
GCにはBoehm GC、辞書にはJudy Arrayを使ったので
ほとんど手間がかかっていないわりに速かった。
まだ単純な処理しか出来ないけどrubyとかより速いかも。
341デフォルトの名無しさん
2007/09/29(土) 00:15:24 ささやかな期待
342デフォルトの名無しさん
2007/09/29(土) 19:36:42 rubyより遅いforhtなんてあるのか?
343デフォルトの名無しさん
2007/09/29(土) 19:51:26 >>342
rubyで書けばいいんじゃね?
rubyで書けばいいんじゃね?
344デフォルトの名無しさん
2007/09/30(日) 17:21:13 >>343
激しく楽しくない気が
激しく楽しくない気が
345デフォルトの名無しさん
2007/09/30(日) 19:36:18 >>340
GC?
GC?
346デフォルトの名無しさん
2007/10/02(火) 20:36:49 >>345
Garbage Collector でそ。
Garbage Collector でそ。
347デフォルトの名無しさん
2007/10/02(火) 22:29:09 (forthに)GC?
てことじゃないか?
てことじゃないか?
349デフォルトの名無しさん
2007/10/04(木) 15:23:24 concatenative
350デフォルトの名無しさん
2007/10/07(日) 11:41:29 " hoge" は汚なく感じるな
"hoge" か " hoge " だろと
"hoge" か " hoge " だろと
351デフォルトの名無しさん
2007/10/16(火) 01:35:58 http://www.forthfreak.net/index.cgi?ForthBestPractices
Programming guidelines when you start doing forth programming:
* try to keep your words to one line, two lines max
* try not to pass more than 3 items on the stack to a word, preferably only 2
* try not to juggle more than 3 items on the stack within a word if you can
Programming guidelines when you start doing forth programming:
* try to keep your words to one line, two lines max
* try not to pass more than 3 items on the stack to a word, preferably only 2
* try not to juggle more than 3 items on the stack within a word if you can
352デフォルトの名無しさん
2007/10/24(水) 17:49:19 FreeBSD 6.2 では boot loder の動作を
コントロールするために ficl という forth が使われていて
るので、勉強中です。
FreeBSD のサーバーをリモートから管理しています。
以前のバージョンでは nextboot(8) で別ディスク上のカーネルを
次回のみテスト的に起動する設定ができたのですが、今のバージョン 6.2 では
nextboot(8) では同一ディスク内のカーネルのテスト的起動しかできません。
二台のディスクがついているマシンのそれぞれのディスクに別々にOSを
インストールして、交互にアップデートをかけたいのです。
リモートからのコントロールしかできないので、ssh のアクセスができなく
なると一万円払ってOS再インストールなので
そんなわけで、forth のcodeを見ているのですが、難しいです。 orz
FreeBSDのloader 改造したりしている人はいませんか?
コントロールするために ficl という forth が使われていて
るので、勉強中です。
FreeBSD のサーバーをリモートから管理しています。
以前のバージョンでは nextboot(8) で別ディスク上のカーネルを
次回のみテスト的に起動する設定ができたのですが、今のバージョン 6.2 では
nextboot(8) では同一ディスク内のカーネルのテスト的起動しかできません。
二台のディスクがついているマシンのそれぞれのディスクに別々にOSを
インストールして、交互にアップデートをかけたいのです。
リモートからのコントロールしかできないので、ssh のアクセスができなく
なると一万円払ってOS再インストールなので
そんなわけで、forth のcodeを見ているのですが、難しいです。 orz
FreeBSDのloader 改造したりしている人はいませんか?
353デフォルトの名無しさん
2007/11/03(土) 19:38:03 いまふ
354デフォルトの名無しさん
2007/12/22(土) 11:53:19 dsForthがアドエスで動くのはガイシュツ?
355デフォルトの名無しさん
2008/01/04(金) 04:23:01 notガイシュツ
356デフォルトの名無しさん
2008/01/27(日) 13:50:29 このスレの人たちが使う電卓はRPLだったりするの?
357デフォルトの名無しさん
2008/01/27(日) 15:03:59 HPの電卓?
359デフォルトの名無しさん
2008/01/27(日) 18:59:27 HP41CV,HP28,HP48SX,HP32S,と使ってきましたよ。
ちなみに今使っているHP35は問題大あり!
ちなみに今使っているHP35は問題大あり!
360デフォルトの名無しさん
2008/02/07(木) 10:12:19 Adobe高速JavaScript実装、バイトコードにForthを採用
http://journal.mycom.co.jp/news/2008/02/07/011/index.html
http://journal.mycom.co.jp/news/2008/02/07/011/index.html
361デフォルトの名無しさん
2008/02/07(木) 15:34:36 LLVM涙目
362デフォルトの名無しさん
2008/02/07(木) 21:52:21 単なるスタックベースのVMなだけじゃないの?
JavaVMとか既存のVMと一緒でしょ
JavaVMとか既存のVMと一緒でしょ
363デフォルトの名無しさん
2008/02/16(土) 22:40:23 急に某ゲーム機上で動くforthが作りたくなって>>339が挙げてるやつ読んでるんだが(まあこれはi386用だけど)、わかりやすいなこれ
実を言うと今までforthはあまり理解してなかったけど、モヤモヤしてたことがすっきりしてきた
しかしforthってシンプルで美しいなぁ
Lispやsmalltalkに負けないと思うのに、このマイナーさ…
実を言うと今までforthはあまり理解してなかったけど、モヤモヤしてたことがすっきりしてきた
しかしforthってシンプルで美しいなぁ
Lispやsmalltalkに負けないと思うのに、このマイナーさ…
364デフォルトの名無しさん
2008/02/17(日) 00:09:41 concatenative languageあたりをキーワードにWebをさまよってみると良いよ。
joy factorあたりが面白いかね。おいらも俺言語作成中。
joy factorあたりが面白いかね。おいらも俺言語作成中。
365デフォルトの名無しさん
2008/02/17(日) 00:24:42 factor は良いねぇ。秘かに期待している。
366デフォルトの名無しさん
2008/02/18(月) 11:50:59基本的に
1.stackの一番上と二番目の値に対して演算
2.stackの一番上だけ取り除く
3.stackのn番目と一番目を交換
の機能だけがあると思ってていい?
367デフォルトの名無しさん
2008/02/19(火) 07:10:53 concatenativeに?
それならスタックに対する関数適用だけかな
それならスタックに対する関数適用だけかな
368デフォルトの名無しさん
2008/03/20(木) 14:28:46 forthのコメントってもしやforthで書かれてる?
( コメント ) ←これ
( コメント ) ←これ
369デフォルトの名無しさん
2008/03/20(木) 15:22:35370デフォルトの名無しさん
2008/03/20(木) 15:50:12 >>369
いやなんかマクロみたいな機能を使って書かれているのかなーと
forth知らないので全然分かんないんですけど
要するに↓みたいにforth言語で書かれているのか?ってことです
: ( hoge hoge ... ;
いやなんかマクロみたいな機能を使って書かれているのかなーと
forth知らないので全然分かんないんですけど
要するに↓みたいにforth言語で書かれているのか?ってことです
: ( hoge hoge ... ;
371デフォルトの名無しさん
2008/03/20(木) 20:15:20 『標準FORTH』だと pp.166 にある。
: ( 29 WORD DROP ; IMMEDIATE
29 は ')' のコード
WORD はスタックトップと同じキャラが出てくるまで入力を読んで、
その先頭のアドレスをスタックトップに置くワード。DROP は説明の
必要ないな。IMMEDIATE は直前に定義されたワードを、
イミディエイトワードにするワード。
C マガジンのきだあきらさんの連載『千言万語』の Forth の時に
紹介してたネタだったような気もする。
: ( 29 WORD DROP ; IMMEDIATE
29 は ')' のコード
WORD はスタックトップと同じキャラが出てくるまで入力を読んで、
その先頭のアドレスをスタックトップに置くワード。DROP は説明の
必要ないな。IMMEDIATE は直前に定義されたワードを、
イミディエイトワードにするワード。
C マガジンのきだあきらさんの連載『千言万語』の Forth の時に
紹介してたネタだったような気もする。
372デフォルトの名無しさん
2008/03/20(木) 20:16:04 千言万語単行本にならねーかな
373デフォルトの名無しさん
2008/03/20(木) 21:37:32 追加。
イミディエイトワード、というのが、プログラムの実行時ではなく
読み込み時に意味を持つワードなので、マクロのような機能と
言えるかもしれません。
イミディエイトワード、というのが、プログラムの実行時ではなく
読み込み時に意味を持つワードなので、マクロのような機能と
言えるかもしれません。
374デフォルトの名無しさん
2008/03/21(金) 07:42:46 >>371-373
サンクス
http://www.geocities.jp/naosacra/mops/particle2/immediate.html
これ見てるけどimmediateの意味がいまいちわからん…
何のためのものなんだ?
: ( 29 WORD DROP ; IMMEDIATE
例えば↑にimmediateがついてなかったらどういう動作になるんだろう
サンクス
http://www.geocities.jp/naosacra/mops/particle2/immediate.html
これ見てるけどimmediateの意味がいまいちわからん…
何のためのものなんだ?
: ( 29 WORD DROP ; IMMEDIATE
例えば↑にimmediateがついてなかったらどういう動作になるんだろう
375デフォルトの名無しさん
2008/03/21(金) 08:55:03 仮に ( がイミディエイトワードで無かったとすると、
: hoge ほげほげ ( ほげほげ ) ;
とか書いた場合に、hoge の定義の一部として、実行される部分になって
しまいます。定義中でも直ちに実行されるワードがイミディエイトワードです。
: hoge ほげほげ ( ほげほげ ) ;
とか書いた場合に、hoge の定義の一部として、実行される部分になって
しまいます。定義中でも直ちに実行されるワードがイミディエイトワードです。
376デフォルトの名無しさん
2008/03/22(土) 10:18:31377デフォルトの名無しさん
2008/03/27(木) 22:38:05 最近、Concatenativeな言語というもの目にしたんでage
378デフォルトの名無しさん
2008/03/28(金) 00:23:41 なんか酷いのみつけてきたwwwww
ちょっと草植えときますね型言語 Grass
http://www.blue.sky.or.jp/grass/doc_ja.html
スタックマシン使ってるってだけみたいだが(俺には良く分からん)
ちょっと草植えときますね型言語 Grass
http://www.blue.sky.or.jp/grass/doc_ja.html
スタックマシン使ってるってだけみたいだが(俺には良く分からん)
379デフォルトの名無しさん
2008/03/31(月) 10:36:35 forth厨はなんでもかんでもスタックマシンにするな
380デフォルトの名無しさん
2008/04/03(木) 02:09:52 factorでHelloWorldのCGIやってみた
httpdからのfactor起動はバッチファイルで
USING: io ;
"Content-type: text/html; charset=Shift_JIS\n\n" print
"<HTML><head><title></title></head>\n<body>" print
"はろ〜factor表\示可能\" print
"<br>\n</body></HTML>" print
なんか楽しいw
httpdからのfactor起動はバッチファイルで
USING: io ;
"Content-type: text/html; charset=Shift_JIS\n\n" print
"<HTML><head><title></title></head>\n<body>" print
"はろ〜factor表\示可能\" print
"<br>\n</body></HTML>" print
なんか楽しいw
381デフォルトの名無しさん
2008/04/10(木) 03:00:58 あれ?factorの新しいの入れたら日本語出なくなった
エンコード関係?
エンコード関係?
382デフォルトの名無しさん
2008/05/14(水) 14:10:30 factorソースから入れるのめんどくさいな・・・
gitなんて初めて知ったよ
gitなんて初めて知ったよ
383デフォルトの名無しさん
2008/06/03(火) 17:56:33 何か面白い話無い?
384デフォルトの名無しさん
2008/06/05(木) 11:05:57 スタック1本で動作する処理系作れ
385デフォルトの名無しさん
2008/06/05(木) 16:18:58 バロースのメインフレームはシングルスタックなんだぜ?
386デフォルトの名無しさん
2008/06/05(木) 18:37:49 wikipediaより
> スタックを1つしか持たないスタックマシンは、
> 計算モデルとしては非常に弱い。例えば、1-スタックマシンでは、
> 0n1n(0の並びの後に同じ個数の1が並ぶ言語)のような単純な言語も認識できない。
> 1-スタックマシンの計算能力は、有限オートマトンよりも高いが、
> 決定性プッシュダウン・オートマトンよりも低い。
> 一方、複数のスタックを持つスタックマシンはチューリング機械と等価である。
> 例えば、2-スタックマシンでは、チューリング機械をエミュレートできる
> (チューリング機械のヘッド位置から左側のテープをひとつのスタックが代替し、
> 右側のテープをもうひとつのスタックが代替する)。
へぇ〜
> スタックを1つしか持たないスタックマシンは、
> 計算モデルとしては非常に弱い。例えば、1-スタックマシンでは、
> 0n1n(0の並びの後に同じ個数の1が並ぶ言語)のような単純な言語も認識できない。
> 1-スタックマシンの計算能力は、有限オートマトンよりも高いが、
> 決定性プッシュダウン・オートマトンよりも低い。
> 一方、複数のスタックを持つスタックマシンはチューリング機械と等価である。
> 例えば、2-スタックマシンでは、チューリング機械をエミュレートできる
> (チューリング機械のヘッド位置から左側のテープをひとつのスタックが代替し、
> 右側のテープをもうひとつのスタックが代替する)。
へぇ〜
387デフォルトの名無しさん
2008/07/17(木) 00:50:58 factorのドキュメント消えてら
388デフォルトの名無しさん
2008/08/01(金) 21:55:57 V
http://en.wikipedia.org/wiki/V_(programming_language)
Onyx
http://www.canonware.com/onyx/
Forthもこれらも俺には使いこなせないんだけどね orz
http://en.wikipedia.org/wiki/V_(programming_language)
Onyx
http://www.canonware.com/onyx/
Forthもこれらも俺には使いこなせないんだけどね orz
389388
2008/08/01(金) 21:57:15390デフォルトの名無しさん
2008/08/02(土) 03:04:06 Forthの実装中sage
実装法のドキュメント付きで晒すかも
実装法のドキュメント付きで晒すかも
391デフォルトの名無しさん
2008/08/02(土) 04:01:08392デフォルトの名無しさん
2008/08/02(土) 06:07:26 久々にレスキタワァ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・* !!!!!
393デフォルトの名無しさん
2008/08/02(土) 08:44:15 >>390
http://www.google.co.jp/search?hl=ja&q=codepad&btnG=%E6%A4%9C%E7%B4%A2&lr=
どんな言語使って作るかしらん
こんなの補助として使ってみるのも便利かもしらん
http://www.google.co.jp/search?hl=ja&q=codepad&btnG=%E6%A4%9C%E7%B4%A2&lr=
どんな言語使って作るかしらん
こんなの補助として使ってみるのも便利かもしらん
394390
2008/08/02(土) 14:40:33 過疎っぷりに見てる人もいないと思ったら、意外といたのね。
>>391
Forthの実装は初めてなので、古典的で教科書通りのIndirect Threaded Code、
Cで書いた仮想マシンの上で動かすってかんじで。
今はMac OS XとLinux(x86)とLinux Zaurus(arm)の上でぽちぽち書いてる。
ポータビリティーは良いのでメモリがあって速度も気にしなければ
簡単にマイコンにも移植可能だと思う。H8なら余裕かな。
今月のトラ技の78K0基板持ってるんだけど、こっちはきついかも。
>>392
あばばばばばば
>>393
おお、こんな面白いのがあったのね。
とりあえずアカウント取ってみた。
このスレに落書きしつつ、blogにまとめてけばいいかな。
ANS-ForthのCORE準拠を目指して
http://www.taygeta.com/forth/dpans.html
読んでるんだけど、けっこうめんどいなあ。
ある程度実装の目処がたったらコード晒してくつもり。
少々お待ちを。
>>391
Forthの実装は初めてなので、古典的で教科書通りのIndirect Threaded Code、
Cで書いた仮想マシンの上で動かすってかんじで。
今はMac OS XとLinux(x86)とLinux Zaurus(arm)の上でぽちぽち書いてる。
ポータビリティーは良いのでメモリがあって速度も気にしなければ
簡単にマイコンにも移植可能だと思う。H8なら余裕かな。
今月のトラ技の78K0基板持ってるんだけど、こっちはきついかも。
>>392
あばばばばばば
>>393
おお、こんな面白いのがあったのね。
とりあえずアカウント取ってみた。
このスレに落書きしつつ、blogにまとめてけばいいかな。
ANS-ForthのCORE準拠を目指して
http://www.taygeta.com/forth/dpans.html
読んでるんだけど、けっこうめんどいなあ。
ある程度実装の目処がたったらコード晒してくつもり。
少々お待ちを。
395デフォルトの名無しさん
2008/08/04(月) 22:59:11 Forth は実装が簡単だって聞いてたんで、
自分も作ってみようとちょっと調べたんだけど、
仕組みがよく分からなかったし(ワードの定義とか)、
規格に沿った物にしようとすると意外に仕様が大きくて、
挫折しますた><
自分も作ってみようとちょっと調べたんだけど、
仕組みがよく分からなかったし(ワードの定義とか)、
規格に沿った物にしようとすると意外に仕様が大きくて、
挫折しますた><
396390
2008/08/05(火) 23:09:27 >>395
辞書まわりは次の10個のワードがあればOK(たぶんね)
CREATE
COMMA(,)
[
]
IMMEDIATE
TICK(')
COLON(:)
SEMICOLON(;)
FIND
WORD
このあたりのワードの挙動は、
http://www.annexia.org/forth
ここのjonesforthを参考にすればいいと思う。
これをインスパイヤしたCと日本語のドキュメントを書いてるんだが・・・仕事が忙しくてね・・・
これをざーっと読んで、yforthあたりの簡単な処理系のコード眺めて
実際に動作を確かめればANS-Forthの準拠もそう難しくないかと。
たださ、ANS-Forthって処理系の内部の規定しすぎじゃね?
もっと好きなようにやらしてくれよ。一回確保したWORDが二度と解放できないとか、
文字列はヌル終端しない代わりに文字数を記憶するとか、ちょっと気持ち悪い気がする。
辞書まわりは次の10個のワードがあればOK(たぶんね)
CREATE
COMMA(,)
[
]
IMMEDIATE
TICK(')
COLON(:)
SEMICOLON(;)
FIND
WORD
このあたりのワードの挙動は、
http://www.annexia.org/forth
ここのjonesforthを参考にすればいいと思う。
これをインスパイヤしたCと日本語のドキュメントを書いてるんだが・・・仕事が忙しくてね・・・
これをざーっと読んで、yforthあたりの簡単な処理系のコード眺めて
実際に動作を確かめればANS-Forthの準拠もそう難しくないかと。
たださ、ANS-Forthって処理系の内部の規定しすぎじゃね?
もっと好きなようにやらしてくれよ。一回確保したWORDが二度と解放できないとか、
文字列はヌル終端しない代わりに文字数を記憶するとか、ちょっと気持ち悪い気がする。
397デフォルトの名無しさん
2008/08/05(火) 23:23:59 >文字列はヌル終端しない代わりに文字数を記憶する
これは正当だと思う。ヌル終端がどれだけのバグを生み出しているか……
これは正当だと思う。ヌル終端がどれだけのバグを生み出しているか……
398デフォルトの名無しさん
2008/08/06(水) 21:05:50 実装としては文字列をヌル終端にしても可。
但し、文字数は必要、かつ、
ヌル終端を当てにしたコードを書いても一般には動く保証なし。
が規定の内容と思われます。他の規定も同様。
但し、文字数は必要、かつ、
ヌル終端を当てにしたコードを書いても一般には動く保証なし。
が規定の内容と思われます。他の規定も同様。
399デフォルトの名無しさん
2008/08/08(金) 19:23:22 ASCIIZはねーよマジで
400デフォルトの名無しさん
2008/08/09(土) 16:38:27 でも、C言語で作られたプログラムとの連携したいときは、NUL文字終端がいいよね。
C言語で作られたプログラムの数の多さ、便利さから言うと、無視できないなと。
C言語で作られたプログラムの数の多さ、便利さから言うと、無視できないなと。
401デフォルトの名無しさん
2008/08/09(土) 18:30:35 Cは捨てるのがよろしいかと。
C++をbetter Cとして使う方がまだましだと思う。
C++を使えないようなリソースのキツい環境で使うんだったらforthを直書きした方が良いんじゃね?
C++をbetter Cとして使う方がまだましだと思う。
C++を使えないようなリソースのキツい環境で使うんだったらforthを直書きした方が良いんじゃね?
402デフォルトの名無しさん
2008/08/10(日) 00:15:50 >C++をbetter Cとして使う
それ最悪
それ最悪
403デフォルトの名無しさん
2008/08/11(月) 00:15:21 402 と同感だが、better Cとして使うのは FORTH 実装にはない(価値が少ない)だろ。
自己学習として作るならまだしも、
FORTHに期待される動作環境だったらアセンブリレベルの設計が必要だろ。
C++使うならC++的設計をしろって。
自己学習として作るならまだしも、
FORTHに期待される動作環境だったらアセンブリレベルの設計が必要だろ。
C++使うならC++的設計をしろって。
レスを投稿する
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★4 [BFU★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 ★2 [蚤の市★]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 東浩紀「日本はいままさに駆け引きをしている。」高市有事にピシャリ [834922174]
- 【高市経済】日経平均マイナス1600円!、金利1.76%!ドル円155円!世界恐慌へ [219241683]
- 高市早苗「欲しがりません、勝つまでは」 [175344491]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- 【悲報】麻生太郎、石破憎しで高市を擁立し晩節を汚す [884040186]
