На чём написаны интерпретаторы и компиляторы разных языков?
JavaScript - это язык программирования. Его невозможно написать, пишут компиляторы, интерпретаторы(в данном случае наверное движки). Основные движки js:
SpiderMonkey - первый в истории движок js(написан на C++)
V8 - написан на C++ и js
Rhino - написан на java.

 но что выполнило работу интепретатора? это очень большая тема, невозможно здесь дать ответ.
Читайте лучше хабр:
Как работает JS: о внутреннем устройстве V8 и опти...
Введение в компиляторы, интерпретаторы и JIT’ы
Интерпретаторы байт-кодов своими руками

А лучше напишите в google, например, - "habr как работает интерпретатор"
Движок(интерпретатор) языка программирования тоже написан на языке программирования.  Т.е. есть например интерпретатор js или php, и ты внутри php файла, вызываешь функцию strlen(). В это время, вызывается, описанная в системных файлах php, функция на языке C.  В любом случае интерпретировать\компилировать все встроенные конструкции и функции языка, будут некий код на другом языке.  Но для того, чтобы глубже понять, что есть компилятор\интерпретатор, а что есть ЯП(спецификация), вам стоит почитать проф. литературу статьи, возможно посмотреть видео на эту тему.