2012-01-20 50 views
0

我就已經有了一個新的語言實現的一個項目工作。我已被分配任務來爲該語言構建翻譯員。翻譯者應該用Java編譯,翻譯輸出應該將新語言的子集生成C語言。我對此有幾個問題: 1.如何繼續? 2.我應該更強調哪個階段?它應該是編譯器的代碼生成器階段嗎? 3.我是否需要爲目標語言增加一個語法?源代碼翻譯到子集的ç

在此先感謝。

+2

這是功課嗎? –

回答

2

我調查ANTLR,如果你不至少已經意識到這一點。從http://www.antlr.org/about.html(重點煤礦):

ANTLR,其他工具的語言識別,是一種語言工具, 提供了一個框架,在 各種目標的構造識別器,編譯器,以及包含動作的語法描述 翻譯語言。 ANTLR自動化構建了 語言識別器。從形式語法來看,ANTLR生成一個程序 ,它確定句子是否符合該語言。 在其他 單詞中,它是一個寫入其他程序的程序。通過將代碼 代碼片段添加到語法中,識別器成爲翻譯器或解釋器。 ANTLR爲樹形構建,樹行走,翻譯提供了極好的中間形式支持 ,並提供了複雜的自動錯誤恢復和報告功能 。

作爲一個額外的好處,ANTLR被寫入並且容易被Java調用。

其他詳細信息請見http://en.wikipedia.org/wiki/ANTLR