Pregunta

¿Alguien conoce algún buen recurso para aprender a programar CIL con descripciones detalladas de comandos, etc.?He mirado a mi alrededor pero no he encontrado nada particularmente bueno.

¿Fue útil?

Solución

El único libro CIL en mi estantería es Ensamblador experto de .NET 2.0 IL Por Serge Lidin.En términos de lo que hacen o significan los códigos de operación individuales, la documentación de Microsoft en System.Reflection.Emit tiene información bastante buena.Y siempre es útil observar la IL existente con Reflector.

Editar: CIL (y de hecho el CLR en general) no ha cambiado en absoluto entre .NET 2.0 y .NET 3.5; el tiempo de ejecución subyacente es básicamente el mismo, correcciones de módulo y mejoras de rendimiento.Así que no hay nada más nuevo disponible a nivel CIL que lo que estaría en un libro sobre 2.0.

Otros consejos

Ensamblador experto de .NET 2.0 IL Es genial porque el autor escribe bien e incluye todos los detalles que puedas imaginar.No hace daño que haya escrito el ensamblador, desensamblador y validador de IL.Lo mejor de todo es que puedes comprarlo en PDF en lugar de en un árbol muerto.

Los masoquistas interesados ​​en el desarrollo de compiladores también disfrutarán Compilación para .NET Common Language Runtime por John Gough.Este libro me resultó inmensamente útil durante un proyecto de desarrollo de máquinas virtuales en el que "robé" muchas ideas del diseño de CLR.

Ensamblador experto .NET 2.0 IL por Serge Lidin

Había una versión 1.1 del mismo libro, pero no he visto nada de la última versión de .NET.Es un libro excelente.Lo usé para escribir un componente OCR en MSIL, como proyecto de aprendizaje.

[Editar] @Curt tiene razón, 3.0 y 3.5 son solo extensiones de 2.0, todavía no lo había conectado a mi cabeza.Ahora he pensado en un proyecto geek divertido...Compare el desensamblaje del código estándar 2.0 con la nueva forma LINQ/Lambda de realizar tareas comunes como el filtrado de listas.Por alguna razón supuse que la magia estaba ocurriendo en las nuevas funciones de IL, no solo en el compilador.

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