Semantics in programming refers to the meaning of an instruction or statement in a programming language, as opposed to its syntax, which refers to the structure or grammar of the language). Semantics assigns computational meaning to valid strings in a programming language syntax, and describes the processes a computer follows when executing a program in that specific language). Semantics can be shown by describing the relationship between the input and output of a program, or an explanation of how the program will be executed on a certain platform, hence creating a model of computation). Semantics is a rigorous mathematical study of the meaning of programming languages, and is closely related to, and often crosses over with, the semantics of mathematical proofs).