Abstract
We provide a prototype implementation of a recording-based debugger for imperative probabilistic programs supporting randomised choice, conditioning, and loops. In order to handle different branches of execution, we take a semantics-based approach that employs weakest preexpectations and that introduces iteration limits for approximating the behaviour of potentially non-terminating loops, while giving hard bounds on the corresponding value without loop iteration limits.
The work presented in this tool paper is based on the Master’s thesis by Alexander Hoppen [5].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The same logic also applies to prob- and while-statements. For loops, the user can jump into the loop’s body or exit the loop.
- 2.
Here, if-, prob and while-statements are viewed as single statements that include their bodies.
References
Aggarwal, S.K., Kumar, M.S.: Debuggers for programming languages. In: The Compiler Design Handbook, pp. 297–329. CRC Press (2002)
Corporation, M.: Mozilla RR debugger (2020). https://rr-project.org
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Hoboken (1976)
Gordon, A.D., Henzinger, T.A., Nori, A.V., Rajamani, S.K.: Probabilistic programming. In: Future of Software Engineering, pp. 167–181. ACM (2014)
Hoppen, A.: Design and implementation of an interactive exploration tool for probabilistic programs. Master’s thesis, RWTH Aachen University, Germany (2020). https://publications.rwth-aachen.de/record/802809
Hoppen, A., Noll, T.: A debugger for probabilistic programs. Technical report, RWTH Aachen University (2020). https://moves.rwth-aachen.de/wp-content/uploads/probabilistic-debugger-report.pdf
Katoen, J.-P., Gretz, F., Jansen, N., Kaminski, B.L., Olmedo, F.: Understanding probabilistic programs. In: Meyer, R., Platzer, A., Wehrheim, H. (eds.) Correct System Design. LNCS, vol. 9360, pp. 15–32. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23506-6_4
McIver, A., Morgan, C., Morgan, C.C.: Abstraction, Refinement and Proof for Probabilistic Systems. Springer, New York (2005). https://doi.org/10.1007/b138392
Nandi, C., Grossman, D., Sampson, A., Mytkowicz, T., McKinley, K.S.: Debugging probabilistic programs. In: MAPL 2017, pp. 18–26. ACM (2017)
Noll, T.: A debugger for probabilistic programs, October 2021. https://git.rwth-aachen.de/moves/probabilistic-debugger
Telles, M., Hsieh, Y.: The Science of Debugging. Coriolis (2001)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Hoppen, A., Noll, T. (2021). A Debugger for Probabilistic Programs. In: Calinescu, R., Păsăreanu, C.S. (eds) Software Engineering and Formal Methods. SEFM 2021. Lecture Notes in Computer Science(), vol 13085. Springer, Cham. https://doi.org/10.1007/978-3-030-92124-8_16
Download citation
DOI: https://doi.org/10.1007/978-3-030-92124-8_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-92123-1
Online ISBN: 978-3-030-92124-8
eBook Packages: Computer ScienceComputer Science (R0)