Adaptive functional programming

We present techniques for incremental computing by introducing adaptive functional programming. As an adaptive program executes, the underlying system represents the data and control dependences in the execution in the form of a dynamic dependence graph . When the input to the program changes, a cha...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:ACM transactions on programming languages and systems 2006-11, Vol.28 (6), p.990-1034
Hauptverfasser: ACAR, Umut A, BLELLOCH, Guy E, HARPER, Robert
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 1034
container_issue 6
container_start_page 990
container_title ACM transactions on programming languages and systems
container_volume 28
creator ACAR, Umut A
BLELLOCH, Guy E
HARPER, Robert
description We present techniques for incremental computing by introducing adaptive functional programming. As an adaptive program executes, the underlying system represents the data and control dependences in the execution in the form of a dynamic dependence graph . When the input to the program changes, a change propagation algorithm updates the output and the dynamic dependence graph by propagating changes through the graph and re-executing code where necessary. Adaptive programs adapt their output to any change in the input, small or large.We show that adaptivity techniques are practical by giving an efficient implementation as a small ML library. The library consists of three operations for making a program adaptive, plus two operations for making changes to the input and adapting the output to these changes. We give a general bound on the time it takes to adapt the output, and based on this, show that an adaptive Quicksort adapts its output in logarithmic time when its input is extended by one key.To show the safety and correctness of the mechanism we give a formal definition of AFL, a call-by-value functional language extended with adaptivity primitives. The modal type system of AFL enforces correct usage of the adaptivity mechanism, which can only be checked at run time in the ML library. Based on the AFL dynamic semantics, we formalize thechange-propagation algorithm and prove its correctness.
doi_str_mv 10.1145/1186632.1186634
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_29629675</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1183538531</sourcerecordid><originalsourceid>FETCH-LOGICAL-c370t-4360177ba375060db3d50b9cccef440583aad60fd419d8128487fce233d148933</originalsourceid><addsrcrecordid>eNpdkElLA0EQhRtRMC5njwZBb5NUTe_HENwg4EXPQ6eXMGGW2D0j-O9tyYAgFLzL915VPUJuEBaIjC8RlRC0XByVnZAZcq4KxjU9JTNAwQrQJT8nFyntAQAVVzNyu3LmMNRffh7Gzg5135lmfoj9Lpq2rbvdFTkLpkn-etJL8vH0-L5-KTZvz6_r1aawVMJQMCoApdwaKjkIcFvqOGy1tdYHxoAraowTEBxD7RSWiikZrC8pdciUpvSSPBxz8-7P0aehautkfdOYzvdjqkot8kiewbt_4L4fY746M8glE8gwQ8sjZGOfUvShOsS6NfG7Qqh-26qmtiZl2XE_xZpkTROi6Wyd_mwqv6mppj89DmaG</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>215746141</pqid></control><display><type>article</type><title>Adaptive functional programming</title><source>ACM Digital Library Complete</source><creator>ACAR, Umut A ; BLELLOCH, Guy E ; HARPER, Robert</creator><creatorcontrib>ACAR, Umut A ; BLELLOCH, Guy E ; HARPER, Robert</creatorcontrib><description>We present techniques for incremental computing by introducing adaptive functional programming. As an adaptive program executes, the underlying system represents the data and control dependences in the execution in the form of a dynamic dependence graph . When the input to the program changes, a change propagation algorithm updates the output and the dynamic dependence graph by propagating changes through the graph and re-executing code where necessary. Adaptive programs adapt their output to any change in the input, small or large.We show that adaptivity techniques are practical by giving an efficient implementation as a small ML library. The library consists of three operations for making a program adaptive, plus two operations for making changes to the input and adapting the output to these changes. We give a general bound on the time it takes to adapt the output, and based on this, show that an adaptive Quicksort adapts its output in logarithmic time when its input is extended by one key.To show the safety and correctness of the mechanism we give a formal definition of AFL, a call-by-value functional language extended with adaptivity primitives. The modal type system of AFL enforces correct usage of the adaptivity mechanism, which can only be checked at run time in the ML library. Based on the AFL dynamic semantics, we formalize thechange-propagation algorithm and prove its correctness.</description><identifier>ISSN: 0164-0925</identifier><identifier>EISSN: 1558-4593</identifier><identifier>DOI: 10.1145/1186632.1186634</identifier><identifier>CODEN: ATPSDT</identifier><language>eng</language><publisher>New York, NY: Association for Computing Machinery</publisher><subject>Applied sciences ; Computer science; control theory; systems ; Exact sciences and technology ; Libraries ; Programming languages ; Software</subject><ispartof>ACM transactions on programming languages and systems, 2006-11, Vol.28 (6), p.990-1034</ispartof><rights>2007 INIST-CNRS</rights><rights>Copyright Association for Computing Machinery Nov 2006</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c370t-4360177ba375060db3d50b9cccef440583aad60fd419d8128487fce233d148933</citedby><cites>FETCH-LOGICAL-c370t-4360177ba375060db3d50b9cccef440583aad60fd419d8128487fce233d148933</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,776,780,27903,27904</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=18370939$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><creatorcontrib>ACAR, Umut A</creatorcontrib><creatorcontrib>BLELLOCH, Guy E</creatorcontrib><creatorcontrib>HARPER, Robert</creatorcontrib><title>Adaptive functional programming</title><title>ACM transactions on programming languages and systems</title><description>We present techniques for incremental computing by introducing adaptive functional programming. As an adaptive program executes, the underlying system represents the data and control dependences in the execution in the form of a dynamic dependence graph . When the input to the program changes, a change propagation algorithm updates the output and the dynamic dependence graph by propagating changes through the graph and re-executing code where necessary. Adaptive programs adapt their output to any change in the input, small or large.We show that adaptivity techniques are practical by giving an efficient implementation as a small ML library. The library consists of three operations for making a program adaptive, plus two operations for making changes to the input and adapting the output to these changes. We give a general bound on the time it takes to adapt the output, and based on this, show that an adaptive Quicksort adapts its output in logarithmic time when its input is extended by one key.To show the safety and correctness of the mechanism we give a formal definition of AFL, a call-by-value functional language extended with adaptivity primitives. The modal type system of AFL enforces correct usage of the adaptivity mechanism, which can only be checked at run time in the ML library. Based on the AFL dynamic semantics, we formalize thechange-propagation algorithm and prove its correctness.</description><subject>Applied sciences</subject><subject>Computer science; control theory; systems</subject><subject>Exact sciences and technology</subject><subject>Libraries</subject><subject>Programming languages</subject><subject>Software</subject><issn>0164-0925</issn><issn>1558-4593</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2006</creationdate><recordtype>article</recordtype><recordid>eNpdkElLA0EQhRtRMC5njwZBb5NUTe_HENwg4EXPQ6eXMGGW2D0j-O9tyYAgFLzL915VPUJuEBaIjC8RlRC0XByVnZAZcq4KxjU9JTNAwQrQJT8nFyntAQAVVzNyu3LmMNRffh7Gzg5135lmfoj9Lpq2rbvdFTkLpkn-etJL8vH0-L5-KTZvz6_r1aawVMJQMCoApdwaKjkIcFvqOGy1tdYHxoAraowTEBxD7RSWiikZrC8pdciUpvSSPBxz8-7P0aehautkfdOYzvdjqkot8kiewbt_4L4fY746M8glE8gwQ8sjZGOfUvShOsS6NfG7Qqh-26qmtiZl2XE_xZpkTROi6Wyd_mwqv6mppj89DmaG</recordid><startdate>20061101</startdate><enddate>20061101</enddate><creator>ACAR, Umut A</creator><creator>BLELLOCH, Guy E</creator><creator>HARPER, Robert</creator><general>Association for Computing Machinery</general><scope>IQODW</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>JQ2</scope><scope>7SC</scope><scope>8FD</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>20061101</creationdate><title>Adaptive functional programming</title><author>ACAR, Umut A ; BLELLOCH, Guy E ; HARPER, Robert</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c370t-4360177ba375060db3d50b9cccef440583aad60fd419d8128487fce233d148933</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2006</creationdate><topic>Applied sciences</topic><topic>Computer science; control theory; systems</topic><topic>Exact sciences and technology</topic><topic>Libraries</topic><topic>Programming languages</topic><topic>Software</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>ACAR, Umut A</creatorcontrib><creatorcontrib>BLELLOCH, Guy E</creatorcontrib><creatorcontrib>HARPER, Robert</creatorcontrib><collection>Pascal-Francis</collection><collection>CrossRef</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>ACM transactions on programming languages and systems</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>ACAR, Umut A</au><au>BLELLOCH, Guy E</au><au>HARPER, Robert</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Adaptive functional programming</atitle><jtitle>ACM transactions on programming languages and systems</jtitle><date>2006-11-01</date><risdate>2006</risdate><volume>28</volume><issue>6</issue><spage>990</spage><epage>1034</epage><pages>990-1034</pages><issn>0164-0925</issn><eissn>1558-4593</eissn><coden>ATPSDT</coden><abstract>We present techniques for incremental computing by introducing adaptive functional programming. As an adaptive program executes, the underlying system represents the data and control dependences in the execution in the form of a dynamic dependence graph . When the input to the program changes, a change propagation algorithm updates the output and the dynamic dependence graph by propagating changes through the graph and re-executing code where necessary. Adaptive programs adapt their output to any change in the input, small or large.We show that adaptivity techniques are practical by giving an efficient implementation as a small ML library. The library consists of three operations for making a program adaptive, plus two operations for making changes to the input and adapting the output to these changes. We give a general bound on the time it takes to adapt the output, and based on this, show that an adaptive Quicksort adapts its output in logarithmic time when its input is extended by one key.To show the safety and correctness of the mechanism we give a formal definition of AFL, a call-by-value functional language extended with adaptivity primitives. The modal type system of AFL enforces correct usage of the adaptivity mechanism, which can only be checked at run time in the ML library. Based on the AFL dynamic semantics, we formalize thechange-propagation algorithm and prove its correctness.</abstract><cop>New York, NY</cop><pub>Association for Computing Machinery</pub><doi>10.1145/1186632.1186634</doi><tpages>45</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0164-0925
ispartof ACM transactions on programming languages and systems, 2006-11, Vol.28 (6), p.990-1034
issn 0164-0925
1558-4593
language eng
recordid cdi_proquest_miscellaneous_29629675
source ACM Digital Library Complete
subjects Applied sciences
Computer science
control theory
systems
Exact sciences and technology
Libraries
Programming languages
Software
title Adaptive functional programming
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-22T07%3A53%3A41IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Adaptive%20functional%20programming&rft.jtitle=ACM%20transactions%20on%20programming%20languages%20and%20systems&rft.au=ACAR,%20Umut%20A&rft.date=2006-11-01&rft.volume=28&rft.issue=6&rft.spage=990&rft.epage=1034&rft.pages=990-1034&rft.issn=0164-0925&rft.eissn=1558-4593&rft.coden=ATPSDT&rft_id=info:doi/10.1145/1186632.1186634&rft_dat=%3Cproquest_cross%3E1183538531%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=215746141&rft_id=info:pmid/&rfr_iscdi=true