【问题标题】:Assembly-generating macros in common lispcommon lisp 中的程序集生成宏
【发布时间】:2016-02-17 03:14:25
【问题描述】:

我有兴趣了解程序员在纯 Common Lisp 中的低级水平(或者,如果失败,则在特定于实现的扩展中)。谷歌没能找到我很多关于这方面的信息,所以我想听听专家们怎么说。 This post 提到了 SBCL 的一个特性来定义作者所说的“虚拟运算符”,但是搜索“通用 lisp 虚拟运算符”并没有多少收获。作者还提到很难找到有关它的文档。其他实现是否存在类似的系统,标准中是否有任何基础(尽管考虑到这样的功能主要用于编写特定于 ISA 的代码,可移植性对于它的用户来说不应该是优先考虑的问题) ,在哪里可以找到此类功能的文档?

如果能找到一种方法将“可编程编程语言”概念也扩展到低级代码(尤其是对于效率非常重要且其他用 C 或汇编编写的库可能不可用的领域),那就太好了。

【问题讨论】:

标签: macros common-lisp inline-assembly


【解决方案1】:

这是非常具体的实现,根本不可移植。

是的,SBCL 使用 VOP,但其他实现具有完全不同的编译目标。

如果您打算以某种可移植的方式进入低级,您有两种途径:

  • 使用声明、内联、手动展开等进行优化,使用disassemble检查您的进度

  • 在外部实现静态 blob,然后将其与 FFI 接口

【讨论】:

  • VOP 代表什么?
  • 虚拟运算符。请参阅原始问题。
猜你喜欢
  • 2020-09-18
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多