Ответ на ваш вопрос: в начале любой язык подойдёт, а потом на самом создаваемом языке - так был написан Паскаль. Метод называется раскрутка.
По теме очень рекомендую Т.Пратт и М.Зелковиц - Разработка и реализация языков программирования (в продаже нет, но чтоб поняли, о чём я:
www.ozon.ru/context/detail/id/1158230).
Вот ещё нашёл вам:
trpl.narod.ru/t-books/_TRYAPBOOK_pdf.pdf