今後の予定

今年も後わずかです。
残念ながら、今年中にC言語ライクな言語を作る目標は達成出来ないかもしれません。
でも、少しずつ前進して止まらなければいつか出来上がる日は来るでしょう。

暗黙的型変換ありのネイティブコンパイラは作れました。
スタックマシンにコンパイルして、インタプリタを実行する代わりにネイティブコードを出力すると結構簡単にネイティブコンパイラが作れました。

これを最小限に発展させて、配列とか構造体を作っていきたいです。
その為には、変数と複数式を記述できるようにすれば良いはずです。

var a:double = 1 + 2 * 2.2;
var b:int = 1 + 2 * 3;
a+b
とかいうプログラムがまず動けばいいんです。
コレが動いたら、配列を導入します。

var a:Array[double] = new Array[double](10)
a[0] = 1 + 2 * 2.2
a[1] = 1 + 2 * 2.3
a[2] = a[0] + a[1]
a[2]

次に構造体

A:struct {
var a:int
var b:int
var c:double
}

var a:A = new A()
a.a = 1 * 2
a.b = 1 + 2
a.c = a.a + a.b
a.c
が計算出来るようにしましょう。

スタックマシンを自作する事で、他のマシンを勉強せずにすむので型の実装に集中できます。
スタックマシンで実装出来たら、スタックマシンをコンパイラに変える事で、バッグエンドが理解出来ます。
結果的に、完成します。

1.四則演算スタックマシンインタプリタ
2.四則演算ネイティブコンパイラ
3.変数付きスタックマシンインタプリタ
4.配列付きスタックマシンインタプリタ
5.構造体付きスタックマシンインタプリタ
6.変数付きネイティブコンパイラ
7.配列付きネイティブコンパイラ
8.構造体付きネイティブコンパイラ

と作っていくことで、C言語レベルの型を理解していきます。

ということで、次は変数付きのスタックマシンを作るだけです。
簡単です。