Domanda di colloquio di Arm

How does a compiler work? Which are its components? When do you use exceptions and when do you use assertions?