Reticulocyte index: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Rjwilmsi
10.1038/475283a
 
Line 1: Line 1:
Andrew Simcox is the name his mothers and fathers gave him and he completely enjoys this name. Invoicing is what I do for a residing but I've always needed my personal business. North Carolina is the location he  free psychic reading ([http://si.dgmensa.org/xe/index.php?document_srl=48014&mid=c0102 straight from the source]) loves most but now he is considering other options. It's not a common thing but what I like performing is to climb but I don't have the time [http://breenq.com/index.php?do=/profile-1144/info/ accurate psychic predictions] recently.<br><br>Feel free to visit my homepage :: love psychic readings ([http://203.250.78.160/zbxe/?document_srl=1792908 simply click the up coming website page])
'''''Unifying Theories of Programming''''' (UTP) deals with [[program semantics]]. It shows how [[denotational semantics]], [[operational semantics]] and [[algebraic semantics (computer science)|algebraic semantics]] can be combined in a unified framework for the [[formal specification]], design and implementation of [[Computer program|program]]s and [[computer system]]s.
 
The book of this title by [[C.A.R. Hoare]] and [[He Jifeng]] was published in the [[Prentice Hall International Series in Computer Science]] in 1998.<ref>[[C.A.R. Hoare]] and [[He Jifeng]], ''Unifying Theories of Programming'', [[Prentice Hall International Series in Computer Science]], 1998. ISBN 0-13-458761-8.</ref>
 
== Theories ==
 
The semantic foundation of the UTP is the [[first-order predicate calculus]], augmented with fixed point constructs from second-order logic. Following the tradition of [[Eric Hehner]], [[Predicative programming|programs are predicates]] in the UTP, and there is no distinction between programs and specifications at the semantic level. In the words of [[C.A.R. Hoare|Hoare]]:
 
<blockquote>A computer program is identified with the strongest predicate describing every relevant observation that can be made of the behaviour of a computer executing that program.<ref>[[C.A.R. Hoare]], Programming: Sorcery or science? [[IEEE Software]], 1(2): 5–16, April 1984. ISSN 0740-7459. doi: 10.1109/MS.1984.234042.</ref></blockquote>
 
In UTP parlance, a ''theory'' is a model of a particular programming paradigm. A UTP theory is composed of three ingredients:
 
* an ''alphabet'', which is a set of variable names denoting the attributes of the paradigm that can be observed by an external entity;
* a ''signature'', which is the set of programming language constructs intrinsic to the paradigm; and
* a collection of ''healthiness conditions'', which define the space of programs that fit within the paradigm. These healthiness conditions are typically expressed as [[monotonic]] [[idempotent]] [[predicate transformer semantics|predicate transformers]].
 
[[Program refinement]] is an important concept in the UTP. A program <math>P_1</math> is refined by <math>P_2</math> if and only if every observation that can be made of <math>P_2</math> is also an observation of <math>P_1</math>.
The definition of refinement is common across UTP theories:
 
<math>P_1 \sqsubseteq P_2 \quad\text{if and only if}\quad \left[ P_2 \Rightarrow P_1 \right]</math>
 
where <math>\left[ X \right]</math> denotes<ref>[[Edsger W. Dijkstra]] and [[Carel S. Scholten]]. Predicate calculus and program semantics. Texts and Monographs in Computer Science. Springer-Verlag New York, Inc., New York, NY, USA, 1990. ISBN 0-387-96957-8.</ref> the [[universal closure]] of all variables in the alphabet.
 
== Relations ==
 
The most basic UTP theory is the alphabetised predicate calculus, which has no alphabet restrictions or healthiness conditions. The theory of relations is slightly more specialised, since a relation's alphabet may consist of only:
 
