5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

: Mops ( オブジェクト指向FORTH -- ) ;

1 : 1:01/09/10 19:41
ニッチ(Mac)の中のニッチ(FORTH)。
オブジェクト指向FORTH言語、Mopsについて語るスレ。
いや、語れるのか‥‥?

2 :1:01/09/10 19:56
参考URL
http://www.netaxs.com/~jayfar/mops.html

3 :デフォルトの名無しさん:01/09/10 20:32
そういや Mops 落としたことあるけど、全く使ってないな。
つか、中身も全然みてない。

FORTH がどうやったらオブジェクト指向になるんだろう。
確かに 1 2 + . がメッセージパッシングとして見えなくは
ないけど。クラスの定義とか継承とかできるんだっけ。

よかったら解説きぼん。

4 :1:01/09/10 21:43
>3
オブジェクトにメッセージを投げるのは、

 someMessage: anObject

のよーにする。最後に『:』のつくワードはメッセージと解釈される。
パラメタが必要な時には someMessage: の前にスタックに積んでおくぞ。FORTHだからね。
最後に『:』のつくワードはコンパイル時に、直後に置かれたオブジェクトを調べて
メソッドの結合を済ませてしまう。静的束縛なわけだ。

動的束縛にしたい時は、

 someMessage: [ anObject ]

という具合にオブジェクトをカギカッコでくくっておく。するとメソッドの結合は、
実行時まで遅延される。C++と違って呼び出し側が選ぶわけね。
(メソッドディスパッチのためのテーブルを常に辞書に抱えてるのね〜。メモリ食いかも〜。)

5 :1:01/09/10 21:51
4の続き。

FORTHであるが故に、メッセージ: オブジェクト の順序になるのだが、結果として、

print: GIKO

のごとく英語の語順としては自然になるため思ったより読みやすい。
(逆に「日本語でワードを登録したらMINDみたい!」、ってわけには逝かなくて残念無念。)

6 :1:01/09/10 22:03
クラス定義は

:class someClass super{ superClass1 superClass2 }

var someVariable

:m someMethod { n1 n2 -- }
n1 n2 +
put: someVariable
;m

;class

みたいな感じっス。
スーパークラスは複数許されるので多重継承可能っす。

someClass MONA

1 2 someMethod: MONA

とするとMONAオブジェクトのsomeVariableに3が入るぞな。

7 :デフォルトの名無しさん:01/09/10 22:08
>>5
逆だったらよかったのかもね。
GIKO print:
っていう語順、つまりStackTopにselfが置かれて、messageなOperatorはまずStackからselfをpopするっていう形ならば。

でもそれだと、メソッドの静的結合は、困難になるかな。
まあ動的オンリーでいいじゃんという気もするが。

8 :1:01/09/10 22:21
>7
ややっ。もしかしたら静的束縛も可能かも。
メッセージ側に静的束縛を示す修飾子みたいなのを用意して、
オブジェクトのコンパイル時に直後のメッセージが修飾子付きなら
メソッド結合を済ませたコードを生成すればいいのかも。
修飾子なしならオブジェクトのselfをスタックトップに積む。
いかが?

9 :2:01/09/10 22:37
解説どうもありがと。>>8

私も >>7 と同じで、レシーバを後に書くのは逆に FORTH的じゃないような
気がしたんだけど、message を先にスタックに積んでおいて後でオブジェクトを
作用させることで挙動がポリモーフィックになるとすれば、納得できるような
気もする。

ところでメッセージを実行した後のスタックの状態はどうなるの?
そのメッセージを受けたオブジェクトがスタックに残るわけかな。
スタックトップにあるオブジェクトにメッセージを送ることはできるの?

10 :1:01/09/10 22:58
>9
メッセージを実行した後には、呼び出されたメソッドが残したスタックの状態以外なにも
残らないです。分かりやすいのですが、メッセージを連続的にオブジェクトに流し込むSmalltalk的な
使い方ができない原因でもあります。
スタックトップにあるオブジェクトにメッセージを送る場合は、

