Source: https://info.uqam.ca/~privat/INF2170/notes_de_cours/ndc02-structure_fonctionnement.pdf