The rules that govern the structure of a command or programming language is called