Al implementar un intérprete, ¿es una buena o mala a cuestas fuera recolector de basura de la lengua de acogida?

StackOverflow https://stackoverflow.com/questions/2179501

Pregunta

Vamos a decir va a implementar un intérprete para un lenguaje GCed en un idioma que es GCed. Me parece que obtendría la recolección de basura de forma gratuita, siempre y cuando sean razonablemente cuidadosos con su diseño.

¿Es esto por lo general cómo se hace? ¿Hay buenas razones para no hacer esto?

¿Fue útil?

Solución

Lengua y tiempo de ejecución son dos cosas diferentes. Realmente no están relacionados en mi humilde opinión.

Por lo tanto, si su tiempo de ejecución de las ofertas existentes ya un GC, debe haber una buena razón para extender el tiempo de ejecución con otra GC. En los viejos tiempos, cuando las asignaciones de memoria en el sistema operativo eran lentos y caros, aplicaciones traído sus propios administradores de pila, que donde más eficientes en el tratamiento de pequeñas cantidades de datos. Esa fue una readon para añadir otra gestión de memoria a un tiempo de ejecución existente (o sistema operativo). Pero si estamos hablando de Java, .NET o menos -. Los que debe ser bueno y lo suficientemente eficiente para la mayoría de las tareas a mano

Sin embargo, es posible que desee crear una interfaz apropiada / API para las tareas de memoria y gestión de objetos (y otros), por lo que su lenguaje ( "invitado") en tiempo de ejecución podría ser implementado en al de otro tiempo de ejecución de host más adelante.

Otros consejos

Para un intérprete, no debería haber ningún problema con el uso de la GC de acogida, en mi humilde opinión, particularmente al principio. Como siempre se meta debe ser conseguir algo de trabajo, a continuación, hacer que funcione bien, entonces que sea rápido. Esto es particularmente cierto para los específicos de dominio (DSL) Idiomas donde el objetivo es una lengua pequeña. Para estos, la implementación de un GC completa sería una exageración.

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