Content deleted Content added
Patelthekanu (talk | contribs) m Added links to Execution Model for all instances on this page. |
|||
(27 intermediate revisions by 24 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 input/output or thread behavior. But such 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 example, the behavior of calls to the POSIX thread library cannot be understood in terms of the C language. The reason is that the call invokes an
In [[parallel computing]], the
| url = http://compss.bsc.es/
| title = COMP Superscalar Programming Model
| author = Barcelona Supercomputing Center
}}</ref>
==References==
|