簡體   English   中英

腳本語言解釋器源代碼學習

[英]Scripting language interpreter source code to learn from

我想閱讀並學習腳本語言的解釋器/編譯器的源代碼。 什么腳本語言解釋器/編譯器具有最簡單,最干凈,最容易閱讀的源代碼? 我更喜歡用C / C ++編寫(還有什么編寫的編譯器?)因為我打算用C編寫編譯器。

看看lua ,您可以瀏覽編程語言的第一版,看看它是如何演變的。 它是用C語言編寫的,代碼簡潔明了。 您幾乎可以在每種編程語言中編寫編譯器,但C是大多數程序員選擇的編譯器。

CPython中斷器已經存在很長一段時間了,我想這對你來說非常有用。

AngelScript是學習編譯器的一個很好的選擇。 這是一種具有C / C ++熟悉語法,垃圾收集的語言,它是面向對象的,具有繼承和多態性,跨平台並編譯為字節碼。

我的第二選擇是Lua

作為一個溫和的介紹,我建議看一下LLVM教程

Chris Lattner創建了一個簡單的玩具語言Kaleidoscope來展示編譯的各個階段:

然后,他演示了如何添加JIT功能 (對解釋器至關重要)。

玩具語言非常簡單,因此生成的代碼也很簡單,並且很好地展示了架構而不會讓您陷入實現細節。

我不確定該教程是否完全是最新的,並且可以用作最近的LLVM版本,但我建議至少閱讀它。

(當然,閱讀龍書 )。

看一下V8 for JavaScript。 每個interpeter都有一個名為tokenizer的組件。 GNU有一個名字叫野牛。 繼續看看吧。 它可能會有所幫助。 Chromium也使用一些tokenizer來解釋Webkit上的html,但是V8是javascript解釋器。

Claudio M. Souza Junior

一種着名的語言,但不簡單(PHP源代碼)。 您可以利用源代碼。

PHP源代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM