Итак, я предваряю это утверждением: любой язык, имеющий фиксированную семантику, которая может выражать вычислимые функции, реализуем.Я хеджирую свои ставки здесь, не говоря конкретно о том, что я имею в виду под «семантикой», но я обычно имею в виду что-то, что является либо операционной семантикой (большой или малый шаг), денотационной семантикой, либо аксиоматической семантикой.
Итак, с этим не уйдут два вопроса: существуют ли языки, которые вообще не имеют никакой семантики (и поэтому не могут быть реализованы каким-либо обычным способом), или есть языки, которые не имеютреализован, несмотря на то, что это возможно?
Последний случай, очевидно, верен, но не очень интересен.То, что люди придумывают язык, не означает, что это хорошая идея.Я мог бы думать о языке прямо сейчас, и у него не было бы компилятора или интерпретатора.Не очень интересно.
Первый случай немного интереснее.Существуют языки, которые на самом деле являются логикой и (через соответствие Карри-Ховарда ) доказательствами в этих логиках также являются программы (и наоборот).Если логика не разрешима, или если язык включает в себя какие-то конструкции более высокого порядка, которые не сильно нормализуются (например, некоторая очень выразительная система типов), то компиляция или интерпретация становится немного пугающим делом.Это может начать граничить с территорией «не компилирования или интерпретации», но это немного ложное утверждение, потому что, если мы можем заставить компьютер манипулировать этими символами, мы можем написать интерпретатор.Точно так же, если у него нет семантики, то, вероятно, он не работает с вычислимыми функциями - это, вероятно, просто какой-то естественный язык на тот момент, уже не «язык программирования».
Это особенно верно, потому что мы можемутверждают, что тезис Черч-Тьюринга говорит о том, что всегда можно написать интерпретатор для языка, полного по Тьюрингу, даже если этот интерпретатор окажется еще одной машиной Тьюринга.
Я вижунекоторые другие ответы сделали заявления о машинном языке.В машинном языке нет ничего волшебного, кроме того, что он имеет очень компактное представление.Можно было бы очень легко написать интерпретатор для него, и многие существуют (например, различные виртуальные машины, которые точно реализуют семантику исполнения аппаратного процессора в программном обеспечении).
Языки, которые соответствуют вашим критериям, скорее всего, будуткоторые не имеют семантики выполнения, т.е. они не выражают вычислимые функции.Вот пара языков с фиксированной семантикой, о которых я знаю, которые не могут напрямую выполняться ни интерпретатором, ни путем компиляции их во что-либо еще без обогащения этих программ дополнительной информацией :