2011-12-14 24 views
7

Trong trang này tôi thường thấy mọi người trả lời câu hỏi với câu trả lời như "nó hoạt động như thế bởi vì trình biên dịch thay thế [điều] bằng [điều khác]", vậy câu hỏi của tôi là, làm sao mọi người biết/học điều này? Tôi có thể học những điều này ở đâu?Tôi có thể đọc về trình biên dịch C# ở đâu?

+11

Bạn cần biết cái bắt tay bí mật. – ChaosPandion

+0

http://www.dotnetperls.com/compiler –

+3

[Đặc tả ngôn ngữ C#] (http://msdn.microsoft.com/en-us/library/ms228593.aspx) và [Trình phản xạ] (http: // stackoverflow. com/questions/2425973/open-source-alternatives-to-reflector) –

Trả lời

13

Nguồn dứt khoát nhất về cách trình biên dịch C# giải thích mã là thông số ngôn ngữ C#.

Ngoài ra các blog sau đây cung cấp rất nhiều cái nhìn sâu sắc hơn vào ngôn ngữ C#. đọc bắt buộc đối với bất cứ ai muốn trở thành một chuyên gia trong các ngôn ngữ

+6

Tôi muốn thêm [blog của Eric Lippert] (http: // blog. msdn.com/b/ericlippert/) cho điều đó. – GSerg

+3

@GSerg Tôi thường nghĩ về C# lang spec là "trình biên dịch đang làm gì" và blog của Eric là "tại sao trình biên dịch đang làm những gì nó đang làm" – JaredPar

2

Một kỹ thuật là để biên dịch mã của bạn, và sau đó dịch ngược nó sử dụng các công cụ như ILSpy. Sử dụng một công cụ như vậy, bạn có thể xem IL thô và xem cho chính mình những gì trình biên dịch tạo ra.

0

Ngoài việc kiểm tra ngôn ngữ trung gian và đọc đặc tả ngôn ngữ, vui lòng cho phép tôi thêm "CLR qua C#" của Jeffrey Richter. Microsoft Press Library of Congress Số kiểm soát: 2009943026. Tài liệu tham khảo này là tuyệt vời, và đi vào chi tiết đầy đủ về những gì đang xảy ra dưới bìa.

0

Cuốn sách của Niklaus Wirth Compiler Construction (PDF) là phần giới thiệu về lý thuyết và kỹ thuật xây dựng trình biên dịch. Nó cung cấp cho bạn một ý tưởng chung về trình biên dịch là gì và nó hoạt động như thế nào.

1

Ngoài các câu trả lời khác, tôi muốn đề cập rằng LINQPad là công cụ yêu thích của tôi để kiểm tra IL cho đoạn trích nhanh.

Bạn có thể nhập một đoạn mã và xem ngay IL.
Đây là công cụ dễ sử dụng nhất và bạn có thể thực hiện thay đổi và xem kết quả ngay lập tức.

Các vấn đề liên quan