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...
Saved in:
Published in: | Proceedings of ACM on programming languages 2023-04, Vol.7 (OOPSLA1), p.665-695, Article 98 |
---|---|
Main Authors: | , , |
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 |