lqp

Andrew Tomazos

Nov 27, 2024 13:31

Тут у меня в ленте обсуждают скандальчик в одном из ISO-вских комитетов. Напомню, что я писал про ISO в 2007 году.

Но тут, надо сказать, играет свою роль также своеобразный, я бы сказал жульническим статус ISO как организации. По уставу ISO - только не падайте со стула - является общественной организацией, на равных правах с Amnesty international ( Read more... )

Leave a comment

Comments 3

jno2004 November 28 2024, 07:06:31 UTC

Есть с общим бэком (llvm), есть и со своими...

Reply


rdia November 30 2024, 00:11:58 UTC
Там сложнее, более-менее подробно ситуация изложена в "C Is Not a Low-level Language" за авторством David Chisnall и в "What every compiler writer should know about programmers or “Optimization” based on undefined behaviour hurts performance", автор M. Anton Ertl.

Суть в том, что абстрактная машина выполнения С примерно с конца 90х очень плохо моделирует реальную аппаратуру. Поэтому для современных машин С является языком вроде Пролога или Хаскеля - можно сделать отличные компиляторы, но разница между оптимизированным кодом и ментальной моделью чудовищная. Основная причина, почему сейчас абстрактная машина С плохо моделирует реальность в том, что у современных машин время доступа к памяти на 2-3 десятичных порядка отличается от времени доступа к регистрам процессора (во времена PDP эта разница была не очень высокой).

Теперь как это связано с UB: из-за того, что С - это больше не язык низкого уровня, приходится делать большие конвейеры оптимизации в компиляторах, а это приводит к тому, что с UB поступают так, как поступают.

Reply

lqp November 30 2024, 05:51:19 UTC

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

Reply


Leave a comment

Up