Pregunta

Soy un programador experto en C # 3 / .NET 3.5 que está tratando de comenzar a hacer algo de tiempo de ejecución utilizando System.Reflection.Emit.DynamicMethod. Me encantaría pasar al siguiente nivel al familiarizarme íntimamente con IL.

¿Algún puntero (juego de palabras destinado)?

¿Fue útil?

Solución

La mejor manera de aprenderlo es escribir algo que entiendas y luego mirar el IL que creó. Además, dependiendo de lo que esté haciendo, puede usar árboles de expresión en lugar de emitir IL, y luego, cuando compila los árboles de expresión, esos tipos inteligentes de microsoft crean el IL para usted.

Otros consejos

Además de la respuesta de Darren, sugeriría escoger o inventar un lenguaje de juguete y escribir un compilador simple para él. Elija algo que requiera poco análisis, como BF o un lenguaje basado en pila, y encontrará que escribir un compilador es realmente más sencillo de lo que parece.

.NET Reflector es excelente para examinar la IL producida por C # /VB.NET.

Es una herramienta de aprendizaje maravillosa.

La especificación ECMA 335 se puede descargar gratuitamente aquí: http://www.ecma-international.org/publications/standards/Ecma -335.htm

La partición III es la más relevante para tratar con MSIL, pero recomiendo encarecidamente la partición I también para cualquier desarrollador de .NET, ya que solidificará enormemente la comprensión de la plataforma.

Expert .NET 2.0 IL Assembler. Aunque este libro puede ser un poco fechado ahora, todavía era un gran resumen para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top