Si quieres aprender a escribir tus propios emuladores, tu lista de estudio debería tener este aspecto:
- C: sigue siendo el lenguaje más utilizado para implementar emuladores y tiempos de ejecución debido a su portabilidad y potencial de abuso intencional. Preste especial atención a los modismos estándar y los modismos de gestión de memoria.
- intérpretes de idiomas: implemente algunos lenguajes interpretados, como lisp o forward, y cómo estos intérpretes se pueden replantear como máquinas virtuales abstractas;
- máquinas virtuales abstractas: básicamente son emuladores sin todas las consideraciones de tiempo de funky de un sistema de múltiples chips, aunque existen ejemplos de este último;
- organización de hardware de computadora: preste especial atención al hardware de múltiples chips y en tiempo real, ya que los emuladores a menudo necesitan implementar varios procesadores diferentes para reflejar los chips especializados en el hardware original, así como los sumideros de tiempo para mantener todas las piezas en funcionamiento en paralelo – rastrear detalles específicos para los sistemas que le interesa emular;
- transcodificación, compilación de JIT: sobre todo de interés cuando se busca optimizar el rendimiento, pero aún hay cosas fascinantes que saber
- bases de código existentes : existen numerosas implementaciones de emulador de código abierto y de máquina virtual, y estudiarlas le enseñará mucho más de lo que cualquier libro o sitio web podría leer, experimentar, reflexionar, repetir.
Si ya sabes C, puedes centrarte en 6 y mezclar y combinar 2-5 a medida que encuentres el código que despierta tu interés.