Semantics
Semantically many statements differ from subroutine calls by their handling of parameters. Usually an actual subroutine parameter is evaluated once before the subroutine is called. This contrasts to many statement parameters which can be evaluated several times (e.g. the condition of a while loop) or not at all (e.g. the loop body of a while loop). Technically such statement parameters are closures which are executed when needed (see also lazy evaluation). When closure parameters are available for subroutines a statement like behaviour can be implemented by subroutines also (see Lisp). For languages without closure parameters the semantic description of a loop or conditional is usually beyond the capabilities of the language. Therefore standard documents often refer to semantic descriptions in natural language.
Read more about this topic: Statement (computer Science)