Khi triển khai thông dịch viên cho ngôn ngữ lập trình của tôi, trước tiên tôi nghĩ về một cửa sổ giao diện điều khiển đơn giản cho phép người dùng nhập một số mã mà sau đó được thực hiện dưới dạng chương trình độc lập làm trình bao.Làm thế nào để Ruby và Python thực hiện các bảng điều khiển tương tác của họ?
Nhưng có vấn đề nghiêm trọng: Nếu mỗi dòng mã người dùng nhập được xử lý như một chương trình độc lập, nó phải đi qua trình mã thông báo và trình phân tích cú pháp và sau đó được thực hiện bởi trình thông dịch.
- Bảng điều khiển tương tác Python/Ruby (IDLE, irb) "chia sẻ" mã như thế nào? Mã được nhập được xử lý như thế nào?
Ví dụ:
>> def x:
>> print("Blah")
>>
>> x()
Đâu là chức năng lưu trữ để nó có thể được gọi bất cứ lúc nào nữa?
Làm cách nào để bàn điều khiển tương tác đưa mọi thứ được nhập rõ ràng là một chương trình mà không thực thi mọi thứ lặp đi lặp lại?