Skip to main content
Log in

A verifiable low-level concurrent programming model based on colored Petri nets

  • Research Papers
  • Published:
Science China Information Sciences Aims and scope Submit manuscript

    We’re sorry, something doesn't seem to be working properly.

    Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.

Abstract

Concurrent programs written in a machine-level language are being used in many areas, but the verification of such programs brings various new challenges to the programming language community. Most of existing contributions on verifying the safety properties of concurrent programs are for high-level languages, specifications, or calculi in the literature. Due to the lack of abstraction at a low level, additional work is needed to extend these methods to machine-level language. This paper describes an approach to integrate Petri nets into low-level concurrent programs to form a new programming model (abstract machine). A program in the programming model is a restricted version of colored Petri net, with transitions colored by assembly codes for machine-level threads, and places colored by shared data consisting of memory locations or registers. Existing analysis and verification approaches for usual Petri nets can be applied indirectly for such a low-level concurrent program.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Xavier Leroy. Bytecode verification for Java smart card. Software Practice Experience, 2002, 32: 319–340

    Article  MATH  Google Scholar 

  2. Necula G C, Lee P. The design and implementation of a certifying compiler. In: PLDI’ 98 Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, New York: ACM, 1998. 333–344

    Chapter  Google Scholar 

  3. Morrisett G, Crary K, Glew N, et al. Stack-based typed assembly language. Comput Sci, 1998, 1473: 28–52

    Google Scholar 

  4. Morrisett G, Crary K, Glew N, et al. TALx86: A realistic typed assembly language. In: Proceedings of Workshop on Compiler Support for System Software, ACM SIGPLAN, 1999. 25–35

  5. Myers AC. Jflow: Practical mostly-static information flow control. In: POPL’ 99 Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York: ACM, 1999

    Google Scholar 

  6. Yu D C, Hamid N A, Shao Z. Building certified lbraries for PCC: Dynamic storage allocation. Sci Comput Programming, 2004, 50: 101–127

    Article  MathSciNet  MATH  Google Scholar 

  7. Burdy L, Huisman M, Pavlova M. Preliminary design of BML: A behavioral interface specification language for java bytecode. In: Proceedings of 10th International Conference, FASE Heidelberg: Springer-Verlag Berlin, 2007. 215–229

    Google Scholar 

  8. Sekar R, Venkatakrishnan V N, Basu S, et al. Model-carrying code: A practical approach for safe execution of untrusted applications. ACM SIGOPS Operating Syst Rev, 2003, 37: 15–28

    Article  Google Scholar 

  9. Yu DC, Shao Z. Verification of safety properties for concurrent assembly code. In: ICFP’ 04 Proceedings of the ninth ACM SIGPLAN International Conference on Functional Programming, Snowbird: ACM, 2004

    Google Scholar 

  10. Hoare C A R. Communicating sequential processes. Commun ACM, 1978, 21: 666–677

    Article  MATH  Google Scholar 

  11. Milner R. Communicating and Mobile Systems: The π-Calculus. Cambridge: Cambridge University Press, 1999

    Google Scholar 

  12. Resig W. Petri Nets: An Introduction, vol.4 of EATCS monographs on Theoretical Computer Science. Berlin: Springer, 1985

    Google Scholar 

  13. Chandy K M, Misra J. Parallel Program Design A Foundation. MA: Addison-Wesley Publishing Company, Inc., 1988

    MATH  Google Scholar 

  14. Jensen K. Coloured Petri Nets: Basic Concepts, Analysis Methods and Practical Use, Volume 1, EATCS Monographs in Computer Science. Heidelberg: Springer, 1992

    Google Scholar 

  15. Hoare C A R. An axiomatic basis for computer programming. Commun ACM, 1969, 12: 576–580

    Article  MATH  Google Scholar 

  16. O’Hearn P W, Reynolds J C, Yang H. Local reasoning about programs that alter data structures. Comput Sci Logic, 2001, 2142: 1–19

    Article  MathSciNet  Google Scholar 

  17. Reynolds J C. Separation logic: a logic for shared mutable data structures. In: 17th Annual IEEE Symposium on Logic in Computer Science, Copenhagen, 2002. 55–74

  18. Girault C, Valk R. Petri Nets for System Engineering: A Guide to Modeling, Verification, and Applications. Berlin: Springer, 2003

    MATH  Google Scholar 

  19. Liang Y Y. Study on verification of concurrent low-level programs based on certifying compilers. Dissertation ofMaster’s Degree, Tsinghua University, 2007

  20. Bornat R, Calcagno C, Peter O’Hearn, et al. Permission accounting in separation logic. In POPL’05 Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of programming languages. New York: ACM Press, 2005. 259–270

    Google Scholar 

  21. Hayman J, Winskel G. Independence and concurrent separation logic. In: 21st Annual IEEE Symposium on Logic in Computer Science, Seattle, 2006. 147–156

  22. O’Hearn P W. Resources, concurrency and local reasoning. Theor Comput Sci, 2007, 375: 271–307

    Article  MathSciNet  MATH  Google Scholar 

  23. Harris T, Cristal A, Unsal O S, et al. Transactional memory: An overview. IEEE Micro, 2007, 3: 8–29

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to ShengYuan Wang.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wang, S., Dong, Y. A verifiable low-level concurrent programming model based on colored Petri nets. Sci. China Inf. Sci. 54, 2013–2027 (2011). https://doi.org/10.1007/s11432-011-4300-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11432-011-4300-1

Keywords

Navigation