Theory and Implementation of Programming Languages - Rababaah, Aaron (2019)