Я задал бы вопрос о компиляторах, в частности, о том, как они работают. Я бы поверила, что компиляторы всегда будут компилировать один и тот же машинный код для кода, который написан по-разному синтаксически, но делает то же самое. Это правда? Сочетает ли функционально подобный код с одним и тем же результатом независимо от синтаксических различий?Эффективный компилятор каждый раз компилируется в один и тот же результат?
, например:
int number = 2;
бы компилировать то же самое, как:
int number;
number = 2;
или что
while True:
будет такой же, как (я использую питона здесь в качестве примера):
while 1:
Меня особенно интересуют компиляторы и интерпретаторы .net. компилятор JIT компилирует «во времени» одно и то же каждый раз? У интерпретаторов, таких как интерпретатор Python, «каждый раз интерпретируют» кодовый код?
спасибо!
как два для петель одинаковы? –
Что вы подразумеваете под «делает то же самое?» Последние две петли, которые вы на самом деле делаете, имеют разные вещи, поскольку, хотя они петли пять раз, значения i во время цикла различны. – templatetypedef
Возможно, что 'for (int i = 0; i <5; i ++)' может быть скомпилировано с тем же объектным кодом, что и for (int i = 1; i <= 5; i ++) 'при определенных обстоятельствах, но в общий случай, который вы * не хотите, хотите, поскольку 'i' будет иметь другой диапазон значений. Если 'i' будет использоваться внутри цикла, это будет иметь значение. –