anObject someMessage: []

という構文が使えます。スタックトップのオブジェクトの解釈は実行時までわからないハズなので、
動的束縛による呼び出しになりますが、そのオブジェクトの属するクラスをコンパイル時に指定
してイイ場合には、

anObject someMessage: class_as> someClass

という呼び出し方をすることで、実行時のオーバーヘッドを小さくする事が出来ます。

11 :デフォルトの名無しさん:01/09/10 23:36
forthでOOPしたいんか?

12 :デフォルトの名無しさん:01/09/10 23:40
>11
したいっていうか、もうやっちゃってる人がいる。(w

13 :2:01/09/11 00:18
>>10
あそうか。メソッドの結果をスタックに残す場合、デフォルトで
レシーバもスタックに残っちゃうとかえって扱いにくいだろうな。

> anObject someMessage: []

なるほど。てことは、メソッドの中で復帰値として自分自身を明示的に
スタックに積んで終了すれば、同じオブジェクトに連続的にメソッドを
作用させることもできるわけだよね。

> anObject someMessage: class_as> someClass
> という呼び出し方をすることで、実行時のオーバーヘッドを小さくする事が出来ます。

メソッド呼び出しの束縛の仕方を動的にするか静的にするかを C++ の
ように定義側ではなく、呼び出す所で選択できるのはなかなかよい
ですねぇ。結構イケてる言語なのかも。

14 :1:01/09/11 00:36
>13
> なるほど。てことは、メソッドの中で復帰値として自分自身を明示的に
> スタックに積んで終了すれば、同じオブジェクトに連続的にメソッドを
> 作用させることもできるわけだよね。

なるほど、そういうやり方もありますね。

> 定義側ではなく、呼び出す所で選択できるのはなかなかよい
> ですねぇ。結構イケてる言語なのかも。

面白い言語だと僕は思うんですけど、あまりにマイナーなもので‥‥。
呼び出し側が束縛の仕方を選べる言語って他にあるのかな?
私は詳しくないんですが。

15 :2:01/09/11 07:04
>>14
> 呼び出し側が束縛の仕方を選べる言語って他にあるのかな?

あまり聞いたことないすね。そもそも動的なのが普通だから。
C++ みたく実行効率重視の言語だけが両方持ってるんじゃないかな。

> 面白い言語だと僕は思うんですけど、あまりにマイナーなもので‥‥。

やっと思い出したんだけど、Mops 落としたのに結局使わなかったのは、私が
Mac 持ってなかったからでした(大藁

で、Mac以外でも使えないかと捜してみたら

http://www.asahi-net.or.jp/~uw4s-wtnb/chidori-mops.html
このページにある FAQ に「Win32Forth が Mops のオブジェクトモデルを
取り入れている」とあって、下から落とせるみたいね。

http://www.taygeta.com/forthcomp.html

16 :デフォルトの名無しさん:01/09/11 07:09
MOPSって、CLOSのMOP(meta object protocol)の
ことじゃないですよね・・?

17 :2:01/09/11 09:10
Mops も CLOS も詳しくないのでアレだけど
>>16
Mops は
Michael's Object-oriented Programming System

とのことなので MOP とは関係ないみたい。
とは言え、Mops のベース言語である FORTH 自体が自己拡張性を
持った言語なので Mops でもその辺の機能がある程度使える、
…かもしれません。

18 :1:01/09/11 12:02
>>15
> C++ みたく実行効率重視の言語だけが両方持ってるんじゃないかな。

一般的なオブジェクト指向言語から見るとC++のほうが特殊というわけですね。

> このページにある FAQ に「Win32Forth が Mops のオブジェクトモデルを
> 取り入れている」とあって、下から落とせるみたいね。

そんなものがあったんですね。気がつきませんでした。
我々は孤独ではなかった!(藁
アセンブラでかかれているMopsのコア以外の部分はFORTH自身で記述されてい
るので、やろうと思えば別のFORTH処理系にも持っていけるのかも。

>>17
> Michael's Object-oriented Programming System

Michael Horeっていうオーストラリアのおぢいさん(孫がいるらしい)が一人で
開発しているらしいデス‥‥。

19 :デフォルトの名無しさん:01/09/14 02:55
forthって中間言語以外の用途ってあるんでしょうか

20 :デフォルトの名無しさん:01/09/16 21:16
Forthを中間言語に使っているシステムってどれ?

21 :元潜水艦乗り:01/10/04 20:14
保守カキコ。深度285/376。sageヨシ。
>>19-20
中間言語ってのとは少し違うがSunのOpenBootとかAppleのOpenFirmware
とかはFORTHみたい。
JavaのVMはスタックマシンみたいだけどスタックマシンならFORTHか?と
言われると少し違うような気がする。
っていうかたいていのコンパイラはスタックマシン向けのコードを生成して
からレジスタ割付けなんかをやって最適化したネイティブコードを作ってる
のでないかな?でもそれをFORTHとはよばないやうな。
あんまり知らんけど。

22 :元潜水艦乗り:01/10/13 09:29
保守カキコ。深度189/378。sageヨシ。
ぢつは、日本語化をあれから少しだけやってみた。
クラス定義だけできるようになった。


「 モナークラス 」は「 オブジェクト 」を継承し、
『 セリフ: " オマエモナ〜" 』
を実装する。

メソッドを呼び出す構文で良いのが思い付かず、途中やめにしてる。

へたれです………。

23 :デフォルトの名無しさん:01/10/20 17:51
    ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 〜' ― (,,゚Д゚) < 深度248/402。sage!!
  し― し-J  \___________

24 :デフォルトの名無しさん:01/10/23 00:34
爆雷投下

25 :デフォルトの名無しさん:01/10/23 01:19
たどり着いたらいつも雨降り

26 :第4番目の名無しさん:01/10/23 18:06
OpenFirmwareから書き込んでいますうそ
FORTHの考え方は好きだなぁ。
フェチ逝って良しですか?

27 :デフォルトの名無しさん:01/10/23 18:18
スタックトップのオブジェクトをレシーバーとする方がきれいだと
思うがなあ。anObject message とか。

数値も文字列もオブジェクト。+や.もメッセージと考えればすべて
うまくいくような。あ、引数なしのメッセージが困るか?

28 :25:01/10/23 18:28
>27
そういうのも蟻だと思う。
ANS仕様のForthならインタプリタやコンパイラいじり放題だから俺流アプローチのOOPが可能だよね。
俺は挫折したけど。

29 :22:01/10/23 18:54
>>27
たしかに、

anObject message

の形だと日本語の文脈にも合うので美しいなぁ。
‥‥‥‥コンパイラの中枢部分まで降りていって書き換えるか。

>>28
Forthはいじり放題、てのには激しく同意。
制御構造だろうがなんだろうが俺流につくれてしまう
Forthマンセー。
なんだけどおかげで方言だらけ(涙)。
Mopsも完全にはANSI互換じゃないしなぁ‥‥。

30 :デフォルトの名無しさん:01/10/23 18:57
>>26
名前がとても良いです。
このスレのデフォルトにしたいぐらいに。

31 :デフォルトの名無しさん:01/10/23 19:23
メタコンパイルage

32 :第4番目の名無しさん:01/10/23 20:45
>>30
サンクス。

33 :22:01/10/23 21:12
Mopsではmessageには

print:

のように最後に:を付けて区別しているので、
日本語化する時には、

印刷する。

みたいに最後に。が付いたモノは オブジェクトに
対するメッセージと言う事にすればヨイかな、
と思ったのですが、引数はどこに置くのがいいんでしょうね。

1)
anObject p1 p2 p3 message

2)
p1 p2 p3 anObject message

1)は引数とanObjectを区別するために少し細工が必要か。
(ブロック構文みたいになるかな?)
2)はmessageを直前にスタックに積まれたオブジェクト
に投げればイイだけなので実装は楽かと。
でも日本語化した時に楽しいのは1)のほうかな?

