¿Cómo se escribe un compilador en lenguaje ensamblador?
Los programas son compilados por un compilador. Eso es seguro.
En cuanto a si el primer compilador del lenguaje X fue escrito directamente por 1010101010, no lo sé.
En términos generales, si desarrollas un compilador. Hay dos opciones.
1. Utilice yacc (o sus variantes) y Lex (análisis léxico): herramientas como LEX generarán plantillas gramaticales por sí mismas.
Se puede generar gramática léxica utilizando estas herramientas.
Luego, escriba usted mismo el código intermedio generado y el código de máquina generado.
Este suele ser el caso cuando se realizan experimentos similares sobre principios de compilación. Lo mismo ocurre con muchos compiladores.
2. Escribe tu propio análisis léxico y análisis de sintaxis. Puede consultar algunos compiladores de código abierto
El compilador estándar LCC-ANSI C99 es de código abierto.
O nasm, watcom y otros compiladores le dan a www.sf.net muchos compiladores de código abierto.
En general. Los compiladores de lenguajes de alto nivel son difíciles de escribir.
Si quieres escribir uno rápidamente
Puedes utilizar el primer método. Utilice herramientas para generar plantillas de vocabulario gramatical
Es más fácil escribir primero un compilador ensamblador simple.
Hay nasm nasm, jwasm (un compilador de código abierto que admite la sintaxis masm)
/
El resto es hacer el mapeo de palabras clave de reglas del lenguaje usted mismo.
Citando las palabras del maestro. El gráfico del lenguaje está completo y su compilador está a medio hacer.
El resto es trabajo mecánico.
Generar instrucciones x86 o arm.
Es difícil explicar el trabajo de optimización. Hazlo según tus necesidades.
Después de todo, es muy raro hacer un compilador XX y sin errores.
Puedes optar por utilizar un compilador existente para desarrollar el tuyo propio.
Luego espere hasta que su compilador admita una cantidad decente de directivas y madurez.
Reescribe el compilador con tu propia sintaxis.
Así que puedes desarrollar tu propio compilador usando tu propio compilador (¿no es malo?)
Da algunos otros ejemplos
Compilador Delphi desarrollado por C ++Constructor.
El IDE de C++ Builder está desarrollado utilizando Delphi.
El compilador de C++ Builder es desarrollado por C++ Builder; esta es la autopromoción del compilador. . Delphi y C++Builder ** comparten un optimizador de backend.
Las primeras versiones del compilador de Delphi fueron compiladas directamente por tasm. Se puede ver que las habilidades de ensamblaje de Anders son aún más poderosas (Anders también es el arquitecto central de VJ++, el proyecto C#.NET y la figura del alma más crítica).
El compilador VC++ se desarrolla utilizando VC++. Obviamente, esto indica que se inició el compilador.
Desarrollarte. Si el compilador puede compilarse a sí mismo. Básicamente se puede implementar cualquier función.
Puedes leer libros sobre el desarrollo de compiladores.
Principios de compilación de Long Shu (segunda edición)
Libro de Hu "Principios de compilación modernos: descripción del lenguaje C"
El diseño y desarrollo de la implementación avanzada del compilador de Whale Book
Recomiendo empezar con el Libro de las Ballenas. Luego está el Libro de los Dragones.
Luego está el Libro del Tigre, que describe muchas tecnologías de compilación modernas (como sugiere el nombre).
Por ejemplo, orientación a objetos, optimización, recolección de basura, etc.
Después de leer el libro de las ballenas, básicamente puedes implementar un compilador Tiny C simple.
Luego consolide en Longshu, lea las especificaciones del lenguaje y observe usted mismo algún código compilador ensamblador de código abierto.
Puedes intentar crear un compilador en lenguaje ensamblador tú mismo. Cuando la tecnología avanza.
Intente realizar un reconocimiento de sintaxis avanzado; consulte el código LCC para realizar ANSI C99.
Compilador en lenguaje C. Eso depende de su propio interés y comprensión.
Si quieres soportar C++, necesitas hacer mucha investigación conveniente sobre el compilador.
Multiplataforma como Java o lenguajes dinámicos como Ruby y Python.
También se describe en el Libro del Tigre. Por supuesto, esto depende de tus habilidades.