Abstract
Assertions test expected properties of run-time values without disrupting the normal working of a program. So in a lazy functional language assertions should be lazy – not forcing evaluation, but only examining what is evaluated by other parts of the program. We explore the subtle semantics of lazy assertions and describe sequential and concurrent variants of a method for checking lazy assertions. All variants are implemented in Haskell.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
Claessen, K., Hughes, R.J.M.: QuickCheck: a lightweight tool for random testing of Haskell programs. In: Proc. 5th Intl. ACM Conference on Functional Programming, pp. 268–279. ACM Press, New York (2000)
Claessen, K., Runciman, C., Chitil, O., Hughes, J., Wallace, M.: Testing and tracing lazy functional programs using QuickCheck and Hat. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, p. 40. Springer, Heidelberg (2003)
S. L. Peyton Jones (ed.) Haskell 98: a non-strict, purely functional language. Journal of Functional Programming 13(1):special issue (2003)
Gill, A.: Debugging Haskell by observing intermediate datastructures. In: Proc. 2000 ACM SIGPLAN Haskell Workshop. Electronic Notes in Theoretical Computer Science, vol. 41(1) (2001)
McNeill, D.: Concurrent data-driven assertions in a lazy functional language. Technical report, BSc Project Dissertation, Department of Computer Science, University of York (2003)
Möller, B.: Applicative assertions. In: van de Snepscheut, J.L.A. (ed.) MPC 1989. LNCS, vol. 375, pp. 348–362. Springer, Heidelberg (1989)
Peyton Jones, S.L.: Tackling the awkward squad: monadic input/output, concurrency, exceptions and foreign-language calls in haskell. In: Hoare, C.A.R., Broy, M., Steinbruggen, R. (eds.) Engineering theories of software construction, pp. 47–96. IOS Press, Amsterdam (2001)
Jones, S.L.P., Marlow, S., Elliott, C.: Stretching the storage manager: Weak pointers and stable names in haskell. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 37–58. Springer, Heidelberg (2000)
Wallace, M., Chitil, O., Brehm, T., Runciman, C.: Multiple-view tracing for Haskell: a new Hat. In: ACM Workshop on Haskell (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chitil, O., McNeill, D., Runciman, C. (2004). Lazy Assertions. In: Trinder, P., Michaelson, G.J., Peña, R. (eds) Implementation of Functional Languages. IFL 2003. Lecture Notes in Computer Science, vol 3145. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27861-0_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-27861-0_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23727-3
Online ISBN: 978-3-540-27861-0
eBook Packages: Computer ScienceComputer Science (R0)