家政婦 は、

 (‥‥この間100行。)

見た。

あ、助詞をうまく使えば両方の構文を実装できるやうな
気もしてきた‥‥‥。

34 :デフォルトの名無しさん:01/10/23 23:42
たった一つだけ スタック制御だけ

なんでもないですage

35 :デフォルトの名無しさん:01/10/26 00:42
>助詞をうまく使えば

それはForthよりもSmalltalkに近い、という説が。
tp://isweb21.infoseek.co.jp/computer/h_yanai/html/B8E5C3D6A5ADA1BCA5EFA1BCA5C9A5E1A5C3A5BBA1BCA5B8.html

36 :22:01/10/26 02:14
リンク先を読みました。
似たような(たのしそうな)議論をしてますね。(^^
1)の構文のように複文かましてオブジェクトに流し込むという感覚は、
Smalltalkぽいわけですね。むー。
「スタックから何個オブジェクトもらうかはウチで決めさせてもらいますわ。」
の2)の構文のほうが確かにForthらしいか。
助詞によるパラメタのコントロールは魅力的だけど、スタック操作の実装を考えると、
オレみたいなへたれには荷が重いかも‥‥。
のんびり考えてみます‥‥。

37 :デフォルトの名無しさん:01/10/26 18:30
salvage

38 :デフォルトの名無しさん:01/10/26 21:30
    ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 〜' ― (,,゚Д゚) < Forthのプロジェクト成功率は30%!!
  し― し-J  \___________

