Question d’entretien chez Arm

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