{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,13]],"date-time":"2025-05-13T22:00:45Z","timestamp":1747173645672,"version":"3.40.5"},"reference-count":27,"publisher":"Cambridge University Press (CUP)","issue":"1","license":[{"start":{"date-parts":[[2019,7,2]],"date-time":"2019-07-02T00:00:00Z","timestamp":1562025600000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2020,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper presents<jats:italic>PFLP<\/jats:italic>, a library for probabilistic programming in the functional logic programming language Curry. It demonstrates how the concepts of a functional logic programming language support the implementation of a library for probabilistic programming. In fact, the paradigms of functional logic and probabilistic programming are closely connected. That is, language characteristics from one area exist in the other and vice versa. For example, the concepts of non-deterministic choice and call-time choice as known from functional logic programming are related to and coincide with stochastic memoization and probabilistic choice in probabilistic programming, respectively. We will further see that an implementation based on the concepts of functional logic programming can have benefits with respect to performance compared to a standard list-based implementation and can even compete with full-blown probabilistic programming languages, which we illustrate by several benchmarks.<\/jats:p>","DOI":"10.1017\/s1471068419000085","type":"journal-article","created":{"date-parts":[[2019,7,2]],"date-time":"2019-07-02T07:44:42Z","timestamp":1562053482000},"page":"147-175","source":"Crossref","is-referenced-by-count":2,"title":["Implementing a Library for Probabilistic Programming Using Non-strict Non-determinism"],"prefix":"10.1017","volume":"20","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3606-4543","authenticated-orcid":false,"given":"SANDRA","family":"DYLUS","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"JAN","family":"CHRISTIANSEN","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"FINN","family":"TEEGEN","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"56","published-online":{"date-parts":[[2019,7,2]]},"reference":[{"key":"S1471068419000085_ref3","doi-asserted-by":"crossref","first-page":"63","DOI":"10.1016\/j.entcs.2009.07.014","article-title":"A technique to build debugging tools for lazy functional logic languages.","volume":"246","author":"Bra\u00dfel","year":"2009","journal-title":"Electronic Notes in Theoretical Computer Science"},{"key":"S1471068419000085_ref17","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068410000566"},{"key":"S1471068419000085_ref2","doi-asserted-by":"publisher","DOI":"10.1145\/1721654.1721675"},{"key":"S1471068419000085_ref4","article-title":"Encapsulating non-determinism in functional logic computations.","volume":"2004","author":"Bra\u00dfel","year":"2004","journal-title":"Journal of Functional and Logic Programming"},{"key":"S1471068419000085_ref5","first-page":"1","volume-title":"Proceedings of the 20th International Conference on Functional and Constraint Logic Programming","author":"Bra\u00dfel","year":"2011"},{"key":"S1471068419000085_ref16","unstructured":"Hanus, M. 2017. PAKCS: The Portland Aachen Kiel Curry System. Published: Available at http:\/\/www.informatik.uni-kiel.de\/~pakcs\/."},{"key":"S1471068419000085_ref21","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-99906-7_9"},{"key":"S1471068419000085_ref24","doi-asserted-by":"publisher","DOI":"10.1145\/2804302.2804317"},{"key":"S1471068419000085_ref1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jsc.2004.12.007"},{"key":"S1471068419000085_ref7","doi-asserted-by":"crossref","first-page":"39","DOI":"10.1145\/1707790.1707797","volume-title":"Proceedings of the 4th ACM SIGPLAN Workshop on Programming Languages Meets Program Verification","author":"Christiansen","year":"2010"},{"key":"S1471068419000085_ref20","unstructured":"Nampally, A. and Ramakrishnan, C. R. 2015. Constraint-Based Inference in Probabilistic Logic Programs. In Workshop on Probabilistic Programming, 46\u201356."},{"volume-title":"Proceedings of the 19th International Workshop on Functional and (Constraint) Logic Programming","year":"2011","author":"Christiansen","key":"S1471068419000085_ref8"},{"key":"S1471068419000085_ref12","doi-asserted-by":"crossref","first-page":"11","DOI":"10.1145\/1596550.1596556","volume-title":"Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming","author":"Fischer","year":"2009"},{"key":"S1471068419000085_ref13","unstructured":"Goodman, N. D. , Mansinghka, V. K. , Roy, D. M. , Bonawitz, K. and Tenenbaum, J. B. 2008. Church: A Language for Generative Models. CoRR, 220\u2013229."},{"key":"S1471068419000085_ref23","doi-asserted-by":"publisher","DOI":"10.1145\/1411286.1411292"},{"key":"S1471068419000085_ref22","unstructured":"Paige, B. and Wood, F. 2014. A Compilation Target for Probabilistic Programming Languages. In Proceedings of the International Conference on Machine Learning. Beijing, China."},{"key":"S1471068419000085_ref25","doi-asserted-by":"crossref","first-page":"87","DOI":"10.1017\/S0960129505005074","article-title":"Distributing Probability over Non-determinism.","volume":"16","author":"Varacca","year":"2006","journal-title":"Mathematical Structures in Computer Science"},{"key":"S1471068419000085_ref26","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-15975-4_33"},{"key":"S1471068419000085_ref27","first-page":"1024","volume-title":"Proceedings of the Seventeenth International Conference on Artificial Intelligence and Statistics","author":"Wood","year":"2014"},{"key":"S1471068419000085_ref10","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-73305-0_1"},{"key":"S1471068419000085_ref6","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78969-7_23"},{"key":"S1471068419000085_ref14","unstructured":"Goodman, N. D. and Stuhlm\u00fcller, A. 2014. The Design and Implementation of Probabilistic Programming Languages. http:\/\/dippl.org."},{"key":"S1471068419000085_ref18","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03034-5_17"},{"key":"S1471068419000085_ref11","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796805005721"},{"key":"S1471068419000085_ref9","unstructured":"De Raedt, L. and Kimmig, A. 2013. Probabilistic programming concepts. arXiv:1312.4328 (preprint)."},{"volume-title":"Proceedings of the International Conference on Neural Information Processing Systems","year":"2009","author":"McCallum","key":"S1471068419000085_ref19"},{"key":"S1471068419000085_ref15","doi-asserted-by":"crossref","first-page":"167","DOI":"10.1145\/2593882.2593900","volume-title":"Proceedings of the on Future of Software Engineering","author":"Gordon","year":"2014"}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068419000085","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,1,9]],"date-time":"2021-01-09T03:51:11Z","timestamp":1610164271000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068419000085\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,7,2]]},"references-count":27,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2020,1]]}},"alternative-id":["S1471068419000085"],"URL":"https:\/\/doi.org\/10.1017\/s1471068419000085","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"type":"print","value":"1471-0684"},{"type":"electronic","value":"1475-3081"}],"subject":[],"published":{"date-parts":[[2019,7,2]]}}}