{"title":"Recursive Convergence","authors":"Amy MacDonough","doi":"10.1145/3017680.3022457","DOIUrl":null,"url":null,"abstract":"Ideally, we would always be able to write clear, concise programs and have them run quickly. One major impediment is the redundancy which can occur in direct recursive solutions. In some cases, this means writing a loop even if the programmer is more comfortable thinking in terms of recursion. In other cases the impact on code is even more dramatic, and in these cases most programmers choose to sacrifice clarity in exchange for improved asymptotic complexity. There exist program transformation techniques that would allow us to write idiomatic recursive programs without losing efficiency. One such transformation is the \"tupling\" transformation, which can and has been implemented as an automatic compiler optimization. This transformation is, however, only applicable to a narrow class of problems. We are exploring related transformations, such as tabulation, which can helpfully be applied to a wider class of recursive programs, and attempting to answer the question of when these transformation techniques are most useful to programmers aiming to balance program clarity with performance.","PeriodicalId":344382,"journal":{"name":"Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education","volume":"86 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-03-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3017680.3022457","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Ideally, we would always be able to write clear, concise programs and have them run quickly. One major impediment is the redundancy which can occur in direct recursive solutions. In some cases, this means writing a loop even if the programmer is more comfortable thinking in terms of recursion. In other cases the impact on code is even more dramatic, and in these cases most programmers choose to sacrifice clarity in exchange for improved asymptotic complexity. There exist program transformation techniques that would allow us to write idiomatic recursive programs without losing efficiency. One such transformation is the "tupling" transformation, which can and has been implemented as an automatic compiler optimization. This transformation is, however, only applicable to a narrow class of problems. We are exploring related transformations, such as tabulation, which can helpfully be applied to a wider class of recursive programs, and attempting to answer the question of when these transformation techniques are most useful to programmers aiming to balance program clarity with performance.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
递归收敛
理想情况下,我们总是能够写出清晰、简洁的程序,并让它们快速运行。一个主要的障碍是在直接递归解决方案中可能出现的冗余。在某些情况下,这意味着即使程序员更习惯于用递归的方式思考,也要编写一个循环。在其他情况下,对代码的影响甚至更大,在这些情况下,大多数程序员选择牺牲清晰度来换取改进的渐近复杂性。现有的程序转换技术允许我们在不损失效率的情况下编写惯用的递归程序。一种这样的转换是“元组”转换,它可以并且已经被实现为自动编译器优化。然而,这种转换只适用于一小部分问题。我们正在探索相关的转换,例如表格,它可以帮助应用于更广泛的递归程序,并试图回答这些转换技术何时对旨在平衡程序清晰度和性能的程序员最有用的问题。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Handling Very Large Lecture Courses: Keeping the Wheels on the Bus III (Abstract Only) CS1: Computation & Cognition -- An Evidence-Based Course to Broaden Participation (Abstract Only) Lessons Learned in the Design and Delivery of an Introductory Programming MOOC Micro Projects: Putting Light and Magic into Learning Computer Systems Concepts (Abstract Only) Building Evaluative Capacity for Out of School Organizations that Engage Girls in Computer Science (Abstract Only)
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1