A model and a programming language are different. The experience from the rp8601 project indicates that this is a must.
A programming language is often based on a particular execution mechanism. It contains limitations in order to allow computations from what is written, the syntax for structures is defined, there are several methods to represent variables.
Execution, in particular for applicative langauges, could be viewed as rewritings in order to eliminate alternatives and to use the more canonical equivalents. Strategies are used in order to eliminate infinite or large computations.
Here, the model should be considered as something very abstract:
The object is something concrete. It just exists. Some examples are "1", "thought", "water", "green", not as text rather for what they stand.
The property depicts whether something is extended or just a point. Examples are "meter" and "1.0m".
is the space used for the object. It could as traditionally contain several dimensions. Physical spaces and time could be dimensions. Several dimensions may be used for time! Time and physical space are treated in the same way - we human beeings are not used to that - however that's the fact!
The body is a selection in a space. Thus it contains mainy points. The selection may keep the dimension of the space or reduce it. A point, a plane, or a volume are selections with the dimension 0, 2 and 3 of any dimension.
The alternative is just what we call alternative. Somthing could be this or that. Alternatives do not need to be something discrete but could be transistions with infinite amount of alternatives. Example on discrete ones is 1, 2, 3 and continuous ones all values in the range 1.0
3.0. Other examples are easily found for programs, text, images, bodies etc.
This concept is redundancy and mathematical equivalents. One example from life is the contents of 3 copied pages that are equivalents, on the contrary the sheets with the black text are not equivalents but very different objects. A mathematical expression may have equivalents eg (let a = 3 in 2*a+1) = 2*3+1 = 6+1 = 7.
The abstraction is a sort of equivalence but not complete. One example is text. The character A has a logical meaning. However, on the page it is a figure of which there are many variants - size, style and font being different, that also depicts an A.
Mapping is an equivalent similar to coding. As an example an identifier could be denoted by "word2". The denotations for the calculation 2*a+1 are "2*a + 1", "+ *2 a 1", och "1 2 (var a) mul add". The string "
" is used here for plain text. Fore the skilled this concerns value and program forms.
A model is an abstract description for something. Compared to universe defined below, there are parts not being defined. The undefined parts may be identifiers or ranges. Thus model is related to procedures in Prolog and functions in lambda calculus - however it is not a programming concept, because it does not have any formal parameters. Instead the model is a set of alternatives.
This is all the above mentioned concepts together. The universe could resemble a sort of module, but is wider.
This is the most abstract concept. It could be considered a programming concept, but without identifiers the world would be hard! An object is referred to by an identifier. If an identifier is shown at several places one and the same object stands there. This is not the same as mathematical variables, however they are related.
The semantics for this type of model is studied.