No side effects, no surprises.

Declarative statements

V is a declarative language, which means that it does not have expressions that describe how to do something. There are no conditional if-then-else branches, there are no subroutines, and there are no for-while-do loops.

The interpreter processes instructions without regard to the order of statements in the source files. Processing follows a predictable set of steps, proceeding from parsing, to evaluation, to validation. When needed, the processing of objects within these fixed steps may be explicitly ordered by an author using V's dependency grammar.

For those who are unfamiliar with the distinction between declarative and imperative, consider the CSS language, which is used for specifying the typeface, color, and layout of HTML documents: V, just like CSS, is a declarative language.

Because the language has no conditional flow statements, it is not Turing complete, that is, it can't be used to express any arbitrary computational problem. In practice though, this is less of a limitation than it may at first seem. The language does provide for the general purpose evaluation and validation of expressions.