Фраза «Я знаю это, когда я вижу это» является разговорным выражением, с помощью которого говорящий пытается классифицировать наблюдаемый факт или событие, хотя категория является субъективной или не имеет четко определенных параметров. Фраза была классно использована судьей Верховного суда США Поттером Стюартом для описания своего порогового теста на непристойность в деле Jacobellis v. Ohio (1964).
- «Я знаю это, когда вижу» статья в Википедии
Как непристойность, я думаю, что все мы знаем язык программирования, когда мы видим тот. Очевидно, что OP делает это, поскольку вы уже определили, что C ++ - это язык программирования, а HTML - нет.
Итак, какова цель преследования формального определения? Яннис уже дал краткое изложение того, почему наиболее популярное определение, полнота Тьюринга, ошибочно: оно приводит к категоризации, которая не поддается проверке «Я знаю это, когда вижу».
Я говорю вам, что любое определение, которое вы можете придумать, приведет к тому, что некоторые языки, которые мы все считаем не «языками программирования», будут классифицированы как таковые; или на некоторые языки , которые мы все ощущаем являются языки «программирования» будут классифицированы как не быть так.
Почему бы просто не пойти с вашей кишкой? Я использую простую эвристику: язык программирования - это язык, основной целью которого, на мой взгляд и согласно моим наблюдениям, является написание программ. Не размечать контент. Не преобразовывать XML. Написание программ общего назначения. Я предпочел бы просто знать это, когда увижу это, чем пытаться закрепить формальное определение, и я не вижу никакой подлинной ценности, которая может прийти от попытки такого определения.