Loading…

Exact Recursive Probabilistic Programming

Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also useful, but unfortunately, existing probabilistic programming la...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages 2023-04, Vol.7 (OOPSLA1), p.665-695, Article 98
Main Authors: Chiang, David, McDonald, Colin, Shan, Chung-chieh
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by cdi_FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173
cites cdi_FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173
container_end_page 695
container_issue OOPSLA1
container_start_page 665
container_title Proceedings of ACM on programming languages
container_volume 7
creator Chiang, David
McDonald, Colin
Shan, Chung-chieh
description Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also useful, but unfortunately, existing probabilistic programming languages do not perform exact inference on recursive calls over recursive data, forcing programmers to code many applications manually. We introduce a probabilistic language in which a wide variety of recursion can be expressed naturally, and inference carried out exactly. For instance, probabilistic pushdown automata and their generalizations are easy to express, and polynomial-time parsing algorithms for them are derived automatically. We eliminate recursive data types using program transformations related to defunctionalization and refunctionalization. These transformations are assured correct by a linear type system, and a successful choice of transformations, if there is one, is guaranteed to be found by a greedy algorithm.
doi_str_mv 10.1145/3586050
format article
fullrecord <record><control><sourceid>acm_cross</sourceid><recordid>TN_cdi_crossref_primary_10_1145_3586050</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>3586050</sourcerecordid><originalsourceid>FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173</originalsourceid><addsrcrecordid>eNpNj81LAzEUxINUsLTFu6fepIe1eZtk8_Yopa1CQSn1vLx8lUjXSrIV_e-1tIqnmWF-DAxj18DvAKSaCoUVV_yC9UupVQGyhN4_f8VGOb9yzqEWEkXdZ5P5J9luvPb2kHL88OPntDdk4i7mLtpj2iZq2_i2HbLLQLvsR2cdsJfFfDN7KFZPy8fZ_aqgUuuuKNGGygkVEAOgC1IR90I7bQKSBY9CBoCq9kZJA97qCqRTCAjGOANaDNjtademfc7Jh-Y9xZbSVwO8OZ5szid_yJsTSbb9g37Lb2CgSwM</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Exact Recursive Probabilistic Programming</title><source>ACM Digital Library Complete</source><creator>Chiang, David ; McDonald, Colin ; Shan, Chung-chieh</creator><creatorcontrib>Chiang, David ; McDonald, Colin ; Shan, Chung-chieh</creatorcontrib><description>Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also useful, but unfortunately, existing probabilistic programming languages do not perform exact inference on recursive calls over recursive data, forcing programmers to code many applications manually. We introduce a probabilistic language in which a wide variety of recursion can be expressed naturally, and inference carried out exactly. For instance, probabilistic pushdown automata and their generalizations are easy to express, and polynomial-time parsing algorithms for them are derived automatically. We eliminate recursive data types using program transformations related to defunctionalization and refunctionalization. These transformations are assured correct by a linear type system, and a successful choice of transformations, if there is one, is guaranteed to be found by a greedy algorithm.</description><identifier>ISSN: 2475-1421</identifier><identifier>EISSN: 2475-1421</identifier><identifier>DOI: 10.1145/3586050</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Formal language definitions ; Mathematics of computing ; Probability and statistics ; Recursion ; Software and its engineering</subject><ispartof>Proceedings of ACM on programming languages, 2023-04, Vol.7 (OOPSLA1), p.665-695, Article 98</ispartof><rights>Owner/Author</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173</citedby><cites>FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173</cites><orcidid>0000-0002-0435-4864 ; 0009-0000-8581-0237 ; 0000-0002-0339-6405</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://dl.acm.org/doi/pdf/10.1145/3586050$$EPDF$$P50$$Gacm$$Hfree_for_read</linktopdf><link.rule.ids>314,776,780,2275,27903,27904,40175,75974</link.rule.ids></links><search><creatorcontrib>Chiang, David</creatorcontrib><creatorcontrib>McDonald, Colin</creatorcontrib><creatorcontrib>Shan, Chung-chieh</creatorcontrib><title>Exact Recursive Probabilistic Programming</title><title>Proceedings of ACM on programming languages</title><addtitle>ACM PACMPL</addtitle><description>Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also useful, but unfortunately, existing probabilistic programming languages do not perform exact inference on recursive calls over recursive data, forcing programmers to code many applications manually. We introduce a probabilistic language in which a wide variety of recursion can be expressed naturally, and inference carried out exactly. For instance, probabilistic pushdown automata and their generalizations are easy to express, and polynomial-time parsing algorithms for them are derived automatically. We eliminate recursive data types using program transformations related to defunctionalization and refunctionalization. These transformations are assured correct by a linear type system, and a successful choice of transformations, if there is one, is guaranteed to be found by a greedy algorithm.</description><subject>Formal language definitions</subject><subject>Mathematics of computing</subject><subject>Probability and statistics</subject><subject>Recursion</subject><subject>Software and its engineering</subject><issn>2475-1421</issn><issn>2475-1421</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><recordid>eNpNj81LAzEUxINUsLTFu6fepIe1eZtk8_Yopa1CQSn1vLx8lUjXSrIV_e-1tIqnmWF-DAxj18DvAKSaCoUVV_yC9UupVQGyhN4_f8VGOb9yzqEWEkXdZ5P5J9luvPb2kHL88OPntDdk4i7mLtpj2iZq2_i2HbLLQLvsR2cdsJfFfDN7KFZPy8fZ_aqgUuuuKNGGygkVEAOgC1IR90I7bQKSBY9CBoCq9kZJA97qCqRTCAjGOANaDNjtademfc7Jh-Y9xZbSVwO8OZ5szid_yJsTSbb9g37Lb2CgSwM</recordid><startdate>20230406</startdate><enddate>20230406</enddate><creator>Chiang, David</creator><creator>McDonald, Colin</creator><creator>Shan, Chung-chieh</creator><general>ACM</general><scope>AAYXX</scope><scope>CITATION</scope><orcidid>https://orcid.org/0000-0002-0435-4864</orcidid><orcidid>https://orcid.org/0009-0000-8581-0237</orcidid><orcidid>https://orcid.org/0000-0002-0339-6405</orcidid></search><sort><creationdate>20230406</creationdate><title>Exact Recursive Probabilistic Programming</title><author>Chiang, David ; McDonald, Colin ; Shan, Chung-chieh</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Formal language definitions</topic><topic>Mathematics of computing</topic><topic>Probability and statistics</topic><topic>Recursion</topic><topic>Software and its engineering</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Chiang, David</creatorcontrib><creatorcontrib>McDonald, Colin</creatorcontrib><creatorcontrib>Shan, Chung-chieh</creatorcontrib><collection>CrossRef</collection><jtitle>Proceedings of ACM on programming languages</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Chiang, David</au><au>McDonald, Colin</au><au>Shan, Chung-chieh</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Exact Recursive Probabilistic Programming</atitle><jtitle>Proceedings of ACM on programming languages</jtitle><stitle>ACM PACMPL</stitle><date>2023-04-06</date><risdate>2023</risdate><volume>7</volume><issue>OOPSLA1</issue><spage>665</spage><epage>695</epage><pages>665-695</pages><artnum>98</artnum><issn>2475-1421</issn><eissn>2475-1421</eissn><abstract>Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also useful, but unfortunately, existing probabilistic programming languages do not perform exact inference on recursive calls over recursive data, forcing programmers to code many applications manually. We introduce a probabilistic language in which a wide variety of recursion can be expressed naturally, and inference carried out exactly. For instance, probabilistic pushdown automata and their generalizations are easy to express, and polynomial-time parsing algorithms for them are derived automatically. We eliminate recursive data types using program transformations related to defunctionalization and refunctionalization. These transformations are assured correct by a linear type system, and a successful choice of transformations, if there is one, is guaranteed to be found by a greedy algorithm.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/3586050</doi><tpages>31</tpages><orcidid>https://orcid.org/0000-0002-0435-4864</orcidid><orcidid>https://orcid.org/0009-0000-8581-0237</orcidid><orcidid>https://orcid.org/0000-0002-0339-6405</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 2475-1421
ispartof Proceedings of ACM on programming languages, 2023-04, Vol.7 (OOPSLA1), p.665-695, Article 98
issn 2475-1421
2475-1421
language eng
recordid cdi_crossref_primary_10_1145_3586050
source ACM Digital Library Complete
subjects Formal language definitions
Mathematics of computing
Probability and statistics
Recursion
Software and its engineering
title Exact Recursive Probabilistic Programming
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-24T07%3A17%3A53IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Exact%20Recursive%20Probabilistic%20Programming&rft.jtitle=Proceedings%20of%20ACM%20on%20programming%20languages&rft.au=Chiang,%20David&rft.date=2023-04-06&rft.volume=7&rft.issue=OOPSLA1&rft.spage=665&rft.epage=695&rft.pages=665-695&rft.artnum=98&rft.issn=2475-1421&rft.eissn=2475-1421&rft_id=info:doi/10.1145/3586050&rft_dat=%3Cacm_cross%3E3586050%3C/acm_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a277t-28cf6d35f88f18df45a0e37d7bf8ac1e834f1169eb54b1ec7614d58181bbdb173%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true