The difficulty associated with storing closures in a stack-based environment is known as the funarg problem. The funarg problem was first identified with the development of Lisp in the 1970s and hasn't received much attention since then. The modern solution taken by most languages is to allocate closures on the heap, or to apply static analysis to determine when closures can be stack allocated. This is not a problem for most computing systems as there is an abundance of memory. However, embedded systems often have limited memory resources where heap allocation may cause memory fragmentation. We present a simple extension to the prenex fragment of System F that allows closures to be stack-allocated. We demonstrate a concrete implementation of this system in the Juniper functional reactive programming language, which is designed to run on extremely resource limited Arduino devices. We also discuss other solutions present in other programming languages that solve the funarg problem but haven't been formally discussed in the literature.


翻译:与在堆叠环境中储存封闭装置有关的困难被称为“ 拖拉机问题 ” 。 拖拉机问题最初与1970年代Lisp的开发有关,此后一直没有引起多少注意。 多数语言的现代解决办法是将关闭装置分配在堆肥上, 或采用静态分析来确定何时可以分配关闭装置。 这对大多数计算机系统来说并不是一个问题, 因为有丰富的记忆。 然而, 嵌入系统通常有有限的内存资源, 大量分配可能会造成记忆破碎。 我们为F系统前nex碎片提供了简单的扩展, 使关闭装置能够被堆叠。 我们用Juniper功能反应性编程语言演示了该系统的具体实施情况, 该语言的设计是利用极其有限的资源 Arduino 装置运行。 我们还讨论了其他编程语言中存在的其他解决方案,这些语言解决了真菌问题,但在文献中尚未正式讨论过。

0
下载
关闭预览

相关内容

iOS 8 提供的应用间和应用跟系统的功能交互特性。
  • Today (iOS and OS X): widgets for the Today view of Notification Center
  • Share (iOS and OS X): post content to web services or share content with others
  • Actions (iOS and OS X): app extensions to view or manipulate inside another app
  • Photo Editing (iOS): edit a photo or video in Apple's Photos app with extensions from a third-party apps
  • Finder Sync (OS X): remote file storage in the Finder with support for Finder content annotation
  • Storage Provider (iOS): an interface between files inside an app and other apps on a user's device
  • Custom Keyboard (iOS): system-wide alternative keyboards

Source: iOS 8 Extensions: Apple’s Plan for a Powerful App Ecosystem
专知会员服务
124+阅读 · 2020年9月8日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
意识是一种数学模式
CreateAMind
3+阅读 · 2019年6月24日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
Arxiv
0+阅读 · 2021年10月14日
Arxiv
0+阅读 · 2021年8月19日
Arxiv
0+阅读 · 2021年6月22日
Arxiv
24+阅读 · 2021年1月25日
VIP会员
相关VIP内容
专知会员服务
124+阅读 · 2020年9月8日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
相关资讯
意识是一种数学模式
CreateAMind
3+阅读 · 2019年6月24日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
相关论文
Arxiv
0+阅读 · 2021年10月14日
Arxiv
0+阅读 · 2021年8月19日
Arxiv
0+阅读 · 2021年6月22日
Arxiv
24+阅读 · 2021年1月25日
Top
微信扫码咨询专知VIP会员