2011-06-04 67 views

回答

5

簡單的答案是任何將一個AST轉換爲另一個AST的函數。

一個更復雜的視圖可以在我的Model-driven development: What is a transform?

+0

Downvoter/Flagger:鑑於其他人認爲我的答案是相當不錯的,這似乎是合理的,你應該在這裏注意你的反對意見,而不是簡單地標記和運行。 – 2011-07-15 20:56:29

+0

Ira,你能告訴AST Transformations能達到Mixins不能做什麼嗎? – 2014-05-12 07:34:24

+1

Mixins是用於通過允許附加行爲b(「before」)和a(「after」)來調整基準行爲f的運行時方案。你的結果行爲是b點(行爲組合)。你可以得到的行爲範圍明顯受到f如何處理其輸入的限制。程序轉換(PT)採用任意*規範* f並應用轉換生成與f具有相同抽象行爲的另一個規範f'。 ... – 2014-05-12 08:01:55

7

SO回答除了什麼已經被提到的發現,你可能也有興趣在Term rewriting更廣泛和更基本的概念。

20

AST表示抽象語法樹,它基本上是代碼/任何語法結構的抽象表示。轉換是修改此樹的動作(即將現有的AST轉換爲新的AST)。欲瞭解更多信息,請看這裏:http://en.wikipedia.org/wiki/Abstract_syntax_tree

+0

以前從未聽說過,感謝教育:) – zx81 2014-06-28 09:57:41