Abstract
Happen-before causal partial orders have been widely used in concurrent program verification and testing. This paper presents a parametric approach to happen-before causal partial orders. Existing variants of happen-before relations can be obtained as instances of the parametric framework. A novel causal partial order, called sliced causality, is then defined also as an instance of the parametric framework, which loosens the obvious but strict happen-before relation by considering static and dynamic dependence information about the program. Sliced causality has been implemented in a runtime predictive analysis tool for Java, named jPredictor, and the evaluation results show that sliced causality can significantly improve the capability of concurrent verification and testing.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Brightwell, G., Winkler, P.: Counting linear extensions is #p-complete. In: Annual ACM symposium on Theory of computing (STOC) (1991)
Chandy, K.M., Lamport, L.: Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. 3(1), 63–75 (1985)
Chen, F., Roşu, G.: Predicting concurrency errors at runtime using sliced causality. Technical Report UIUCDCS-R-2005-2660, Department of Computer Science at UIUC (2005)
Chen, F., Roşu, G.: Parametric and sliced causality. Technical Report UIUCDCS-R-2007-2807, Department of Computer Science at UIUC (2007)
Chen, F., Roşu, G.: Parametric and termination-sensitive control dependence - extended abstract. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, Springer, Heidelberg (2006)
Cooper, R., Marzullo, K.: Consistent detection of global predicates. In: ACM/ONR workshop on Parallel and distributed debugging (PADD) (1991)
Farchi, E., Nir, Y., Ur, S.: Concurrent bug patterns and how to test them. In: International Parallel and Distributed Processing Symposium (IPDPS) (2003)
Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9(3), 319–349 (1987)
Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: ACM SIGPLAN symposium on Principles of programming languages (POPL), ACM Press, New York (2005)
Gyimothy, T., Beszedes, A., Forgacs, I.: An efficient relevant slicing method for debugging. In: ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE), ACM Press, New York (1999)
Hoogeboom, H.J., Rozenberg, G.: Dependence graphs. In: Diekert, V., Rozenberg, G. (eds.) The Book of Traces, pp. 43–67. World Scientific, Singapore (1995)
Horwitz, S., Reps, T.W.: The use of program dependence graphs in software engineering. In: International Conference on Software Engineering (ICSE) (1992)
Krinke, J.: Static slicing of threaded programs. In: Workshop on Program Analysis for Software Tools and Engineering (PASTE) (1998)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Comm. of ACM 21(7), 558–565 (1978)
Netzer, R.H.B., Miller, B.P.: Improving the accuracy of data race detection. In: ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP), ACM Press, New York (1991)
O’Callahan, R., Choi, J.-D.: Hybrid dynamic data race detection. In: ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), ACM Press, New York (2003)
Podgurski, A., Clarke, L.A.: A formal model of program dependences and its implications for software testing, debugging, and maintenance. IEEE Transactions on Software Engineering 16(9), 965–979 (1990)
Sen, A., Garg, V.K.: Detecting temporal logic predicates in distributed programs using computation slicing. In: Papatriantafilou, M., Hunel, P. (eds.) OPODIS 2003. LNCS, vol. 3144, Springer, Heidelberg (2004)
Sen, K., Roşu, G., Agha, G.: Runtime safety analysis of multithreaded programs. In: ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE), ACM Press, New York (2003)
Sen, K., Roşu, G., Agha, G.: Detecting errors in multithreaded programs by generalized predictive analysis of executions. In: Steffen, M., Zavattaro, G. (eds.) FMOODS 2005. LNCS, vol. 3535, Springer, Heidelberg (2005)
Stoller, S.D., Unnikrishnan, L., Liu, Y.A.: Efficient detection of global properties in distributed systems using partial-order methods. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, Springer, Heidelberg (2000)
von Praun, C., Gross, T.R.: Object race detection. In: ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA), ACM Press, New York (2001)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, F., Roşu, G. (2007). Parametric and Sliced Causality. In: Damm, W., Hermanns, H. (eds) Computer Aided Verification. CAV 2007. Lecture Notes in Computer Science, vol 4590. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73368-3_27
Download citation
DOI: https://doi.org/10.1007/978-3-540-73368-3_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-73367-6
Online ISBN: 978-3-540-73368-3
eBook Packages: Computer ScienceComputer Science (R0)