Skip to main content

A New Roadmap for Linking Theories of Programming

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 10134))

Abstract

Formal methods advocate the crucial role played by the algebraic approach in specification and implementation of programs. Traditionally, a top-down approach (with denotational model as its origin) links the algebra of programs with the denotational representation by establishment of the soundness and completeness of the algebra against the given model, while a bottom-up approach (a journey started from operational model) introduces a variety of bisimulations to establish the equivalence relation among programs, and then presents a set of algebraic laws in support of program analysis and verification. This paper proposes a new roadmap for linking theories of programming. Our approach takes an algebra of programs as its foundation, and generates both denotational and operational representations from the algebraic refinement relation.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge Press, Cambridge (1996)

    Book  MATH  Google Scholar 

  2. Abrial, J.-R.: Modelling in Event-B: System and Software Engineering. Cambridge Press, Cambridge (2010)

    Book  MATH  Google Scholar 

  3. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)

    MATH  Google Scholar 

  4. Henner, E.C.R.: Predicative programming, Part 1, 2. Commun. ACM 27(2), 134–151

    Google Scholar 

  5. Hennessy, M.C.: Algebraic Theory of Process. The MIT Press, Cambridge (1988)

    MATH  Google Scholar 

  6. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12, 576–583 (1969)

    Article  MATH  Google Scholar 

  7. Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Upper Saddle River (1985)

    MATH  Google Scholar 

  8. Hoare, C.A.R., et al.: Laws of programming. Commun. ACM 30(8), 672–686 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  9. Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall, Englewood Cliffs (1998)

    MATH  Google Scholar 

  10. Jones, C.B.: Systematic Software Development Using VDM. Prentice Hall, Englewood Cliffs (1986)

    MATH  Google Scholar 

  11. Milner, R.: Communicating and Mobile Systems: The \(\pi \)-Calculus. Cambridge Univ. Press, Cambridge (1999)

    MATH  Google Scholar 

  12. G.D. Plotkin. A structural approach to operational semantics. Technical report, DAIMI-FN-19, Aarhus University, Denmark, (1981)

    Google Scholar 

  13. Roscoe, A.W.: Laws of occam programming. Theoret. Comput. Sci. 60, 177–229 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  14. Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall (1998)

    Google Scholar 

  15. Spivey, J.M., Notation, T.Z.: A Reference Manual. Prentice Hall, Englewood Cliffs (1992)

    Google Scholar 

Download references

Acknowledgements

This work is supported by National Natural Science Foundation of China (Grant No. 61321064), Shanghai Knowledge Service Platform Project (No. ZF1213) and the NSFC-Zhejiang Joint Fund for the Integration of Industrialization and Informatization (No. U1509219).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to He Jifeng .

Editor information

Editors and Affiliations

Appendix

Appendix

Lemma 3.1

If \((s,\,G(Q))\rightarrow ^{*}(t,\,\epsilon )\), then either \((s,\,G(\bot ))\uparrow \) or \((s,\,G(\bot ))\rightarrow ^{*}(t,\,\epsilon )\).

Proof:

Induction on the structure of G.

Base case: \(G(Q)=Q\). The conclusion follows from From Rule (6)

$$\begin{aligned} (s,\,\bot )\rightarrow (s,\,\bot ) \end{aligned}$$

in Definition 3.2.

Inductive step:

  1. (1)

    \(G(Q)=G_1(Q)\sqcap G_2(Q)\).

    figure m
  2. (2)

    \(G(Q)=G_1(Q)\lhd b\rhd G_2(X)\)

    figure n
  3. (3)

    \(G(Q)=G_1(Q);G_2(Q)\)

    figure o
  4. (4)

    \(G(Q)=\mu X\bullet P(Q,\,X)\)

    figure p

Lemma 3.2

  1. (1)

    \((s,\,F(P))\uparrow \,\Rightarrow \,(s,\,\mathcal{F}(\bot ))\uparrow \)

  2. (2)

    \((s,\,F(\mu X\bullet P(X))\uparrow \,\Rightarrow \, (s,\,F(P(\mu X\bullet P(X))))\uparrow \)

Proof

(1). Based on induction on the structure of F.

Base case: \(F(X)=X\). The conclusion follows from the rule (6).

Inductive Step:

Proof of (2): Similar to (1).

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Jifeng, H. (2017). A New Roadmap for Linking Theories of Programming. In: Bowen, J., Zhu, H. (eds) Unifying Theories of Programming. UTP 2016. Lecture Notes in Computer Science(), vol 10134. Springer, Cham. https://doi.org/10.1007/978-3-319-52228-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-52228-9_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-52227-2

  • Online ISBN: 978-3-319-52228-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics