Significa simplesmente que a maior parte do núcleo da linguagem A está escrita na linguagem B. O "núcleo da linguagem A" pode diferir de idioma para idioma, mas, em termos gerais, você acha certo, significa compilador ou intérprete. O fator decisivo para escolher um idioma para escrever outro idioma é, como em quase todos os projetos, em quais idiomas os desenvolvedores estão mais familiarizados.
Dito isto, "a linguagem A está escrita na linguagem B" é uma simplificação excessiva para a maioria das línguas modernas. Se tomarmos o Python como exemplo, enquanto a implementação de referência, CPython , foi realmente escrita em C, existem implementações escritas em outras linguagens, como Jython (escrita em Java), IronPython (escrita em C #), PyPy ( escrita em Python), CLPython (escrito em Common Lisp), Stackless Python (escrito em C e Python) e Unladen Swallow (escrito em C ++).
Uma linguagem de programação é uma definição e, como mostra o exemplo do Python, não há realmente restrições sobre quais idiomas seu compilador, intérprete e bibliotecas podem ser escritos. E, é claro, também é possível que uma linguagem seja escrita em si mesma, através de um processo chamado bootstrapping .