Estoy leyendo el libro de Andrei Alexandrescu sobre el lenguaje de programación D. Es un excelente escritor y hace un buen trabajo explicando aspectos del lenguaje D. Sin embargo, encuentro ciertos constructos difíciles de entender cuando no puedo imaginar el resultado de ASM o las consecuencias de ciertas palabras clave (como in, out, etc. u otras construcciones). Aunque mi ASM es bastante malo y nunca lo uso, me ayuda mucho poder entender cómo ciertas palabras clave funcionan en la computadora y el trabajo que se realiza.compilador digital Mars D; adquiriendo la salida ASM
El compilador DMD tiene muchas características interesantes (cobertura de código, generación de interfaces (archivos de encabezado), generación de documentación, creación de perfiles, ...) pero no he visto un cambio para dar salida al código ASM. El compilador genera archivos .obj, y al leer el siguiente enlace: http://www.digitalmars.com/ctg/obj2asm.html Sospecho que necesito una herramienta para convertir los archivos de objeto manualmente. Yo preferiría un interruptor de compilación, ¿hay alguno?
En la parte inferior de esa página, me vinculan a una página donde puedo pagar los productos que mencionan que contienen esa herramienta. Viniendo de un fondo GNU, fruncí el ceño. ¿Esto es solo para C/C++, o esto también se aplica para el compilador D?
¿Hay alguna otra forma de convertir estos archivos .obj a código ASM legible, o debo recurrir a otros compiladores D (como GDC o LDC) para obtener salida ASM? Prefiero no hacerlo. DMD es creado por el propio fundador, estoy seguro de que implementó la mayoría de las funciones correctamente/en gran medida optimizado.
Entonces, ¿cómo puedo echar un vistazo al código ASM?
Gracias.
Además, DMD es el único compilador con soporte completo para D 2.0 – You