https://medium.com/@hahmtavoularisaleesha/view-pdf-principles-of-programming-languages-undergraduate-topics-in-computer-science-by-gilles-5ab7e82bcaf8