ttp://www.gyve.org/~jet/lang2.txt

‥‥微妙に中途半端だな。

39 :デフォルトの名無しさん:01/11/20 11:38
312 PICK

40 :デフォルトの名無しさん:01/11/20 11:42
DROP

41 :22:01/11/20 12:47
モプースの日本語化がわずかばかり進みましたのでご報告。
anObject someMessage 型のメソッド呼び出しが出来るようになりました。
↓現在こんな感じ

42 :22:01/11/20 12:47
need モラセト

☆ メソッド呼び出しのテスト

クラス「 2chキャラ 」は「 オブジェクト 」を継承し
『 ハァハァ: とは " ハァハァ" を 文字列表示 』
を実装する

クラス「 モナークラス 」は「 2chキャラ 」を継承し
『 話せ: とは " オマエモナ〜" を 文字列表示し 自分 が ハァハァ。 』
を実装する

クラス「 ギコクラス 」は「 2chキャラ 」を継承し
『 ハァハァ: とは " ハゥッ" を 文字列表示 』
『 話せ: とは " 逝ってよし!" を 文字列表示し 自分 が ハァハァ。 』
を実装する

モナークラス モナー
ギコクラス ギコ

単語 駄スレ { 値 -- } を
ここから
値 から 1 を 引く → 値
値 が 0 以上
ならばその間
改行し
値 を 2 で 割った余り が 1 と 等しい
ならば
ギコ が
さもなければ
モナー が
つぎに
話せ。
を 繰り返し実行する
と定義

endload

43 :22:01/11/20 12:49
で、実行結果は↓

10 駄スレ

逝ってよし!ハゥッ
オマエモナ〜ハァハァ
逝ってよし!ハゥッ
オマエモナ〜ハァハァ
逝ってよし!ハゥッ
オマエモナ〜ハァハァ
逝ってよし!ハゥッ
オマエモナ〜ハァハァ
逝ってよし!ハゥッ
オマエモナ〜ハァハァ

44 :22:01/11/20 12:54
モナー が 話せ。
なら動的束縛。

話せ: モナー
なら静的束縛です。

助詞は実は読み飛ばしてます。
へたれでスマソ。

45 :デフォルトの名無しさん:01/11/20 18:22
52 PICK

46 :デフォルトの名無しさん:01/11/20 18:42
>>22

