У меня был этот вопрос по заданию домашней работы (не беспокойтесь, уже сделано):
[Используя ваш любимый императивный язык, дайте пример каждый из...] Ошибка, которую компилятор не может ни поймать, ни легко сгенерировать код для (это должно быть нарушение определения языка, а не только ошибка программы)
Из "Прагматики программирования языка" (3-е изд.) Майкл Л. Скотт
Мой ответ, вызовите main
из main
, передав те же аргументы (на C и Java), вдохновленные этим. Но я лично чувствовал, что это будет просто семантическая ошибка.
Мне этот вопрос задает вопрос о том, как создать ошибку, которая не является ни синтаксической, ни семантической, и, честно говоря, я не могу думать о ситуации, когда она тоже не попадет.
Будет ли это код, который восприимчив к эксплуатации, например переполнение буфера (и, возможно, другая эксплуатация, о которой я никогда не слышал)? Какой-то вид ямы выпадает из структуры языка (IDK, но ленивая оценка/проверка слабого типа)? Я бы хотел сделать простой пример в Java/С++/C, но другие примеры приветствуются.