オレ言語

メタめたMeta

独自のプログラム言語を作ってます。
まだ作りかけですが、やっと、最初のプログラムが動きました。

"Hello, Asan-Language!"

クラスやメソッドがなくても、いきなり式をかけるので、これで動きます。最後に評価された値を表示するので、ちゃんと画面に "Hello, Asan-Language!" と表示します。

1.`+`(2)

演算子は今のところ実装していないのですが、数値オブジェクトのメソッドの呼び出しとして呼ぶことができます。数値同士の足し算は内部的には、メソッド名が`+`という引数1つのメソッドです。無事に3.0と表示します。今のところ、数値は実数(double相当)だけ。

(1.`+`(5.sqrt())).`/`(2)

黄金比はこんな感じ。読みにくい。そのうち(1+5.sqrt())/2でも書けるようにします。


Javaみたいな、基本型と複合型(オブジェクト型など)のタイプは作ったことがあるのだけれど、Rubyみたいに数値や関数をオブジェクト型としようとしたときはどう実装すればいいのだろう?言語ってクラスやオブジェクトが作れるクラスを作らなきゃいけないんだけれど、どこまで抽象的にすればいいのか、抽象度が一致しているのかどうか、よくわからなくなります。