Joh*_*nny 5 lisp embedded scope real-time lexical
我正在阅读关于funarg问题的这篇论文,这实际上是维护词汇闭包环境的问题.这是一篇旧论文,我不确定作者的结论是否仍然成立,但他强烈暗示,为了拥有词汇而非动态范围,你必须放弃传统的C风格的堆栈,而是拥有一个树形结构从堆中分配的环境.
这是否使得在任何硬实时系统中都无法使用词法范围的闭包?在以微秒为单位测量延迟的实时嵌入式系统中,由于引入的非确定性延迟,通常禁止堆分配.
这一直是我的好奇心,因为我把面包主要作为固件开发人员,其中C是事实上的语言,有一段时间我现在似乎一直在利用我的脑力来弄清楚如何强迫C让我用更复杂的语言免费做一些事情.因此,我开始怀疑您是否可以专门为基于硬件实时嵌入式微控制器的系统实现micro-lisp编译器.
作为旁注:我最近深入了解了关于封闭和物体如何等等的深层主题,它让我更加敬畏像Stallman和Rich Hickey以及Paul Graham这样的人.从头开始实现Lisp对我来说似乎是一项艰巨的任务.很难知道从哪里开始.(也许PG的实施麦卡锡的原始评估功能,IDK).无论如何,我离题了.
我发现了一些实时分配器,所以我想说。实时词法范围是可能的:
http://rtportal.upv.es/rtmalloc/
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.106.441&rep=rep1&type=pdf
添加到您的消化中,在编写我自己的 micro-lisp 之前,我会尝试为相关的嵌入式系统查找或移植lua 。它非常小,但提供了 LISP 的大部分功能:一流的函数、闭包、没有延续但有协程。
卢阿很小
将 Lua 添加到应用程序不会使其变得臃肿。Lua 5.1.4 的 tarball 包含源代码、文档和示例,压缩后为 212K,未压缩为 860K。源代码包含大约 17000 行 C 代码。在 Linux 下,使用所有标准 Lua 库构建的 Lua 解释器需要 153K,Lua 库需要 203K。
卢阿是免费的
Lua 是免费的开源软件,在非常自由的许可证(著名的 MIT 许可证)下分发。它可以用于任何目的,包括商业目的,并且完全免费。只需下载并使用即可。
归档时间: |
|
查看次数: |
233 次 |
最近记录: |