2012-06-03 106 views
2

我想用Java編寫一個Java解釋器,目的是爲該語言添加一些其他功能。用java編寫的java解釋器

我想知道是否已經有一些Java解釋器存在,用Java編寫,使用javacc。 那會很酷。

我已經在javacc網站上下載了java 1.5語法和抽象語法樹(AST),但是問題在於AST剛剛構建,但沒有填充。實際上它什麼都不做。

你知道用javacc編寫的任何開源Java解釋器嗎?

謝謝

盧瓦克

+0

你不用JavaCC編寫解釋器。你編寫編譯器。看起來你真正想要做的是編寫一個編譯器。請澄清你的問題。 – EJP

+2

你可以寫一個解釋器。下載的.zip中有一個例子,它用於編寫解釋器。 我還有一個用javacc編寫的TinyBasic解釋器。 –

+3

@EJP你可以用它生成解析器;他們使用的是任意的。 –

回答

3

你知道的javacc與任何編寫的開源Java解釋?

簡短的回答是不,我不知道。

我花了幾分鐘的時間使用谷歌搜索,找不到任何相關的東西。但是,有些使用JavaCC用Java編寫的其他語言的解釋器的示例。我還看到了編譯器構建課程的參考,該課程已經(有)爲「微型Java」語言編寫翻譯作爲一項家庭作業練習。

但想一想。爲什麼有人會爲Java編寫Java編譯器/解釋器?它有很多工作來構建現有工具鏈已經做的事情。而且還需要更多努力才能讓其他人使用。這可能解釋了爲什麼你找不到一個。

我建議你從OpenJDK代碼庫開始做實驗......或者通過實現一個生成字節代碼或Java源代碼的編譯器。


的多語種系統,戴夫牛頓提到(在上面的註釋)可以做Java語言的擴展,最終生成常規的Java源代碼的框架。這很有趣,但我不明白它在這裏會有什麼幫助。