Combining slicing and constraint solving for validation of measurement software

  • Gregor Snelting
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1145)


We show how to combine program slicing and constraint solving in order to obtain better slice accuracy. The method is used in a program analysis tool for the validation of computer-controlled measurement systems. It will be used by the Physikalisch-Technische Bundesanstalt for verification of legally required calibration standards. The paper describes how to generate and simplify path conditions based on program slices. An example shows that the technique can indeed increase slice precision and reveal manipulations of the so-called calibration path.


Program Slicing Constraint Solving Measurement System Software Validation Path Condition 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    H. Agrawal, R. DeMillo, E. Spafford: Dynamic slicing in the presence of unconstrained pointers. Proc. 4th Symposium on Testing, Analysis, and Verification. ACM 1991, pp. 60–73.Google Scholar
  2. 2.
    F. Benhamou, A. Colmerauer (Ed.): Constraint Logic Programming: Selected Research. MIT Press 1993.Google Scholar
  3. 3.
    J. Choi, M. Burke, P. Carini: Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. Proc. 20th Principles of Programming Languages, ACM 1993, pp. 232–245.Google Scholar
  4. 4.
    J. Choi, J. Ferrante: Static slicing in the presence of GOTO statements. ACM TOPLAS 16(1994), pp. 1087–1113.Google Scholar
  5. 5.
    F. Benhamou, W. Older: Applying Interval Arithmetic to Real, Integer and Bolean Constraints. To appear in Journal of Logic Programming (1995).Google Scholar
  6. 6.
    D. Denning, P. Denning: Certification of programs for secure information flow. Communications of the ACM 20(7), S. 504–513, Juli 1977.CrossRefGoogle Scholar
  7. 7.
    J. Field, G. Ramalingam, F. Tip: Parametric program slicing. Proc. 21th Symposium on Principles of Programming Languages, ACM 1995, S. 379–392.Google Scholar
  8. 8.
    S. Horwitz, P. Pfeiffer, T. Reps: Dependence analysis for pointer variables. Proc. SIGPLAN Programming Language Design and Implementation, ACM 1989, pp. 28–40.Google Scholar
  9. 9.
    S. Horwitz, T. Reps: The use of program dependence graphs in software engineering. Proc. 14th Int. Conference on Software Engineering, IEEE 1992, pp. 392–411.Google Scholar
  10. 10.
    J. Jaffar, S. Michaylow, P. Stuckey, R. Yap: The CLP(R) language and system. ACM TOPLAS 14(3), pp. 339–395 (Juli 1992).Google Scholar
  11. 11.
    J. Jaffar, M. Maher: Constraint logic programming: a survey. To appear in Journal of Logic Programming (1995).Google Scholar
  12. 12.
    W. Landi, B. Ryder: A safe approximation algorithm for interprocedural pointer aliasing. Proc. SIGPLAN Programming Language Design and Implementation, ACM 1992, pp. 93–103.Google Scholar
  13. 13.
    T. Reps, S. Horwitz, M. Sagiv, G. Rosay: Speeding up Slicing. Proc. 2nd SIGSOFT Foundations of Software Engineering, ACM 1994, pp. 11–20.Google Scholar
  14. 14.
    G. Smolka, M. Henz, J. Würz: Object-Oriented Concurrent Constraint Programming in Oz. DFKI Research Report 93-16.Google Scholar
  15. 15.
    F. Tip: A survey of program slicing techniques. Journal of Programming Languages 3 (1995), pp. 121–189.Google Scholar
  16. 16.
    M. Weiser: Program Slicing. IEEE Transactions on Software Engineering, 10(4), pp. 352–357, Juli 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Gregor Snelting
    • 1
  1. 1.Abteilung SoftwaretechnologieTechnische Universität BraunschweigBraunschweig

Personalised recommendations