這兩種情況是可能的,你需要描述你的語言多了,看看你是否真的需要這個功能添加到您的代碼生成器,或跳過不必要的,並避免與這個困難和有趣的話題額外的工作設計一種編程語言。
「代碼生成器」是一種程序,它以編程語言(可能是小代碼)接收輸入代碼,並以另一種編程語言(可能是小代碼)輸出代碼?
這個工具通常被稱爲「翻譯」。
「代碼生成器」是一種程序,它接收一種編程語言作爲輸入並輸出像編程語言那樣的彙編/字節代碼?
該工具通常稱爲「編譯器」。
注:「堆」是「堆」的同義詞。
通常是A.S.T.,存儲操作的類型或函數調用。例如,在c:
...
int a = 3;
int b = 5;
float c = (float)(a * b);
...
最後一行生成A.S.T.與此類似,(跳過A.S.T.其他行):
..................................................................
..................................................................
......................+--------------+............................
......................| [root] |............................
......................| (no type) = |............................
......................+------+-------+............................
.............................|....................................
.................+-----------+------------+.......................
.................|........................|.......................
...........+-----+-----+....+-------------+-------------+.........
...........| (int) c |....| (float) (cast operation) |.........
...........+-----------+....+-------------+-------------+.........
..........................................|.......................
....................................+-----+-----+.................
....................................| (int)() |.................
....................................+-----+-----+.................
..........................................|.......................
....................................+-----+-----+.................
....................................| (int) * |.................
....................................+-----+-----+.................
..........................................|.......................
..............................+-----------+-----------+...........
..............................|.......................|...........
........................+-----+-----+...........+-----+-----+.....
........................| (int) a |...........| (float) b |.....
........................+-----------+...........+-----------+.....
..................................................................
..................................................................
注意「(浮動)」鑄就了它像操作員或功能, 類似於你的問題。
祝你好運。
這取決於。涉及'x'的任何表達式是否根據'x'的類型改變行爲?你知道這個類型能產生更好的代碼嗎?等等 – delnan