我正在阅读关于funarg问题的这篇论文,这实际上是维护词汇闭包环境的问题.这是一篇旧论文,我不确定作者的结论是否仍然成立,但他强烈暗示,为了拥有词汇而非动态范围,你必须放弃传统的C风格的堆栈,而是拥有一个树形结构从堆中分配的环境.
这是否使得在任何硬实时系统中都无法使用词法范围的闭包?在以微秒为单位测量延迟的实时嵌入式系统中,由于引入的非确定性延迟,通常禁止堆分配.
这一直是我的好奇心,因为我把面包主要作为固件开发人员,其中C是事实上的语言,有一段时间我现在似乎一直在利用我的脑力来弄清楚如何强迫C让我用更复杂的语言免费做一些事情.因此,我开始怀疑您是否可以专门为基于硬件实时嵌入式微控制器的系统实现micro-lisp编译器.
作为旁注:我最近深入了解了关于封闭和物体如何等等的深层主题,它让我更加敬畏像Stallman和Rich Hickey以及Paul Graham这样的人.从头开始实现Lisp对我来说似乎是一项艰巨的任务.很难知道从哪里开始.(也许PG的实施麦卡锡的原始评估功能,IDK).无论如何,我离题了.