文件名称:static-dispatch:Common Lisp的静态泛型函数分派
文件大小:29KB
文件格式:ZIP
更新时间:2024-04-25 13:01:12
CommonLisp
静态分配 静态调度是一个受启发的库,该库允许标准Common Lisp泛型函数调度以静态方式(在编译时)执行,而不是动态(运行时)执行。 这类似于在C ++和Java等语言中所谓的“重载”。 静态分派的目的是在通常的动态分派太慢并且不需要通用函数的动态功能(例如在运行时添加/删除方法)的情况下提供优化。 这种情况的一个例子是通用相等性比较函数。 当前,当在数字代码中大量使用泛型函数时,泛型函数被认为太慢而无法实现泛型算术和比较运算。 怎么运行的 带阴影的DEFMETHOD宏将方法的主体存储在全局变量中,该全局变量包含将通用函数映射到其方法的哈希表。 将编译器宏函数添加到泛型函数中,该泛型函数确定参数的类型,并将函数调用形式替换为最特定的适用方法的主体。 如果无法确定类型,或者没有足够的类型信息,则按原样保留泛型函数调用。 因此,为了在编译时而不是在运行时选择适当的方法,必须使用DECL
【文件预览】:
static-dispatch-master
----test()
--------util.lisp(2KB)
--------dispatch.lisp(7KB)
--------compiler-macro.lisp(3KB)
--------internals.lisp(17KB)
--------next-methods.lisp(5KB)
--------aux.lisp(7KB)
----static-dispatch.asd(2KB)
----LICENSE(1KB)
----src()
--------package.lisp(2KB)
--------static-dispatch.lisp(22KB)
----README.md(14KB)