Cuối cùng tôi đã bắt đầu hiểu được sự phức tạp đằng sau việc tạo một trình thông dịch và trình biên dịch. Tôi đã xây dựng một số phiên bản TinyBasic, 1964 (Dartmouth) Basic và bản mở rộng của riêng tôi về các ngôn ngữ đó trước khi đến thời điểm này. Dự án gần đây nhất là dự án mà tôi gọi là Open Source Basic ... bởi vì tôi không thể nghĩ ra được tính năng nào khác của ngôn ngữ mà mọi người sẽ quan tâm. Để có thể mở nguồn ngôn ngữ và hiểu cách thực hiện một số điều phức tạp (cách quét, phân tích cú pháp, giải thích và biên dịch)
Open Source Basic trước tiên được hiểu thành ngôn ngữ dựa trên ngăn xếp. Ngôn ngữ dựa trên ngăn xếp đó sau đó được diễn giải và thực thi ngay lập tức hoặc biến thành tệp thực thi CLR.
Tất cả các câu hỏi của tôi đều sôi sục về điều này:
- Các tính năng / cấu trúc cơ bản của ngôn ngữ cơ bản là gì? Tôi đã có sẵn các cấu trúc cơ bản này: Bài tập, Biểu thức, Biến, một số chức năng (Ngẫu nhiên, ToUpper, ToLower), Looping (for và do-while / Until), If (block và one-line) Khác ) và đầu ra (In) và các thường trình con (chưa có tham số).
- Khi tôi 'hoàn thành' việc thêm các cấu trúc cơ bản vào ngôn ngữ của mình - tôi nên phân nhánh như thế nào? Vào miền nào? Nói cách khác, ngôn ngữ cơ bản nguồn mở của tôi nên đi theo hướng nào khi tôi có tất cả các cấu trúc chung hoạt động?
Cảm ơn bạn đã dành thời gian,
Thống lĩnh