Trying to make it simple (here C0 and C1 are the same language but different versions):
new C0 programming lang => asm compiler for C0 => bin0 (executable) [eg: slow runtime]
C1 programming lang using C0 lang => runs on bin0 => bin1 (executable) [runtime is slow as we run on bin0 but we got a new instruction set bin1 which is fast, next time it's going to faster runtime]
writing standard library (eg: vector) for C1 in C1 programming lang => runs on bin1 (faster) => executable for standard library (vector)