There are six basic computational models such as Turing, von Neumann, dataflow, applicative, object-based, predicate logic-based, etc. These models are known as basic models because they can be declared using a basic set of abstractions.
A hierarchy of subclasses can be defined for each of the basic models to any extent required. For instance, if the process abstraction is introduced into the von Neumann model, new subclasses can be defined according to whether all processes might have access to a global data space (Shared-memory subclass) or the processes could have their own local data spaces, and access remote data spaces by sending messages (message-passing subclass).
Computational models, languages, and architecture classes
|Computational Model||Language Class||Architecture Class|
|Turing||‘Type 0’ languages|
|von Neumann||Imperative||Von Neumann|
|Dataflow||Single Assignment (dataflow)||Dataflow|
|Predicate logic based||Logic Programming||So far unnamed|
It can indicate the basic computational models and their corresponding languages and architecture classes. The key feature of the basic computational models are −
Basic items of Computation − The first abstraction recognizes the basic items of computation. This is a requirement of the items the computation defines any type of computations that can be implemented on them.
For instance, in the Von Neumann computational model, the basic items of computations are data. This data will generally be described by named entities to be capable to differentiate between various multiple data items in the flow of computation. These named entities are generally known as variables in programming languages and are executed by memory or register addresses in architectures.
Problem description model − It refers to both the style and method of the problem description. The problem description style specifies how problems in a specific computational model are represented. The style is either procedural or declarative.
In a procedural style, the algorithm for clarifying the issue is stated. A specific solution is then declared in the design of an algorithm.
If a declarative style is used, all the facts and relationships applicable to the given problem have to be defined. There are two methods for representing this relationship and facts. The first usage functions, as in the applicative model of computation, while the second states the relationships and facts in the design of predicates, as in the predicate-logic-based computation model.
The other component of the problem description model is the problem description method. It is interpreted separately for the procedural and declarative styles. When using the procedural style the problem description model states how a solution to the given problem should be represented.
While using a declarative style, it determines how the problem itself should be defined. For instance, in the Von Neumann computational model, a problem solution is described as a sequence of instructions expressing an appropriate algorithm.
Execution Model − The last element of the computational model is the execution model. The first component declares the interpretation of the computation, which is powerfully associated with the problem description method. The possibility of the problem description method and the interpretation of the computation commonly regulate and infer each other.
The next component of the execution model specifies the execution semantics. This can be interpreted as a rule that specifies how a single execution step is to be implemented.