2 part forth
ムーア先生がさらにあさっての方向に。
http://www.greenarrays.com/
144コアのforthマシンとか誰得 Ubuntu GNU/LINUX10.04を使ってます。
先日、倉庫を整理していたら「パソコン・ユーザのためのFORTH入門」(近代科学社)が
出てきました。懐かしいので、”Ubuntu FORTH”で検索してみてgFORTHの存在を知り
さっそくインストールしてみました。FORTHとの出会いはOh!MZの連載記事「掟やぶりの
magiFORTH」ですが、当時はSーOSを入力していなかったので実際にFORTHに触れる
のは今回が初めてです。
よろしくお願いします。
>>616
「掟破りのmagiFORTH」は山田伸一郎さんの書いた記事でした。
1985年か1986年のOh!MZ 3月号に掲載されています。 >>617
おっとゴメン、もう記憶があやふやだわ
俺はLispの方にハマったな
こうもとやすひこの記事とか楽しく読んでいた 日本語プログラミング言語Mind
http://mimizun.com/2chlog/tech/piza2.2ch.net/tech/kako/976/976753657.html
24 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 06:19
Forthやった後でLISP学ぶとすんげえわかりやすい。
簡易LISPってかんじ。
25 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 11:22
そういえば、 forth lisp + 2 / な言語が昔ASCIIに載ってた。ラプラスとかいう奴。
トンボグラフィックス(タートルグラフィックスの3D版)とか搭載してて面白かった。
26 名前:名前ついてますか? :2000/12/21(木) 22:51
あれは面白かった... lambdaとか使わなくても関数抽象できたし。
#原田さんはその後も変なものを作るので要注目
27 名前:奥さん、名無しです :2000/12/22(金) 04:24
>>26
え、それなにどうやってやるの。 28 名前:名前ついてますか? :2000/12/22(金) 09:10
stackが前提だから (1 +) で (lambda (x) (+ x 1)) 相当。
うーん、closureつければ今でもいけないかしらん..
30 名前:名前ついてますか? :2000/12/25(月) 14:11
そうそう。といいつつ age
29 名前:名無しさん@お腹いっぱい。 :2000/12/22(金) 11:14
xを先にstackに置いといてからそのリスト置いてapplyってこと?
32 名前:29 :2000/12/26(火) 10:35
>>30
そうなのか。それだと関数抽象っていうより
アセンブラのウルテクみたいだな、って思った。
34 名前:名前ついてますか? :2000/12/27(水) 14:10
>>32 関数抽象なんて高尚な概念も stack levelに落として考えれば、
禁断の秘技程度なのです。って落ちじゃだめ?
# ちなみに同じ stack machine でも JavaVMじゃできない
>>26-27
原田 康徳さんの論文s
http://ci.nii.ac.jp/author?q=%E5%8E%9F%E7%94%B0%E5%BA%B7%E5%BE%B3 これか
ttp://ci.nii.ac.jp/naid/120001758800
「機関リポジトリ本文(無料)」ってリンクからたどってくとPDFで本文読めるな >>622
>>619の上のほうで示したリンク先「汎用簡易言語として見たインタプリタ言語Laplas」は
http://ci.nii.ac.jp/naid/110002895171
こっちで見れるね SECD Machineみたいな、LispやMLを実装するすためのスタックマシンに自然なForthって感じか。
ざっとみたけど、lambdaはあっても、Closureはないみたいだな。 いつのまにかWikipediaのMindの記事が大幅に書き換わってるな おムーア様の過去の著作公開
ttp://www.colorforth.com/POL.htm >>620
---------------------------
(((((((( 日本語プログラミング言語Mind ))))))))(キリ!!ッッ!!!!
------------------
((((((((((( え、それなにどうやってやるの。 )))))))))))(キリキリッッ!!!キリッキリッッッッ!!!!キリッッ!!!!ッッ!!!!
------(きリッ!
お前らってどうみてもゴミだよな ttp://builds.factorcode.org/package?os=windows&cpu=x86.32
factorの新しいのきてるぅ factor(等のforth系)は頭がトコロテンになるな。
でもプログラミング自体をパズルとして楽しめるような気がする。 ttp://builds.factorcode.org/package?os=windows&cpu=x86.32
新しいのキター スタックコンピュータって言う書籍買ってみた
古い本だけどFORTHとスタックマシンへの愛がすげー
ttp://builds.factorcode.org/package?os=windows&cpu=x86.64
64bit版キター >>640
ttp://www.ece.cmu.edu/~koopman/stack_computers/ >>639
forth系ってパズル的な楽しさがあるよな ttp://builds.factorcode.org/package?os=windows&cpu=x86.32
また新しいのキター ttp://builds.factorcode.org/package?os=windows&cpu=x86.32
今日の更新 ttp://builds.factorcode.org/package?os=windows&cpu=x86.32
ニューバージョンが来たってことでしょ うーん、それニューバージョンって言うものか?
一見するとリリースノートもないし、開発者向けにビルドし直したもので、
一般のユーザー向けに作られたものじゃないと推察するのだが。
本スレに書いてる人、何が変わったか把握してる? a
a
   a >>117のコントロールフロースタックについてもうちょっと詳しく聞きたい
ジャンプ先って何へのジャンプ先? forthの最大の欠点ってfactorみたいなオブジェクト指向にしたときにスタックに積んだ引数と関数の期待する型が違ったときに困る事だとおもうんだけど
コンパイラのレベルでこれってなんとかならんの? 普通の関数型言語と一緒じゃね?
全てのトークンに引数型と戻り値型を対応付けて、コンパイル時に
型解決すれば良いと思うけど。 Windows上のFactorで日本語表示させる方法がわからん "日本語" H{ { font-name "メイリオ" } } format nl
で表示できた。
あとはlistenerのfont-nameを書き換えられたらいいのかな。 保守!!!
Forth は実用に耐えるのですか?特に可読性的に thx
まさかこんなに早く返事がくるとは思わなかった! 常に人はいるんだわ
単に新しい話題がなんにもないだけで >>678
Forthの力ってすげー。
>>680
なる
おもしろそうだな。
RPNで文法が統一されているところが超COOLだ!
俺が作ってみようじゃないか?!
ちなみに慣例や伝統はしらぬから、
皆が想像しているものと大きく違うと思うがな!! >>683
文字数と文字列本体からなる構造体のアドレス(ポインタ)、とか。 日本語情報なら
http://www-lab.ee.uec.ac.jp/text/forth/
http://www.h7.dion.ne.jp/~samwyn/forth.htm
後者の Gforth マニュアル
http://www.h7.dion.ne.jp/~samwyn/forth/gforth/index.html
は「OS コマンドライン引数用ワード」まで訳してある (残りは未訳)。
また、ANS Forth ではない独自仕様だけども、
http://www.h7.dion.ne.jp/~samwyn/forth/RetroLanguage.html
http://www.h7.dion.ne.jp/~samwyn/forth/Ngaro.html
http://www.h7.dion.ne.jp/~samwyn/forth/retroimage.htm
も Forth 自体の実装を目論むなら参考になるかも (ちなみに現在の RetroForth はこれよりもう少し進化してる)。 >>683
684の追記ですが、素のFORTHだとスタックには数値しか置けないので
文字列のアドレスがスタックに積まれます。
もちろんFactorの様に、なんでもスタックに積めるのもアリです。
私もなんでも積めるように実装して、まぁうまく行ったのですが
>>672の方と同じ問題もあったので、スタックには数値しか置けない
実装も試してみたいと思っています。 >>687
文字列等をワードの定義に置き換えてしまう、と言うことでしょうか?
この場合、最終的にスタックに積まれる物は何になるのでしょうか? >>688の自己レスですが、辞書にと言うことは素FORTHの話だと思うので
文字列を辞書に登録後、そのアドレスがスタックへ積まれることになりますね。 >>690
バイトコードとかスレッデッドコードインタプリタであればFORTHの普通過ぎると思う(誰もが一度はやる)
JIT(AnyCPU向け)実装とか,Factor見たいな構造をスタックに詰めるとかの部分をがんばらないとn番煎じになっちゃうから何か独自のがんばりが必要だと思うよ。
というかFactorが凄いのでアレ超えて欲しいな(アイデアだけでも)
OSSでがんばるならこっそりコントリビュートする人はこのスレにも多そうだからがんばれ! >>690
インタプリタだと、Forthの制御構造とかループが
意外とうまく行かなくて楽しいよ。
>>693
このスレの上の方にもありますが、Let over Lambdaでは
LispでForthを書いて、そのForthでLispを作ってますね。 forthインタプリタありすぎてどれを使えばいいかよく分からないけど
とりあえずgforth使っておけばいいのかな http://www.worldofspectrum.org/infoseek.cgi?regexp=^Forth-83$&pub=^Lennart+C.+Benschop$
Forth-83 の ZX Spectrum (欧州版 MSX1 のような Z80A 8 ビットパソコン) 版。
Forth-83_Extras.zip に Forth アセンブラ記述の実装ソースあり。FIG-Forth ベースらしく、最小限
のプリミティブワード以外は FIG-Forth と同じく Forth 自体で記述されてる。 あの頃のPCに標準装備されてるのがゲイツBASICでなくてForthだったらPC世界は今とは随分違ったものになってただろうな。 >>700
カシオの電卓もきっとRPNに!
BASICってコンピュータが何をしてくれるのかを学ぶのには適してるとおもうけどなあ
FORTHもそうだけどREPL環境のあるコンピュータ言語だとBASIC,FORTH,LISPの御三家があるけど、どれが一番よかったんだろう? Lispがベストだが、いかんせん大食らい過ぎる。
Forthも悪くない。
Basicの奴はREPLのようなREPLでないような微妙なコマンドラインだしなぁ。 >>702
実マシンのメモリモデル的にはBASICが一番合う気がするんだよね。
で関数定義を基本とするならLISPが一番。(引数と関数の関係が一目瞭然なので)
で、FORTHだとFACTORみたいにオブジェクトとメッセージみたいな含みができれば最高なのにという感じ
という個人的な感想をもっちゃう。
>Basicの奴はREPLのようなREPLでないような微妙なコマンドラインだしなぁ。
forgetで+とか以降を消して涙目とかは流石にBASICじゃできないと思うのでそこら辺のシステム空間とユーザ空間みたいな区別はあっても良いかもしれない 組込み試作品に使える言語を探していて、Forthに行き当たった。
ZigBee、Raspberry Piなんだが、Forthはこういうの苦手なんだろうか? >>704
そんなこたないんだが、arm用に特化したforth処理系ってのが存在しないのも事実なのでなんと言えばいいんだろうか。
ちなみに特化しなくても何とかなっちゃうのがforthの良い所だったり、何も無いところから作り込んでもそんなに手間じゃなかったりするのも魅力だったりする。
でもRaspberry PiみたいなLinuxが動いちゃう環境ならforth使う理由が殆どないよ。
むしろ生の機械語を直接書かないと駄目なような環境に向いてる。 raspberry pi forth でググったらなんか出てくるみたいだが。
というか、rasp pi 衰退したOSや言語の敗者復活リングみたいになっててオモロイw まさにそれ
ttp://star.gmobb.jp/koji/cgi/wiki.cgi?page=AVR%A5%D3%A5%C7%A5%AA%C3%BC%CB%F6%A4%CE%C0%BD%BA%EE ★2ch勢いランキングサイトリスト★
☆ +ニュース板
・ 2NN
・ 2chTimes
☆ +ニュース板新着
・ 2NN新着
・ Headline BBY
・ Unker
☆ +ニュース板他
・ Desktop2ch
・ 記者別一覧
☆ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
☆ 実況板
・ 2勢
・ READ2CH
・ i-ikioi
※ 要サイト名検索