Tôi đang thiết kế một ngôn ngữ lập trình OO đơn giản.
Nó được gõ, biên dịch và thực thi tĩnh bởi một VM - tương tự như Java.
Sự khác biệt là tôi không muốn có sự nhấn mạnh như vậy vào OOP. Bản thân mã sẽ giống với C ++ (các lớp, hàm và các biến được phép trong phạm vi tệp).
Một trong những điều mà tôi cần phải có là một hệ thống mô-đun. Tôi có những điều sau đây đã tìm ra:
- Mỗi tệp là một mô-đun (một khi được biên dịch) - như Python
- Các lập trình viên phải nhập một mô-đun với
import
từ khóa, điều này khiến trình biên dịch tìm kiếm các mô-đun trong các thư mục tiêu chuẩn và thư mục tệp (VM cũng phải làm điều này khi chạy).
Và bây giờ tôi không biết làm thế nào tôi nên giới thiệu khái niệm mô hình con và phân cấp mô-đun.
Chẳng hạn, một tùy chọn là phụ thuộc vào hệ thống phân cấp thư mục, do đó import engine.graphics.renderer
sẽ mong muốn tìm thấy một thư mục có tên là "engine" trong thư mục làm việc và bên trong một thư mục có tên là "đồ họa", với một mô-đun gọi là "renderer".
Nhược điểm của một thiết kế như vậy là gì? Tôi có thiếu thứ gì không?
foo.bar
việc là foo / bar.file hoặc một số mô-đun foo
với thành viên (cũng là một mô-đun) bar
. Cân nhắc để xem xét
@annotations
cho nhúng thông tin như vậy.