Una rapida ricerca sul ruolo del compilatore mostra quanto segue:
A compiler is a special program that processes statements written in a particular programming language and turns them into machine language or "code" that a computer's processor uses.
Tuttavia, leggo anche che ogni lingua deve avere un sistema di runtime di destinazione e i programmi scritti in quella lingua vengono eseguiti nel contesto del sistema di runtime.
Aggiungendo i due, sembra che un compilatore converta i programmi in bit comprensibili dal sistema di runtime e il sistema di runtime agisce come agente che interpreta i bit, traducendoli nelle istruzioni del processore. È corretto? In caso contrario, in che altro modo sono correlati il compilatore e il sistema di runtime?
E se quanto sopra è corretto, implicherebbe quanto segue:
- due eseguibili compilati da programmi con la stessa logica scritta in lingue diverse non sarebbero identici
- una macchina media avrebbe dozzine di runtime che non sembra essere il caso.
Cosa mi manca qui?