Gần đây tôi đã rất quan tâm đến các trình biên dịch và cách chúng hoạt động. Vì gcc có sẵn nguồn, tôi đã nghĩ nó sẽ là tài liệu tốt nhất để nghiên cứu.Học tập gcc internals
Điều đầu tiên tôi nhận ra là sẽ vô ích khi nghiên cứu gcc nếu tôi không hiểu cơ bản về các nguyên tắc thiết kế trình biên dịch đơn giản. Tôi đã từ từ đọc cuốn sách "Dragon Book", từ những gì tôi đã thấy, là cuốn sách thực tế về việc triển khai trình biên dịch.
Không có gì ít, việc đọc sách đó chỉ làm tăng thêm mong muốn tìm hiểu về các trình biên dịch như gcc.
Ngoài ra, tôi thấy nó thích hợp để nói rằng tôi có một sự hiểu biết trung gian của c/c + + (aka, tôi không cố gắng để nghiên cứu gcc mà không biết c). Tôi hy vọng rằng nghiên cứu gcc cũng sẽ giúp tôi cải thiện điều đó.
Tôi đã tải xuống bản dựng mới nhất mà tôi có thể tìm thấy; tuy nhiên, tôi bị lạc khi đọc mã nguồn.
Điều tôi đang tìm kiếm là các đề xuất về cách tiếp tục. Có một dự án tương tự, mà không phải là quá lớn, tôi có thể sử dụng như một bước đệm để gcc? Có một mô-đun cụ thể của gcc mà một trong những đề nghị học tập đầu tiên? Có bất kỳ cuốn sách nào đi vào triển khai của gcc hay không, thay vì nó sử dụng? Có lẽ tôi nên ngừng rên rỉ và chỉ tiếp tục đọc nguồn cho đến khi nó nhấp?
Bất kỳ và tất cả phản hồi sẽ được đánh giá rất nhiều.
EDIT: Nếu bạn nghĩ rằng tôi nên nghiên cứu một trình biên dịch/thông dịch viên khác, tôi sẽ đánh giá rất cao các đề xuất về những đề xuất nào.
Bạn nên đọc cuốn sách rồng sau đó viết trình biên dịch của riêng bạn. Nó giúp rất nhiều. –
Tôi nghe nói GCC là một nỗi đau để hack. Có thể LLVM sẽ là một giải pháp thay thế? – Blender
1. Bạn nên hiểu ngôn ngữ hoàn toàn ở cấp độ chuyên gia 2. Viết trình biên dịch của riêng bạn cho một ngôn ngữ nhỏ đầu tiên 3. GCC là một mớ hỗn độn. Có nhiều lựa chọn thay thế tốt hơn – Pubby