Intermediate Code Generation is machine independent. Whereas, Target Code Generation or simply Code Generation is machine dependent because it has to finally convert the pure High Level Language compiler received initially to assembly code for an Assembler to process. Since Assemblers themselves are machine/platform dependent, Code Generation, whose output is input to Assemblers, is also machine dependent.