Advertisement

Useless-Code Elimination and Program Slicing for the Pi-Calculus

  • Naoki Kobayashi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2895)

Abstract

In this paper, we study program transformations called useless-code elimination and program slicing in the context of the π-calculus. The aim of useless-code elimination and program slicing is to simplify a program by eliminating useless or unimportant part of the program. We define formal correctness criteria for those transformations, present a type-based transformation method, and prove its correctness.

Keywords

Transformation Rule Secret Data Concurrent Program Type Environment Subtyping Relation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M.: Secrecy by typing in security protocols. Journal of the Association for Computing Machinery (JACM) 46(5), 749–786 (1999)zbMATHMathSciNetGoogle Scholar
  2. 2.
    Abadi, M., Banerjee, A., Heintze, N., Rieck, J.G.: A core calculus of dependency. In: Proceedings of ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pp. 147–169 (1999)Google Scholar
  3. 3.
    Berardi, S., Coppo, M., Damiani, F., Giannini, P.: Type-based useless-code elimination for functional programs. In: Taha, W. (ed.) SAIG 2000. LNCS, vol. 1924, pp. 172–189. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  4. 4.
    Cardelli, L., Ghelli, G., Gordon, A.D.: Secrecy and group creation. In: Palamidessi, C. (ed.) CONCUR 2000. LNCS, vol. 1877, pp. 365–379. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  5. 5.
    Cheng, J.: Slicing concurrent programs - a graph-theoretical approach. In: Fritzson, P.A. (ed.) AADEBUG 1993. LNCS, vol. 749, pp. 223–240. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  6. 6.
    Damiani, F.: Useless-code detection and elimination for pcf with algebraic data types. In: Girard, J.-Y. (ed.) TLCA 1999. LNCS, vol. 1581, pp. 83–97. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  7. 7.
    Gordon, D.A., Jeffrey, A.: Authenticity by typing for security protocols. In: Proceedings of the 14th IEEE Computer Security Foundations Workshop (CSFW 2001), pp. 145–159. IEEE Computer Society Press, Los Alamitos (2001)CrossRefGoogle Scholar
  8. 8.
    Harman, M., Hierons, R.M.: An overview of program slicing. Software Focus 2(3), 85–92 (2001)CrossRefGoogle Scholar
  9. 9.
    Hatcliff, J., Corbett, J., Dwyer, M., Sokolowski, S., Zheng, H.: A formal stufy of slicing for multi-threaded programs with jvm concurrency primitives. In: Cortesi, A., Filé, G. (eds.) SAS 1999. LNCS, vol. 1694, pp. 1–18. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  10. 10.
    Honda, K., Yoshida, N.: A uniform type structure for secure information flow. In: Proceedings of ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pp. 81–92 (2002)Google Scholar
  11. 11.
    Kobayashi, N.: Type-based useless variable elimination. Higher-Order and Symbolic Computation 14(2-3), 221–260 (2001)zbMATHCrossRefGoogle Scholar
  12. 12.
    Kobayashi, N.: A type system for lock-free processes. Information and Computation 177, 122–159 (2002)zbMATHMathSciNetGoogle Scholar
  13. 13.
    Kobayashi, N.: Type-based information flow analysis for the pi-calculus (2003) (submitted)Google Scholar
  14. 14.
    Krinke, J.: Static slicing of threaded programs. In: Proc. ACM SIGPLAN/ SIGFSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 1998), Montreal, Canada, June 1998. ACM SIGPLAN Notices, vol. 33(7), pp. 35–42 (1998)Google Scholar
  15. 15.
    Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, Cambridge (1999)zbMATHGoogle Scholar
  16. 16.
    Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML. The MIT Press, Cambridge (1997) (revised)Google Scholar
  17. 17.
    Nicola, R.D., Hennessy, M.C.B.: Testing equivalence for processes. Theoretical Computer Science 34, 83–133 (1984)zbMATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    Pottier, F.: A simple view of type-secure information flow in the π-calculus. In: Proceedings of the 15th IEEE Computer Security Foundations Workshop, pp. 320–330 (2002)Google Scholar
  19. 19.
    Reps, T., Turnidge, T.: Program specialization via program slicing. In: Danvy, O., Thiemann, P., Glück, R. (eds.) Dagstuhl Seminar 1996. LNCS, vol. 1110, pp. 409–429. Springer, Heidelberg (1996)Google Scholar
  20. 20.
    Sangiorgi, D.: The name discipline of uniform receptiveness. Theoretical Computer Science 221(1-2), 457–493 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Sangiorgi, D., Walker, D.: The Pi-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)zbMATHGoogle Scholar
  22. 22.
    Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3, 121–181 (1995)Google Scholar
  23. 23.
    Wand, M., Siveroni, I.: Constraint systems for useless variable elimination. In: Proceedings of ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pp. 291–302 (1999)Google Scholar
  24. 24.
    Zhao, J.: Slicing concurrent Java programs. In: Proceedings of the 7th IEEE International Workshop on Program Comprehension, May 1999, pp. 126–133 (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Naoki Kobayashi
    • 1
  1. 1.Department of Computer ScienceTokyo Institute of Technology 

Personalised recommendations