2011-12-14 15 views
7

A lo largo de este sitio, suelo ver a las personas responder preguntas con respuestas como "funciona así porque el compilador reemplaza [cosa] por [otra cosa]", entonces mi pregunta es, ¿cómo la gente sabe/aprende esto? ¿Dónde puedo aprender estas cosas?¿Dónde puedo leer lo que hace el compilador C#?

+11

Necesita conocer el apretón de manos secreto. – ChaosPandion

+0

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

+3

[Especificación del lenguaje C#] (http://msdn.microsoft.com/en-us/library/ms228593.aspx) y [Reflectores] (http: // stackoverflow. com/questions/2425973/open-source-alternatives-to-reflector) –

Respuesta

13

La fuente más definitiva de cómo el compilador de C# interpreta el código es la especificación del lenguaje C#.

también los siguientes blogs proporcionan una gran cantidad de visión más clara en el lenguaje C#. lectura obligatoria para cualquier persona que quiere convertirse en un experto en el idioma

+6

Agregaría [blog de Eric Lippert] (http: // blogs. msdn.com/b/ericlippert/) a eso. – GSerg

+3

@GSerg A menudo pienso en la especificación de C# lang como "lo que el compilador está haciendo" y en el blog de Eric como "por qué el compilador está haciendo lo que está haciendo" – JaredPar

2

Una técnica consiste en compilar el código, y luego descompilarlo el uso de herramientas tales como ILSpy. Utilizando una herramienta de este tipo, puede ver IL sin procesar y ver por usted mismo lo que produce el compilador.

0

Además de verificar el Idioma Intermedio y leer las especificaciones del lenguaje, permítame agregar "CLR a través de C#" de Jeffrey Richter. Número de control de la Biblioteca del Congreso de Microsoft Press: 2009943026. Esta referencia es sorprendente y detalla completamente lo que sucede bajo las carátulas.

0

El libro de Niklaus Wirth Compiler Construction (PDF) es una introducción a la teoría y las técnicas de construcción de compiladores. Le da una idea general de qué es un compilador y qué hace.

1

Además de las otras respuestas, me gustaría mencionar que LINQPad es mi herramienta favorita para inspeccionar IL en busca de fragmentos rápidos.

Puede escribir un fragmento de código e inmediatamente ver el IL.
Es, de lejos, la herramienta más fácil de usar, y puede realizar cambios y ver los resultados al instante.

Cuestiones relacionadas