Simplemente significa que la mayor parte del núcleo del lenguaje A está escrito en el lenguaje B. Qué "núcleo del lenguaje A" puede diferir de un idioma a otro, pero en términos generales, adivina correctamente, significa que es compilador o intérprete. El factor decisivo para elegir un idioma para escribir otro idioma es, como en casi todos los proyectos, con qué idiomas están más familiarizados los desarrolladores.
Dicho esto, "el idioma A está escrito en el idioma B" es una simplificación excesiva para la mayoría de los idiomas modernos. Si tomamos Python como ejemplo, mientras que la implementación de referencia, CPython , fue escrita en C, hay implementaciones escritas en otros lenguajes, como Jython (escrito en Java), IronPython (escrito en C #), PyPy (escrito en Python), CLPython (escrito en Common Lisp), Stackless Python (escrito en C y Python) y Unladen Swallow (escrito en C ++).
Un lenguaje de programación es una definición, y como muestra el ejemplo de Python, en realidad no hay restricciones sobre en qué idiomas se pueden escribir su compilador, intérprete y bibliotecas. Y, por supuesto, también es posible que un lenguaje se escriba en sí mismo, a través de un proceso llamado bootstrapping .