vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
vlkamov ([personal profile] vlkamov) wrote2022-03-27 02:52 pm

Сбросим Пушкина и Си с парохода современности

Не-не, ни один Председатель Си не пострадал, речь идет про C - более-менее выскоуровневом языке программирования. Услышал в интервью А.Столярова, что два студента начали кампанию против C и для начала создали сайт
http://cmustdie.com/
(http ! - давненько не встречал)

Они там "доказывают", что C-код на разных платформах может откомпилироваться и работать очень разными способами, а то и вообще не работать. Первый же пример
int x = 1;
x = x << sizeof(int) * 8;

В действительности данный фрагмент кода может быть обработан компилятором любым возможным и невозможным образом. Причина в следующем: согласно тексту стандарта языка Си битовый сдвиг на величину, большую или равную размеру выражения в битах, является неопределённым поведением.


Ребята, а вы не заметили, что язык, на котором вы пишете эти тексты, тоже может быть понят белковыми процессорами "очень разными возможными и невозможными способами" ?
И чтобы понимать друг друга правильно, стороны сверх "стандартов" языка используют дополнительные правила, иногда весьма жесткие.

То есть если вы хотите поразить респондента невразумительностью, то да, "дыр, бул, щил", как и процитированый пример - самое то. А если нужен определеный результат, выражайтесь яснее. С другой стороны, раз подобные выражения уже описаны в стандарте как неопределенные, то компилятор должен тупо пропускать это место (раз непределенное, тои не нужно определять) и сообщать об ошибке.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org