Конструкция языка имеет отношение к грамматике для входной части более высокого уровня и выходного кода более низкого уровня, который выполняется для цели.
Между ними есть абстрактное синтаксическое дерево.
Традиционно, если вы пишете выходной код более низкого уровня для выполнения на конкретной аппаратной платформе и его конкретном наборе команд, выходные данные «компилируются».
Если кто-то решит написать интерпретатор, выступающий в качестве цели, выходной код будет набором команд или байтовым кодом, которого ожидает интерпретатор.Дополнительный уровень косвенности означает, что интерпретируемый код может выполняться на любой аппаратной платформе, которая имеет реализацию интерпретатора.
Таким образом, утверждение верное, если мы называем «языковой дизайн» грамматикой и частью лексера / анализатора.
Это не совсем правильно, если мы говорим о генераторе кода.
Можно испустить определенный язык как интерпретируемым, так и скомпилированным, просто вызывая разные генераторы кода для обхода AST.
Так что, возможно, именно так размыто различие.Но я думаю, что это все еще там.