見てる分にはなかなか面白いかも。
Mopsってのは知らないけど、ForthとSmallTalkの
知識のみでだいたい理解出来るし。

47 :22:01/11/20 20:44
>> 46
自分でいうのもなんですが日本語化したリストを打ち込むのは正直メンドイ。
でも見た目重視なので名前付きパラメタへの代入記号が→だったりします。(w
SmalltalkはSqueakを以前ダウンロードしてみたことがありますけど、継続して
使ってみてないのであんまり知りません。
Smalltalkのメソッド呼び出しの語順を逆にしたものがMops‥‥?

48 :デフォルトの名無しさん:01/11/20 21:14
見るだけで満足できるスレだな。
良スレage

49 :デフォルトの名無しさん:01/11/20 21:29
さげ!
今後は新言語を発明しなかった奴にベストプログラマー賞をやれや。

50 :デフォルトの名無しさん:01/11/20 22:13
>>49
アイヤー、Mopsはちっとも新言語じゃねぇっす。
Neonという名前の商用製品だった頃を含めればMac用開発言語の中でもカナーリ古株ですね。
マイナーだけど。



でもsage。

51 :46:01/11/20 23:47
Transcript show: 'Hello World'

で、Transcriptオブジェクトにshow:メッセージを、
引数'HelloWorld'で送る。
Mopsの逆になってる?Mops知らんので良くわからん。

モナーが話せ。

という事は一緒に見えるが。引数がある時は

モナーが 'Hello World' と文字列話せ。

となる、という事か?

ギコとモナーの所のスタックにあるオブジェクトの種類で多態、
ってのは面白い気もする。
でもやっぱりはやらんだろうなぁ、こういう言語は。

52 :22:01/11/21 00:19
Mops的に表現すると、

" Hello World" show: Transcript

になります。パラメタ メッセージ オブジェクトの順。
コンパイラ部分にパッチをかましたオイラの日本語化Mopsだと


クラス「 モナークラス 」は「 オブジェクト 」を継承し
『 セリフを話せ: とは 文字列表示 』
を実装する

モナークラス モナー

" Hello, world" と モナー は セリフを話せ。

=> Hello, world

みたいな感じです。
つまり、パラメタ オブジェクト メッセージ の順。
もともとのMopsの構文も生きているので、

" Hello, world" と セリフを話せ: モナー

も実行できますけど。

53 :22:01/11/21 00:31
>>52
補足すると、Mopsが、インプットストリームから切り出したワードの
最後が『:』である事から、オブジェクトに対するメッセージか否かを
判別している箇所を拡張して、最後が『。』ならスタックトップの
オブジェクトへメッセージをsendするようにコンパイルしてます。
だから、パラメタはオブジェクトより前にないとダメです。
将来的に>>33の1)みたいな構文ができると楽しいとは思います。
あと趣味でやってみてるだけなので実用性は期待してませンです。(w

54 :22:01/11/21 00:43
>>50
でもNeonの頃は単一継承で動的束縛のみだったと思う。
ドキュメントのどこかで読んだだけで直接当時を知ってるわけ
ではないけれど。
オーストラリアのおじさんが残りの仕様を付け足した。
同じNeonから別れたYerkってのもあったハズ。

55 :デフォルトの名無しさん:01/12/08 13:10
自分 で 上げ。

56 :デフォルトの名無しさん:01/12/08 15:26
普通のFORTHスレってないの?
勉強してみたいんだけど。

57 :名無しさん@Emacs:01/12/08 19:14
ふつーにGNU Forthのドキュメントでも読めば
十分勉強できると思うよ。

58 :デフォルトの名無しさん:01/12/08 20:15
>>56
ハゲドー

59 :デフォルトの名無しさん:01/12/08 20:20
あげよう子供ライオン

>将来的に>>33の1)みたいな構文ができると楽しいとは思います

ところで、実際やろうとすると、どうやればいいんでしょうね。

文法については、レシーバーをメッセージの直前や直後に置くという文法にしないかぎり
やっぱり何らかの印がないとレシーバーだと判別できないんで。

