Describir: Mathematical foundations of programming language semantics :