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...
Gespeichert in:
Veröffentlicht in: | ACM transactions on programming languages and systems 2006-11, Vol.28 (6), p.990-1034 |
---|---|
Hauptverfasser: | , , |
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&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 |