Сначала язык придумывают. Решают для каких задач он нужен. Потом пишут программу-компилятор которая преобразует текст исходного языка в набор команд (машинный код процессора, байт-код виртуальной машины). Так реализованы Java, C, C++, Rust, Ассемблер. Языки могут быть и интерпретируемыми: то есть вместо программы-компилятора мы пишем программу-интерпретатор которая, в отличие от компилятора, сразу исполняет разобранную программу. Так реализованы, например, HTML и CSS. В браузер встроен интерпретатор HTML который читает код странички и рисует ее на экране. Еще есть смешанные схемы, когда исходный код разбирается интерпретатором и сразу преобразуется в машинный код процессора для увеличения скорости выполнения (JIT-компилятор). Так реализован JavaScript.