あるいはレシーバーだけ「印がない」という案もあるが。
つまり助詞案みたいに、述語は「。」が、引数は「、」が、つくので
それ以外がレシーバーだ、という案。
ちょっと読みにくそうだけど。

コンパイルしたものの動かしかたについては、どうすればいいんだろうな。
postscriptでいう「mark」のようなものをstackに積み、
ここから1つのmessage sendingが起こる、ということを
おしえればいいだろうか。つまりstackに
mark receiver param1 param2 ...
と積まれた状態でmessageを実行すると
stacktopから(最初にみつかる)markまで掘り下げて
receiver とparamを拾ってくる、という。
これできちんと動くかどうかは検証してないけど。

60 :デフォルトの名無しさん:01/12/08 20:25
>>57
本を何冊か読んだけど途中からわからなくなります。
8ビットで遊んでみたいからforthみたいな小さい言語はぴったりだと思うのですが
逆ポーランドにいまだ馴染めません。

61 :デフォルトの名無しさん:01/12/08 20:27
>>56
とりあえず
http://www.google.co.jp/search?hl=ja&q=forth+%93%FC%96%E5&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

普通のFORTHスレってム板に無さそう。
Mindスレが以前にあったけど、倉庫に入って久しいし。

FORTHスレの需要があるなら立ててみる?
PostscriptとかOpen Farmwareとかスタック系言語一般を扱うことにすれば、多少は人が集まるか?

62 :22:01/12/08 21:46
>>59
え〜2つほど案があります。
文法的にはどちらも、

anObject mark1 param1 param2 paramN mark2 someMessage

になります。

1) オブジェクトスタック案
実行時にmark1がスタックトップをオブジェクト専用スタックにpushし、
mark2 がオブジェクト専用スタックからpopしてスタックトップに戻す。

