If a data object is to be modified, a copy of it is made instead. However, application of the strict dataflow principles would result in performance costs when complex data structures are involved. For the sake of efficiency, Prograph implements a modified version of dataflow principles. It is claimed that the visual paradigm and the data-driven semantics of the language make the logic and the evaluation more understandable and help the programmer to grasp the potential for parallelism. An object encapsulates both state and the operations to manipulate that state.
Objects are instances of classes.
A class is an abstract template specifying the attributes and the operations associated with all its instances. Alternatively, they can be instances of user-defined classes. Thus a distinction is made between a static set of Prograph primitive types and an extensible class hierarchy. Prograph is a dynamically typed language. In dynamically typed languages, the type information is not associated with variables but with values.