Yeah, you can think of it as translating the code “twice”, but that is not the 
whole picture.

You can break out the compilation process into any number of steps! Depends 
what you count as a “translation” step.

I think of nim being 1 step:

nim -> exe comes out.

But you can think of it as 2 steps:

nim -> C -> exe comes out.

But really C has its own steps, so maybe 4 steps:

nim -> C -> Assembler -> Linker -> exe comes out.

But really there are a ton of steps in the middle too, maybe 18 steps is more 
accurate:

Nim lexical Nim syntax Nim semantic Nim generics folding Nim macro expansion 
Nim code generator C preprocessor C lexical C syntax C intermediate code 
generator C code optimizer C target code generator Assembler preprocessor 
Assembler Lexical Assembler Syntax Assembler code generator Linker Exe comes 
out.

Is one step better than any other step? Does the number of steps matter? If you 
stuff compiles fast - and it does compile fast with nim - it does not matter at 
all.

How many “translation” steps does nim have? Depends how you count.

Reply via email to