Content deleted Content added
Citation bot (talk | contribs) Misc citation tidying. | Use this bot. Report bugs. | Suggested by AManWithNoPlan | #UCB_toolbar |
→cite book, journal, tweak cites | Alter: chapter-url, isbn. URLs might have been anonymized. Add: s2cid. Upgrade ISBN10 to 13. | Use this tool. Report bugs. | #UCB_Gadget |
||
Line 1:
'''Unifying Theories of Programming''' ('''UTP''') in [[computer science]] 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 and is now freely available on the web.<ref>{{cite book |author-link=C.A.R. Hoare |last1=Hoare|first1=C. A. R.|last2=Jifeng|first2=He|title=Unifying Theories of Programming|date=April 1, 1998|publisher=Prentice Hall
==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>
In UTP parlance, a ''theory'' is a model of a particular programming paradigm. A UTP theory is composed of three ingredients:
Line 19:
<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>
==Relations==
Line 57:
==Further reading==
*{{cite
*{{cite book |first1=Ana |last1=Cavalcanti
==External links==
|