Tôi đã tạo ra một số trình biên dịch viết tay cho các ngôn ngữ rất đơn giản nhưng bây giờ tôi muốn thử phát triển một ngôn ngữ động, tương tự như Python hoặc Ruby đơn giản hóa. Tuy nhiên, thật dễ dàng để tôi quấn đầu xung quanh cách trình biên dịch làm việc. Trình biên dịch nguyên thủy chỉ cần dịch. Nhưng tôi không thể làm điều này nếu ngôn ngữ năng động. Tôi phải viết một trình thông dịch hoặc VM theo dõi thông tin trong thời gian chạy và giúp tôi làm việc nhiều hơn.
Nói tóm lại, có bất kỳ tài nguyên nào tôi nên kiểm tra xem xét tôi có biết trình biên dịch hoạt động như thế nào nhưng muốn chuyển sang tạo trình thông dịch không? Có một vài máy ảo cho các ngôn ngữ động, nhưng tôi không có vấn đề gì với việc tự lăn. Đây là tất cả chỉ cho kinh nghiệm cá nhân của tôi.
Tôi đang tìm kiếm thông tin về cách chuyển từ trình biên dịch sang trình thông dịch. Nếu tôi đã tạo một trình biên dịch cho ngôn ngữ X nhưng bây giờ phải viết trình thông dịch, thì cần phải làm gì và có tài nguyên nào đi qua quy trình không?
Tôi không muốn các tài nguyên rộng hoặc trừu tượng đi qua cách trình biên dịch hoặc máy ảo hoạt động. Tôi có rất nhiều sách giáo khoa về chủ đề này. Tất cả các tài nguyên tôi tìm thấy trực tuyến đều cho rằng bạn có 0 kinh nghiệm và do đó bắt đầu với việc phân tích từ vựng hoặc cú pháp hoặc chúng cực kỳ trừu tượng. Tôi có một trình biên dịch làm việc, nhưng bây giờ tôi muốn biến nó thành một trình thông dịch và thêm các tính năng động cho ngôn ngữ.
Tôi không thể tìm thấy tài nguyên trong quá trình này, nó có thể quá giới hạn về phạm vi hoặc tài nguyên ở "phần cuối" của trình thông dịch mà không quá lý thuyết, đó là lý do tại sao tôi đăng ở đây.