On 2015-10-02 08:31, Per Nordlöw wrote:

Could explain what you mean by *lowering*, please?

"lowering" means that a feature is implemented using another feature. For example, "foreach" is lowered to a for-loop:

foreach(i ; 0 .. 10){}

Is lowered to:

for (int i = 0; i < 10; i++) {}

The compiler rewrites the AST of the foreach-loop to the same AST that the corresponding for-loop would have. After that lowering step, the compiler doesn't need to know anything about foreach-loops.

--
/Jacob Carlborg

Reply via email to