2) 無名ワード案
コンパイル時にmark1とmark2にはさまれた部分を「無名ワード」(w として定義。
実行時にその無名ワードを呼び出すようにコンパイルする。

どちらにしてもmark2がないと>>42で実装した文法と混在しつつ複文に対応することが出来なかったりします。

で、mark1とmark2に助詞をあてればよいのかな?と思っていますが、
実装するヒマがありません。

63 :デフォルトの名無しさん:01/12/09 00:31
>>62

そのmark1,mark2って、
その位置を「anObjectの後」「someMessageの前」じゃなく
「anObjectの前」「someMessageの後」に換えると、
あら不思議、Lispみたいな言語になってしまう(笑)。
語順は逆だけどね。

64 :デフォルトの名無しさん:01/12/09 00:55
リアル厨房だけど。いれさせて。
OpenFirmwareについてはちょっと関心あるなぁ。
あれってForthインタプリタなんでしょ?
それでいてブートローダ?BIOS?
…知識はないけど関心なら。(汁

65 :デフォルトの名無しさん:01/12/09 01:04
BIOSにforthみたいな「(作るのが)簡単な」言語をいれるのは
わりとメジャーらしいですよ。

同様の理由で、ブートローダーにbasicを採用してるマシンってのも見たことがある。
Bload 0?????H : call 0?????H でlinuxがブートしたのを見たときは、さすがに笑いころげた。

同じくらい作るのが楽な言語といえばlisp系もなんだけど、
あれもブートローダーにしてる人(会社)は居るんだろうなあ。

66 :デフォルトの名無しさん:01/12/09 01:27
>>64
> あれってForthインタプリタなんでしょ?
> それでいてブートローダ?BIOS?
BIOSというよりはブートローダですね。
FORTHを知らなくてIF文の書き方に戸惑っているデベロッパが世界中にいそうだ。

67 :デフォルトの名無しさん:01/12/09 01:42
>>65-66
あぁ〜。ますますゾクゾクしてきますな。
OpenFirmwareのプロントがForthインタプリタと知り、
実際に使ってみた時、ちょっと感じるものがありましたが…
ブートローダってことはちっちゃいOSといってもいいのかなぁ。
勉強してみます。

68 :22:01/12/09 01:51
>>63
もちろん「無名ワード」はLispからのパクリです。
無名ワード案でいくと、ForthとLispとSmalltalkを多重継承して見た目が
日本語のキモい言語になる?
でも実装が面倒クサそう。

69 :デフォルトの名無しさん:01/12/09 02:04
FreeBSDのブートローダがForthで書かれている。

Forth総合スレ欲しいよ。

70 :デフォルトの名無しさん:01/12/09 02:06
>>69
ここでええんでないの?

71 :デフォルトの名無しさん:01/12/09 02:58
GNU GRUBも正直Forthなら良かった。
いまの設定ファイルは記述力が低すぎる。

72 :デフォルトの名無しさん:01/12/09 13:30
>>70
名称の問題ですね。mops知らん人は通りぬけちゃうかも。

ここが一杯になった暁(くるのか?)には「総合スレ」の名で大々的に起こす、では
やっぱりおそすぎますかね(^^;

スレに「別名つける」機能とか「リネームする」機能とかが
あればよかったのにな。ただ、あったらあったで変に濫用するやつが
後たたなくて困るだろうけど。

73 :67:01/12/09 13:41
>>72
>名称の問題
う〜む。「オブジェクト指向『FORTH』」とは書いてますけどねぇ。
やっぱり弱いか。
>別名とかリネームとか
イイ!(・∀・)かも〜
>変に濫用するやつが
ダメ!(´∀`;)かも〜

\ OpenFirmware + FORTHで検索かけてみました。
\ とりあえず
http://www.forth.org/
http://www.openfirmware.org/
http://join.t.u-tokyo.ac.jp/fig-japan/
http://www2.osk.3web.ne.jp/~lunlumo/Prog/Forth/
http://www.kt.rim.or.jp/~tyamamot/forthj/forthj.html
\ 情報少ないっすね…

74 :デフォルトの名無しさん:01/12/09 14:08
深度浅め。sageよし。

>>73
適当に検索してみた。よかったら参考にしてチョ

http://www2.airnet.ne.jp/sardine/complang/Forth.html
http://bishop.fuis.fukui-u.ac.jp/~nishino/hobby/prog/forth/
http://www.asahi-net.or.jp/~uw4s-wtnb/

開発環境
http://www.hoku-iryo-u.ac.jp/%7Esadakata/4th/index.html
http://home.interlink.or.jp/~s-nakani/doc/frtm-win.html
http://www.netlaputa.ne.jp/~kuno/forthmain.html

逆ポーランド
http://www.246.ne.jp/%7Etamra/stack.html

75 :デフォルトの名無しさん:01/12/09 16:32
forthのコードって出てますか?
富士通とか日立の8ビットパソコンに移植してみたいんですけど。
あとWIN−CE用のforthがあると助かります。

76 :中岡の玄ちゃん@似非ファーザー弁:01/12/09 17:32
深度25 sageるけぇのぉ

>>75 「forthのコード」
ソースのことか?だったら>>73-74のリンクにあるんじゃないんかのぉ。
不思議じゃわい。もののみごとに。

77 :デフォルトの名無しさん:01/12/09 22:24
物凄い勢いでオブジェクト指向FORTH製OSが立ち上がる画像キボンヌ
age

78 :デフォルトの名無しさん:01/12/10 01:15
盛り上がんねぇなぁ。いっちょあげ。

79 :デフォルトの名無しさん:01/12/10 02:53
さすがマイナー言語(w

80 :デフォルトの名無しさん:01/12/10 03:15
ちょい勉強してはじめてわかったけど、このスレの
タイトル、Forthのcolon definitionにちなんでるのね。

ダセェ顔文字かと思ってたよ…

81 :デフォルトの名無しさん:01/12/11 00:05
なるほど。気づかなかったよ。悪くないね。

82 :デフォルトの名無しさん:01/12/11 00:36
下のURLの所にANS ForthにMops風にオブジェクト指向拡張するソースが
あるんだけど、ANS Forth互換の環境で実際に試してみた人っている?

ftp://ftp.taygeta.com/pub/Forth/Applications/ANS/classM10.zip

オレのところではエラー出て止まっちゃうんだよね。

ftp://ftp.taygeta.com/pub/Forth/Applications/ANS/CLASS10.ZIP

↑こっちは動くんだけど、単一継承しかできないんだよねぇ。

83 :第4番目の名無しさん:01/12/11 02:20
>>82
ネタがあるならageようよ。(藁
漏れの所では試せません。スマソ。

>>26
パクリました。許可して。

84 :82:01/12/11 03:22
>>83
スマソ。ついクセで。
しかし最近の我が艦の深度は浅めぢゃのう。(違

>>漏れの所では試せません。スマソ。

ttp://www.forth.org/compilers.html

↑とりあえず。

GForthかpForthならたいていのプラットフォームで動くよ。
おヒマな人は試してみてね。

85 :デフォルトの名無しさん:01/12/11 19:32
42 pick

86 :デフォルトの名無しさん:01/12/11 19:33
>R

87 :デフォルトの名無しさん:01/12/11 19:34
>>86
アイゴー!

88 :デフォルトの名無しさん:01/12/12 23:57
今すぐL1-AしてOpenBootだ!

89 :サルベジ:01/12/13 00:52
今すぐ再起動 -> Command+Option+O+F してOpenFirmwareだ!

90 :デフォルトの名無しさん:01/12/13 11:01
そんで最後にFDISK/MBRしてCtrl-Alt-Delだ!

91 :22:01/12/15 01:23
>>42みたいなコードをANS Forth上で実行できるようにする代物を
>>82のリンク先のソースをベースにして今書いてます。
とりあえずCLASS10.zipのほうをもとにしているので多重継承はまだダメですが
その他の部分はそれらしく動作しているみたいです。
日本語の処理とか、いい加減にしかやってないのでハッタリもいいところですが。
たぶん明日ぐらいには公開できると思います。
GikoForthという名前にしようと思っているオイラは逝ってヨシ。

92 :デフォルトの名無しさん:01/12/15 09:28
期待アゲ

93 :デフォルトの名無しさん:01/12/15 11:42
期待age

94 :22:01/12/15 13:52
さげとこう‥‥‥。
http://www.geocities.co.jp/SiliconValley-SanJose/4733/

ターミナルから

include giko.fth

テストプログラムは、

include dasure.fth

testと打ち込んで改行。

95 :22:01/12/15 14:03
パーサーを全くいじってないので、半角スペースで
分かち書きしなきゃいけないです。メンドイです。
pForthの場合、辞書にはUPPER処理されて登録されてしまいますが、
なんとなく動きます‥‥‥。
へたれですまぬ‥‥。

96 :デフォルトの名無しさん:01/12/15 19:38
>>94
文字化けするYO!

97 :22:01/12/16 17:53
>>96
出力先をファイルにしてみてヨ。

でも結局、日本語を正しく扱えるANS互換FORTH処理系がないと
意味なしカモ‥‥。

pForthのソースを見ると、パーサーと辞書登録に関する部分はCで
書かれてるんだよね。
pForthはパブリックドメインなので付属のソースコードを書き換
えて日本語対応にすればいいんだけども。
MPWどこにしまっちゃったかなぁ。

98 :デフォルトの名無しさん:01/12/17 02:20
>>97
MacOSXに移ろうYO!
NSDictionaryで一発さ!HAHAHA!

99 :22:01/12/17 23:34
>>98
ソウナノカー。
でもオイラまだMacOSX持ってないのヨ。ホスィーヨォ
ってか、土曜日にうぷろーどしたソースにバグがアターヨ。(恥宇津氏
コソーリなをしたよ。
へたれでスマソ‥‥。

100 :デフォルトの名無しさん:01/12/18 00:16
>>99
簡単な処理系キボンヌ

97 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)