作者:张寅森解释型动态语言查询速度数据结构词法实验性源代码
摘要:动态作用域(dynanfic scoping)是一种在内存和查询速度两个方面都具有低成本特点的作用域实现。在不考虑发生变量捕获(capture)的情况下,可以做到和词法作用域(1exicalscoping)完全相同的行为。然而词法作用域的处理成本较高,且由于其具有的“闭包”性质,导致了“变量捕获”这一概念的出现,使其处理难度变得很高,尤其是对于以机器码为目标的编译型语言。而对于将编译和运行视为一体的纯解释型语言来说,由于词法作用域保留环境的特点以及一些相关数据结构的缺陷使得其内存占用和查询时间二者只能取其一,采用动态作用域是一种更经济的选择。本文基于一门实验性Lisp方言——Lice,源代码托管在GitHub上。
注:因版权方要求,不能公开全文,如需全文,请咨询杂志社