Có phải là một ý tưởng tốt để đọc mã nguồn trình biên dịch? [đóng cửa]


8

Tôi là sinh viên năm thứ hai chuyên ngành Khoa học Máy tính. Ngoài việc viết nhiều mã, tôi muốn bắt đầu đọc mã nguồn do người khác viết để cải thiện kỹ năng mã hóa của mình và tìm hiểu các cách làm việc tốt hơn / khác nhau. Tôi đã nghĩ rằng tôi nên bắt đầu đọc một số phần chính của mã trong trình biên dịch C ++. Tôi nghĩ rằng điều này sẽ giúp tôi làm hai điều:

  • Tìm hiểu các thực hành mã hóa thanh lịch vì trình biên dịch là khó và mã đại diện cho các giải pháp cho vấn đề khó khăn này.
  • Điều này cũng sẽ giúp tôi tìm hiểu về cách biên dịch ngôn ngữ được sử dụng nhiều nhất của tôi, chi tiết, cách tạo ra từng lỗi, cách phân tích mã và trở nên thực sự tốt với các thông số kỹ thuật của ngôn ngữ.

Bạn có nghĩ đây là ý kiến ​​hay?


2
hầu hết các trình biên dịch C ++ rất phức tạp (vì phân tích cú pháp C ++ rất phức tạp) và không có chất lượng mã tốt nhất, tốt hơn hết là bạn nên tìm kiếm các tài nguyên trình biên dịch / trình thông dịch khác
ratchet freak

3
Tại sao điều này được bỏ phiếu xuống? Tôi nghĩ đó là một câu hỏi hay.
Rocklan

1
@LachlanB phiếu bầu nói rằng nó lạc đề. Tôi không nghĩ rằng nó là.
Phản ứng

1
Kudos vì muốn đọc mã. Hầu hết các lập trình viên không quan tâm.
tcrosley

1
Tôi thực sự ngạc nhiên khi tất cả các câu trả lời đều nói "không, đừng làm điều đó". Tôi không thể không đồng ý nhiều hơn với những câu trả lời. Ngoài việc đọc mã nguồn, bạn có thể thích và hưởng lợi từ việc đọc các bài báo học thuật mô tả các thuật toán phân tích cú pháp và kiến ​​trúc trình biên dịch. +1 cho một câu hỏi hay và may mắn.

Câu trả lời:


6

Thật khó để nói từ bài đăng của bạn, bạn đã biết bao nhiêu về C ++, nhưng tôi sẽ không bắt đầu bằng cách đọc mã của trình biên dịch. Tôi sẽ dành thời gian với những cuốn sách tốt đầu tiên. Một danh sách rất ngắn:


4

Bạn có nghĩ đây là ý kiến ​​hay?

Lý do duy nhất có thể là một ý tưởng tốt là vì vậy bạn có thể có kinh nghiệm để biết rằng hầu hết các mã, thậm chí được sử dụng thường xuyên, mã "tốt" ( đặc biệt là thường xuyên được sử dụng, thực tế là mã tốt) hoàn toàn không phù hợp.

Ồ, và nó sẽ chứng minh một trải nghiệm học tập tốt về cách mã hiếm khi trông giống như thông số kỹ thuật và / hoặc ít mã thực sự tuân theo thông số kỹ thuật.

có lẽ vì vậy bạn có thể học được bao nhiêu bạn phải học.

Nhưng không, tôi không nghĩ rằng đây là một ý tưởng hay - ngay cả vì những lý do bạn có thể đạt được từ nó (và chắc chắn không phải vì những lý do bạn nghĩ bạn có thể đạt được từ nó).


2

Không, đó không phải là một ý tưởng tốt bởi vì bạn đạt được rất ít. Tốt hơn là lấy lớp trình biên dịch và đọc sách rồng nếu bạn muốn chuyên về trình biên dịch. Nếu bạn muốn chuyên về C ++, hãy mua và đọc tiêu chuẩn. Những người sẽ cung cấp cho bạn nhiều kỹ năng kỹ thuật hơn kỹ thuật đảo ngược một trình biên dịch.

Đối với kỹ năng lập trình thuần túy, tôi muốn giới thiệu "Thực hành lập trình" của Pike và Kernighan.


1

Tôi sẽ không bắt đầu bằng cách đọc mã trình biên dịch vì nó thực sự phức tạp. Bạn nên thực hiện tìm kiếm các dự án C ++ trên (để đọc mã, xây dựng dự án, thực hiện các thay đổi):

wwww.github.com
www.codeplex.com
code.google.com

Ngoài ra, bạn nên đọc: Ngôn ngữ lập trình C ++ của Bjarne Stroustrup


1
Điều này có một chút rủi ro ... có nhiều C ++ tệ hơn ngoài kia.
Daniel Gratzer

@jozefg Điều đó đúng với tất cả các ngôn ngữ
Harrison Brock

1
Điều đó không thực sự thay đổi ý nghĩa của nhận xét của tôi, tìm kiếm ngẫu nhiên mã nguồn mở không phải là cách tốt để khám phá các thực tiễn tốt nhất. Các dự án nổi tiếng mặc dù có thể khác nhau.
Daniel Gratzer

0

Thay vì đọc mã nguồn, có thể sẽ không chứa bình luận. Bạn nên thử đọc một số cuốn sách về cách viết C ++ tốt.

Hãy thử Sách của Scott Meyer . Tôi nghĩ bạn sẽ thích những cuốn sách C ++ hiệu quả của anh ấy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.