Tôi quan tâm đến việc viết một trình biên dịch rất tối giản.Lập trình biên dịch: Các thành phần cơ bản nhất là gì?
Tôi muốn viết một mảnh nhỏ của phần mềm (trong C/C++) nhằm thoả mãn các tiêu chí sau:
- đầu ra ở định dạng ELF (* nix)
- đầu vào là một textfile đơn
- C-như ngữ pháp và cú pháp
- không mối liên kết
- không Preprocessor
- rất nhỏ (max. 1-2 KLOC)
Tính năng ngôn ngữ:
- mẹ đẻ kiểu dữ liệu: char, int và nổi
- mảng (đối với tất cả các loại dữ liệu bản địa)
- biến
- cấu trúc điều khiển (if-else)
- chức năng
- vòng lặp (sẽ đẹp)
- đại số đơn giản (div, thêm, phụ, mul, biểu thức boolean, chút ca, vv)
- inline asm (cho các cuộc gọi hệ thống)
Ai có thể cho tôi biết làm thế nào để bắt đầu? Tôi không biết những gì các bộ phận một trình biên dịch bao gồm (ít nhất là không có nghĩa là tôi chỉ có thể bắt đầu ngay từ kệ) và làm thế nào để chương trình chúng. Cảm ơn về những ý tưởng của bạn.
bản sao có thể của [Học cách viết trình biên dịch] (http://stackoverflow.com/questions/1669/learning-to-write-a-compiler) – nawfal