Допустим, у меня есть следующий код:
function add(a, b)
return a + b
end
num1 = add(2, 3)
num2 = add(4, 5)
num3 = add(6, 2)
…
Будет ли когда-нибудь компилятор когда-либо компилировать этот код, как если бы он был таким:
num1 = 2 + 3
num2 = 4 + 5
num3 = 6 + 2
…
Если так, есть лиспособ явно сказать им, что вы хотели бы, чтобы они это сделали?Если нет, то почему бы и нет, и есть ли способ заставить их сделать это в любом случае?
Причина, по которой мне любопытно, что такая возможность явно указывать им делать это, позволила бы организовывать код в функции, не жертвуяпроизводительность, но если это происходит автоматически, то, думаю, не о чем беспокоиться.
Поскольку «любой компилятор» настолько смехотворно широк, не стесняйтесь сузить его до выбора популярных языков.
Редактировать: Как поясняет комментарий ниже, компиляторы могут делать постоянное распространение.Рассмотрим следующий код:
function add(a, b)
return a + b
end
function doStuff(c)
num1 = add(2, c)
num2 = add(4, c)
num3 = add(6, c)
…
end
Будет ли у add()
когда-либо здесь возможность встраиваться?