2014-01-21 67 views
3

ATL是一個轉換語言,允許進行模型到模型的轉換,但我想知道是否與此轉換語言,它可能使文字模式轉型(已具有確定Ecore元模型)或I必須與另一種轉換語言有關。轉換語言,文字到模型

如果ATL不可能,那麼轉換語言是什麼?

回答

2

根據模型的抽象程度,這稱爲「逆向工程」或「設計恢復」。

要變換「文本」的模式,你需要爲文本,無論它是一個分析器。 通常情況下,文本是一種編程語言,充滿光彩。如果您的文本是COBOL,Java或C++,那麼您需要這些語言的完整解析器,並且它們不容易構建,因爲這些語言比您想象的要龐大,複雜且文檔記錄不完整,然後您就可以處理與供應商特定的變體。

解析器還不夠。模型元素表示具有它們之間關係的實體(例如,具有「包含」,「使用」,「調用」關係的類)。這些關係需要從代碼中提取,因此需要靜態分析代碼來提取這些事實。你必須用「某種」語言編寫這個分析。

的這種任務的理想工具是一個program transformation (PT) system。這些工具接受語言定義,解析構建AST(一種編譯器數據結構)的源代碼,並且可以對代碼進行轉換和/或對其進行分析以提取感興趣的關係,這些關係通常用專用於PT系統的DSL編寫。 AFAIK,DMS(我公司的PT系統)是唯一一個擁有成熟的常用語言解析器的人。因人而異。