Content deleted Content added
Massimo Tisi (talk | contribs) No edit summary |
|||
(36 intermediate revisions by 32 users not shown) | |||
Line 1:
{{Short description|Area of research}}
{{About| the definition of the term 'programming model'| classification of programming languages| Programming paradigm}}
{{More citations needed|date=January 2025}}
A '''programming model''' is an [[execution model]] coupled to an [[API]] or a particular pattern of code. In this style, there are actually two execution models in play: the execution model of the base [[programming language]] and the execution model of the programming model. An example is [[Apache_Spark|Spark]] where [[Java_language| Java]] is the base language, and Spark is the programming model. Execution may be based on what appear to be [[Programming library|library]] calls. Other examples include the [[POSIX Threads]] library and Hadoop's [[MapReduce]].<ref>{{cite web
| url = https://www.ibm.com/
| title = What is MapReduce
| author = IBM
| website = [[IBM]]
}}</ref> In both cases, the [[execution model]] is different from that of the base language in which the code is written. For example, the [[C programming language]] has no execution model for thread behavior. But thread behavior can be invoked from C syntax, by making, what appears to be, a call to a normal C library.▼
|access-date=2020-04-19
▲}}</ref>
What distinguishes a programming model from a normal library is that the behavior of the call cannot be understood in terms of the language the program is written in. For
In [[parallel computing]], the execution model often must expose features of the hardware in order to achieve high performance. The large amount of variation in parallel hardware causes a concurrent need for a similarly large number of parallel execution models.
| url =
| title = COMP Superscalar Programming
| author = Barcelona Supercomputing Center
}}</ref>
==References==
|