* undecorated variables (<math>v</math>), modelling an observation of the program at the start of its execution; and
* primed variables (<math>v'</math>), modelling an observation of the program at a later stage of its execution.
 
Some common language constructs can be defined in the theory of relations as follows:
 
* The skip statement, which does not alter the program state in any way, is modelled as the relational identity:
 
<math>\mathbf{skip} \equiv v' = v</math>
 
* The assignment of value <math>E</math> to a variable <math>a</math> is modelled as setting <math>a'</math> to <math>E</math> and keeping all other variables (denoted by <math>u</math>) constant:
 
<math>a := E  \equiv  a' = E \land u' = u</math>
 
* The [[sequential composition]] of two programs is just [[Composition of relations|relational composition]] of intermediate state:
 
<math>P_1 ; P_2  \equiv  \exists v_0 \bullet P_1 [ v_0 / v' ]  \land  P_2 [ v_0 / v ]</math>
 
* Non-deterministic choice between programs is their greatest lower bound:
 
<math>P_1 \sqcap P_2  \equiv  P_1 \lor P_2</math>
 
* [[Conditional_(programming)|Conditional choice]] between programs is written using infix notation:
 
<math>P_1 \triangleleft C \triangleright P_2  \equiv  ( C \land P_1 ) \lor ( \lnot C \land P_2 )</math>
 
* A semantics for [[recursion]] is given by the [[least fixed point]] <math>\mu \mathbf{F}</math> of a monotonic predicate transformer <math>\mathbf{F}</math>:
 
<math>\mu X \bullet \mathbf{F}(X) \equiv  \sqcap \left\{ X  \mid  \mathbf{F}(X) \sqsubseteq X \right\}</math>
 
== References ==
{{reflist}}
 
== Further reading ==
 
* Jim Woodcock and Ana Cavalcanti. A tutorial introduction to designs in Unifying Theories of Programming. In Integrated Formal Methods, volume 2999 of Lecture Notes in Computer Science, pages 40–66. Springer Berlin / Heidelberg, 2004. ISBN 978-3-540-21377-2. doi: [http://dx.doi.org/10.1007/978-3-540-24756-2_4 10.1007/978-3-540-24756-2_4]
 
* Ana Cavalcanti and Jim Woodcock. A tutorial introduction to CSP in Unifying Theories of Programming. In Refinement Techniques in Software Engineering, volume 3167 of Lecture Notes in Computer Science, pages 220–268. Springer Berlin / Heidelberg, 2006. doi: [http://dx.doi.org/10.1007/11889229_6 10.1007/11889229_6].
 
 
[[Category:1998 books]]
[[Category:Computer science books]]
[[Category:Formal methods publications]]

Revision as of 23:58, 3 December 2013

Unifying Theories of Programming (UTP) deals with program semantics. It shows how denotational semantics, operational semantics and algebraic semantics can be combined in a unified framework for the formal specification, design and implementation of programs and computer systems.

The book of this title by C.A.R. Hoare and He Jifeng was published in the Prentice Hall International Series in Computer Science in 1998.[1]

Theories

The semantic foundation of the UTP is the first-order predicate calculus, augmented with fixed point constructs from second-order logic. Following the tradition of Eric Hehner, programs are predicates in the UTP, and there is no distinction between programs and specifications at the semantic level. In the words of Hoare:

A computer program is identified with the strongest predicate describing every relevant observation that can be made of the behaviour of a computer executing that program.[2]

In UTP parlance, a theory is a model of a particular programming paradigm. A UTP theory is composed of three ingredients:

  • an alphabet, which is a set of variable names denoting the attributes of the paradigm that can be observed by an external entity;
  • a signature, which is the set of programming language constructs intrinsic to the paradigm; and
  • a collection of healthiness conditions, which define the space of programs that fit within the paradigm. These healthiness conditions are typically expressed as monotonic idempotent predicate transformers.

Program refinement is an important concept in the UTP. A program P1 is refined by P2 if and only if every observation that can be made of P2 is also an observation of P1. The definition of refinement is common across UTP theories:

P1P2if and only if[P2P1]

where [X] denotes[3] the universal closure of all variables in the alphabet.

Relations

The most basic UTP theory is the alphabetised predicate calculus, which has no alphabet restrictions or healthiness conditions. The theory of relations is slightly more specialised, since a relation's alphabet may consist of only:

  • undecorated variables (v), modelling an observation of the program at the start of its execution; and
  • primed variables (v), modelling an observation of the program at a later stage of its execution.

Some common language constructs can be defined in the theory of relations as follows:

  • The skip statement, which does not alter the program state in any way, is modelled as the relational identity:

skipv=v

  • The assignment of value E to a variable a is modelled as setting a to E and keeping all other variables (denoted by u) constant:

a:=Ea=Eu=u

P1;P2v0P1[v0/v]P2[v0/v]

  • Non-deterministic choice between programs is their greatest lower bound:

P1P2P1P2

P1CP2(CP1)(¬CP2)

μXF(X){XF(X)X}

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.

Further reading

  • Jim Woodcock and Ana Cavalcanti. A tutorial introduction to designs in Unifying Theories of Programming. In Integrated Formal Methods, volume 2999 of Lecture Notes in Computer Science, pages 40–66. Springer Berlin / Heidelberg, 2004. ISBN 978-3-540-21377-2. doi: 10.1007/978-3-540-24756-2_4
  • Ana Cavalcanti and Jim Woodcock. A tutorial introduction to CSP in Unifying Theories of Programming. In Refinement Techniques in Software Engineering, volume 3167 of Lecture Notes in Computer Science, pages 220–268. Springer Berlin / Heidelberg, 2006. doi: 10.1007/11889229_6.
  1. C.A.R. Hoare and He Jifeng, Unifying Theories of Programming, Prentice Hall International Series in Computer Science, 1998. ISBN 0-13-458761-8.
  2. C.A.R. Hoare, Programming: Sorcery or science? IEEE Software, 1(2): 5–16, April 1984. ISSN 0740-7459. doi: 10.1109/MS.1984.234042.
  3. Edsger W. Dijkstra and Carel S. Scholten. Predicate calculus and program semantics. Texts and Monographs in Computer Science. Springer-Verlag New York, Inc., New York, NY, USA, 1990. ISBN 0-387-96957-8.