文章詳情頁(yè)
JAVA開(kāi)源編譯器小集
瀏覽:104日期:2024-06-13 09:02:28
內(nèi)容: 編譯原理是程序語(yǔ)言的基礎(chǔ)。也是人機(jī)交互的重要基石。一般說(shuō)來(lái)很少需要自己寫(xiě)晦澀的編譯器,java世界就有幾個(gè)不錯(cuò)的Parse Generator。首先要澄清的概念就是編譯器有基于LL(自頂向下)和LR(自底向上)兩種算法,據(jù)我的了解,總的說(shuō)來(lái),LR比LL的效率更高,且沒(méi)有左遞歸和二義性問(wèn)題,就是生成出來(lái)的程序簡(jiǎn)直是天書(shū),沒(méi)法懂。不過(guò)LL生成的代碼也好不到哪去,五十步笑百步。所以我更傾向與LR解析器。Lex和Yacc,一個(gè)是詞法分析器,一個(gè)是語(yǔ)法分析器(搞不懂為什么不干脆做到一起算了?),來(lái)自C++,現(xiàn)在好像有了JAVA版本。都是基于LR的。JavaCC和Antlr都是基于LL的,但ANTLR的語(yǔ)法文件更簡(jiǎn)潔易懂,生成AST樹(shù)時(shí)的控制也很多。此外,在ANTLR的語(yǔ)法文件中嵌入JAVA代碼非常方便。而JAVACC是LL(1)算法的,而ANTLR是LL(n,n>=1)算法的(我只知道N越大解析能力越強(qiáng))。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd 編譯原理是程序語(yǔ)言的基礎(chǔ)。也是人機(jī)交互的重要基石。一般說(shuō)來(lái)很少需要自己寫(xiě)晦澀的編譯器,java世界就有幾個(gè)不錯(cuò)的Parse Generator。首先要澄清的概念就是編譯器有基于LL(自頂向下)和LR(自底向上)兩種算法,據(jù)我的了解,總的說(shuō)來(lái),LR比LL的效率?
標(biāo)簽:
Java
相關(guān)文章:
1. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. Ajax返回值類型與用法實(shí)例分析3. .NET6打包部署到Windows Service的全過(guò)程4. Vue element ui用戶展示頁(yè)面的實(shí)例5. 如何在jsp界面中插入圖片6. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)7. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)財(cái)務(wù)記賬管理系統(tǒng)8. asp批量添加修改刪除操作示例代碼9. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼10. css代碼優(yōu)化的12個(gè)技巧
排行榜
