LINUX.ORG.RU

История изменений

Исправление no-such-file, (текущая версия) :

Это только в учебных теориях так

Это в любом древнем компиляторе так.

кодогенерация начиналась до того, как компилятор просмотрит все объявления

Нет, на размер фрейма вызов функции не влияет. Компилятор может захардкодить размер до вызова.

При обнаружении конца блока - ставим все накопленные закрывающие.

Во-первых придётся следить за контекстом, сколько блоков навставляли. Во-вторых каждый раз это новый фрейм, т.е. дополнительные инструкции для его создания. Т.о. такой подход ещё хуже чем два прохода. Ещё раз для пассажиров бронепоезда: это всё слишком дорого для 70-х когда считали каждый байт. А компиляция в два прохода не всегда возможна (например при вводе с перфокарт).

Исправление no-such-file, :

Это только в учебных теориях так

Это в любом древнем компиляторе так.

кодогенерация начиналась до того, как компилятор просмотрит все объявления

Нет, на размер фрейма вызов функции не влияет. Компилятор может захардкодить размер до вызова.

При обнаружении конца блока - ставим все накопленные закрывающие.

Во-первых придётся следить за контекстом, сколько блоков навставляли. Во-вторых каждый раз это новый фрейм, т.е. дополнительные инструкции для его создания. Т.о. такой подход ещё хуже чем для прохода. Ещё раз для пассажиров бронепоезда: это всё слишком дорого для 70-х когда считали каждый байт. А компиляция в два прохода не всегда возможна (например при вводе с перфокарт).

Исправление no-such-file, :

Это только в учебных теориях так

Это в любом древнем компиляторе так.

кодогенерация начиналась до того, как компилятор просмотрит все объявления

Нет, на размер фрейма вызов функции не влияет. Компилятор может захардкодить размер до вызова.

При обнаружении конца блока - ставим все накопленные закрывающие.

Во-первых придётся следить за контекстом, сколько блоков навставляли. Во-вторых каждый раз это новый фрейм, т.е. дополнительные инструкции для его создания. Т.о. такой подход ещё хуже чем для прохода. Ещё раз для пассажиров бронепоезда: это всё слишком дорого для 70-х когда считали каждый байт.

Исходная версия no-such-file, :

Это только в учебных теориях так

Это в любом древнем компиляторе так.

кодогенерация начиналась до того, как компилятор просмотрит все объявления

Нет, на размер фрейма вызов функции не влияет. Компилятор может захардкодить размер до вызова.

При обнаружении конца блока - ставим все накопленные закрывающие.

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