Source: https://www.uqac.ca/tutoriel/guides/compilatio_guide.pdf