Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





Unifying Theories of Programming





Article  

Talk  



Language  

Watch  

Edit  


(Redirected from Unifying theories of programming)
 


Unifying Theories of Programming (UTP) in computer science 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 and is now freely available on the web.[1]

Theories

edit

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:

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

 

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

Relations

edit

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:

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

 

 

 

 

 

 

References

edit
  1. ^ Hoare, C. A. R.; Jifeng, He (April 1, 1998). Unifying Theories of Programming. Prentice Hall. p. 320. ISBN 978-0-13-458761-5. Retrieved 17 September 2014.
  • ^ Hoare, C.A.R. (April 1984). "Programming: Sorcery or science?". IEEE Software. 1 (2): 5–16. doi:10.1109/MS.1984.234042. S2CID 375578.
  • ^ Dijkstra, Edsger W.; Scholten, Carel S. (1990). Predicate calculus and program semantics. Texts and Monographs in Computer Science. Springer. ISBN 0-387-96957-8.
  • Further reading

    edit
    edit

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Unifying_Theories_of_Programming&oldid=1126267834"
     



    Last edited on 8 December 2022, at 12:16  





    Languages

     


    Español
    Hrvatski

     

    Wikipedia


    This page was last edited on 8 December 2022, at 12:16 (UTC).

    Content is available under CC BY-SA 4.0 unless otherwise noted.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Terms of Use

    Desktop