Execution model: Difference between revisions

Content deleted Content added
Ellil1 (talk | contribs)
m amended redirects from https://en.wikipedia.org/wiki/Language_interpretation to https://en.wikipedia.org/wiki/Interpreter_(computing) for specificity
Tomlzz1 (talk | contribs)
m reordered the sentences in paragraphs 1 and 2 for better grouping of related ideas
Line 1:
{{Program execution}}
 
An '''execution model''' specifies how work takes place. Every programming language has an execution model, which is specified as part of the language specification, and is implemented as part of the language implementation. The Executiondetails modelsin canthe alsospecification existof independentlyan fromexecution programmingmodel languages,cover examplesthings ofsuch whichas wouldwhat beis thean [[POSIXindivisible Threads]]unit libraryof work, and Hadoop'swhat Map-Reduceare [[programmingthe model]].constraints on Thethe implementationorder ofin anwhich executionthose modelunits canof bework viatake [[compiler]]place. For example, orthe [[Interpreter_(computing)|interpreter]]addition operation is an indivisible unit of work in many languages, and oftenin includessequential alanguages [[runtimesuch units of work are constrained to take place one after the system]]other.
 
Execution models can also exist independently from programming languages, examples of which would be the [[POSIX Threads]] library, and Hadoop's Map-Reduce [[programming model]]. The implementation of an execution model can be via [[compiler]], or [[Interpreter_(computing)|interpreter]], and often includes a [[runtime system]].
The details in the specification of an execution model cover things such as what is an indivisible unit of work and what are the constraints on the order in which those units of work take place. For example, the addition operation is an indivisible unit of work in many languages, and in sequential languages such units of work are constrained to take place one after the other.
 
In particular, the [[C (programming language)|C programming language]], has a concept called a statement. The spec says that a statement is a chunk of syntax that is terminated by a ";". The language spec then says that execution of the program proceeds statement by statement, which tells us something about the execution model of the language. It tells us that statements are indivisible units of work and that they proceed in the same order as their syntactic appearance in the code (except when a control statement such as IF or WHILE modifies the order). By stating the order in which statements are executed, the language spec has stated constraints on the order of performing units of work. The C language actually has an additional level to its execution model, which is the order of precedence. It states the rules for the order of operations within a single statement. The order of precedence can be viewed as stating the constraints on performing the units of work that are within a single statement. So, ";" and "IF" and "WHILE" cover constraints on the order of statements, while order of precedence covers constraints on work within a statement. Hence, these parts of the C language specification are stating the execution model of the C language.