46
Общий раздел / Re: Найдите ошибку, если она есть.
« : Сентябрь 30, 2016, 06:57:26 am »Твой тезис имел бы смысл, сформулируй ты его иначе: эта ошибка возможна в любом языке, для которого можно написать транслятор из с++, полностью сохранающий семантику исходной программы.Покажите мне язык где подобная ошибка не может возникнуть в принципе!Я только сейчас обратил внимание на категоричность запроса - не может возникнуть в принципе. Возможно, Алексей захотел пошутить, потому что, в принципе, в любом полном по Тьюрингу языке, такая ошибка может возникнуть.
Рассмотрим доказательство. Как мы уже выяснили, в С++ такая ошибка возможна, а значит, возможна везде, где можно создать виртуальную машину и компилятор С++ для неё, который соберёт приведённую программу с ошибкой. Это возможно в любом полном по Тьюрингу языке. Доказано.
Так что все эти ваши обероны, хаскели и даже русские коболы уязвимы.
Ну так для хаскелла, выходит, такого транслятора нельзя создать, потому что семантика не сохраняется.
Более того, подозреваю, что разные компиляторы с++ могут по разному компилировать эту программу, по разному понимая семантику этой программы. Где-то будет получаться эта ошибка, где-то не будет...