Formal definition of programming languages