在爲我的編程語言實現解釋器時,我首先想到了一個簡單的控制檯窗口,它允許用戶輸入一些代碼,然後將其作爲獨立程序作爲shell執行。Ruby和Python如何實現其交互式控制檯?
但存在嚴重的問題:如果用戶輸入的每行代碼都作爲獨立程序處理,則必須通過標記器和解析器,然後才由解釋器執行 - 那麼函數又如何呢?
- Python/Ruby交互式控制檯(IDLE,irb)如何「共享」代碼?如何處理輸入的代碼?
例子:
>> def x:
>> print("Blah")
>>
>> x()
在哪裏存儲功能,因此它可以在任何時候再次叫什麼名字?
交互式控制檯怎麼能把所有輸入的東西當作一個程序而不需要一遍又一遍地執行?