fbpx
Wikipedia

Divergence (computer science)

In computer science, a computation is said to diverge if it does not terminate or terminates in an exceptional state.[1]: 377  Otherwise it is said to converge. In domains where computations are expected to be infinite, such as process calculi, a computation is said to diverge if it fails to be productive (i.e. to continue producing an action within a finite amount of time).

Definitions edit

Various subfields of computer science use varying, but mathematically precise, definitions of what it means for a computation to converge or diverge.

Rewriting edit

In abstract rewriting, an abstract rewriting system is called convergent if it is both confluent and terminating.[2]

The notation tn means that t reduces to normal form n in zero or more reductions, t↓ means t reduces to some normal form in zero or more reductions, and t↑ means t does not reduce to a normal form; the latter is impossible in a terminating rewriting system.

In the lambda calculus an expression is divergent if it has no normal form.[3]

Denotational semantics edit

In denotational semantics an object function f : AB can be modelled as a mathematical function   where ⊥ (bottom) indicates that the object function or its argument diverges.

Concurrency theory edit

In the calculus of communicating sequential processes (CSP), divergence is a drastic situation where a process performs an endless series of hidden actions. For example, consider the following process, defined by CSP notation:

 

The traces of this process are defined as:

 

Now, consider the following process, which conceals the tick event of the Clock process:

 

By definition, P is called a divergent process.

See also edit

Notes edit

  1. ^ C.A.R. Hoare (Oct 1969). "An Axiomatic Basis for Computer Programming" (PDF). Communications of the ACM. 12 (10): 576–583. doi:10.1145/363235.363259. S2CID 207726175.
  2. ^ Baader & Nipkow 1998, p. 9.
  3. ^ Pierce 2002, p. 65.

References edit


divergence, computer, science, terminating, redirects, here, other, uses, termination, computer, science, computation, said, diverge, does, terminate, terminates, exceptional, state, otherwise, said, converge, domains, where, computations, expected, infinite, . Terminating redirects here For other uses see Termination In computer science a computation is said to diverge if it does not terminate or terminates in an exceptional state 1 377 Otherwise it is said to converge In domains where computations are expected to be infinite such as process calculi a computation is said to diverge if it fails to be productive i e to continue producing an action within a finite amount of time Contents 1 Definitions 1 1 Rewriting 1 2 Denotational semantics 1 3 Concurrency theory 2 See also 3 Notes 4 ReferencesDefinitions editVarious subfields of computer science use varying but mathematically precise definitions of what it means for a computation to converge or diverge Rewriting edit In abstract rewriting an abstract rewriting system is called convergent if it is both confluent and terminating 2 The notation t n means that t reduces to normal form n in zero or more reductions t means t reduces to some normal form in zero or more reductions and t means t does not reduce to a normal form the latter is impossible in a terminating rewriting system In the lambda calculus an expression is divergent if it has no normal form 3 Denotational semantics edit In denotational semantics an object function f A B can be modelled as a mathematical function f A B displaystyle f A cup perp rightarrow B cup perp nbsp where bottom indicates that the object function or its argument diverges Concurrency theory edit In the calculus of communicating sequential processes CSP divergence is a drastic situation where a process performs an endless series of hidden actions For example consider the following process defined by CSP notation C l o c k t i c k C l o c k displaystyle Clock tick rightarrow Clock nbsp The traces of this process are defined as traces C l o c k t i c k t i c k t i c k t i c k displaystyle operatorname traces Clock langle rangle langle tick rangle langle tick tick rangle cdots tick nbsp Now consider the following process which conceals the tick event of the Clock process P C l o c k t i c k displaystyle P Clock backslash tick nbsp By definition P is called a divergent process See also editInfinite loop Termination analysisNotes edit C A R Hoare Oct 1969 An Axiomatic Basis for Computer Programming PDF Communications of the ACM 12 10 576 583 doi 10 1145 363235 363259 S2CID 207726175 Baader amp Nipkow 1998 p 9 Pierce 2002 p 65 References editBaader Franz Nipkow Tobias 1998 Term Rewriting and All That Cambridge University Press ISBN 9780521779203 Pierce Benjamin C 2002 Types and Programming Languages MIT Press J M R Martin and S A Jassim 1997 How to Design Deadlock Free Networks Using CSP and Verification Tools A Tutorial Introduction in Proceedings of the WoTUG 20 nbsp This computer science article is a stub You can help Wikipedia by expanding it vte Retrieved from https en wikipedia org w index php title Divergence computer science amp oldid 1154139182, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.