我想閱讀和學習腳本語言解釋器/編譯器的源代碼。什麼腳本語言解釋器/編譯器具有最簡單,最乾淨,最容易閱讀的源代碼?我寧願它用C/C++編寫(還有什麼編譯器編寫的呢?),因爲我打算編寫C編譯器。腳本語言解釋器源代碼
回答
一個着名的語言,但並不簡單(PHP源代碼)。 您可以利用源代碼。
鑑於'簡單'是OP的_primary_標準,如果PHP源不簡單,那麼這是一個怎樣的答案? – ildjarn
@ildjarn:PHP源代碼不簡單,但你可以從源代碼中獲益 –
採取的V8 JavaScript的看看。每個interpeter都有一個稱爲tokenizer的組件。 GNU有一個名字叫野牛的人。請看看它。這可能會有所幫助。 Chromium也使用一些標記器來解釋Webkit上的html,但V8是JavaScript解釋器。
克勞迪奧M.索薩少年
AngelScript是瞭解編譯器一個非常好的選擇。這是一種使用C/C++熟悉語法的語言,垃圾收集,它是面向對象的繼承和多態,跨平臺並編譯爲字節碼。
我的第二選擇是Lua。
我會推薦,作爲一個溫柔的介紹,看看LLVM Tutorial。
克里斯·拉特納創建一個簡單的玩具語言萬花筒顯示編譯的各個階段:
然後,他演示瞭如何add JIT capabilities(對翻譯至關重要)。
玩具語言非常簡單,因此結果代碼也很簡單,並且很好地展示了架構,而不會讓實現細節淹沒你。
我不確定本教程是否完全更新,可以按照最新版本的LLVM使用,但我建議至少閱讀它。 (當然,閱讀Dragon Book)。
- 1. Erlang腳本語言解釋器
- 2. 保護腳本語言源代碼
- 3. 語言在網絡從源代碼解釋字節碼與
- 4. shell腳本 - 解釋代碼
- 5. 是否解釋所有腳本語言?
- 6. C語言指針(代碼解釋)
- 7. 解釋語言是否適合解釋器的實現語言?
- 8. 解釋單行基本腳本代碼
- 9. 序言代碼解釋
- 10. 腳本語言解釋器如何引用其基礎功能?
- 11. 源代碼/機器語言的比例
- 12. 源代碼語言分析
- 13. 爲什麼解釋/腳本語言很少有多行註釋?
- 14. 請解釋此java腳本行代碼
- 15. 解釋shell腳本代碼「for循環」
- 16. 理解腳本語言
- 17. C#解釋語言
- 18. 解釋Django語言
- 19. 腳本語言和解釋語言是否可以強制垃圾收集?
- 20. Ruby是一種腳本語言還是一種解釋型語言?
- 21. 在disqus改變語言註釋腳本
- 22. 解釋型語言 - 利用解釋器之後的編譯語言
- 23. 解釋Linux源代碼的資源
- 24. 源代碼註釋的自然語言標識
- 25. 是解釋語言的代碼在每次到達時重新解釋?
- 26. 你能用PHP腳本或解釋型語言「建立」嗎?
- 27. Windows Phone 7腳本/解釋可用語言?
- 28. 在自己的解釋腳本語言中使用Apache Velocity
- 29. 腳本語言
- 30. Java中的連接語言解釋器
試試你最喜歡的那個。 – hari
似乎有不少人誤解了這個問題。請再讀一遍:p – slartibartfast