Describir: Concepts and semantics of programming languages 2 :