Understanding Programming Languages - Cliff B. Jones (Springer, 2020)