中文

一种 Prolog 方言中抽象机的描述与优化

编程语言 2020-02-19 v1

摘要

为达到有竞争力的性能,Prolog 及相关语言的抽象机最终变得庞大而复杂,并在设计和实现层面都融入了复杂的优化。同时,效率方面的考虑使得必须使用低级语言来实现它们。这使得它们的编码、优化,尤其是维护和扩展变得费力。用更高级的语言编写抽象机(及辅助代码)有助于驯服这种固有的复杂性。我们展示了如何用(一种变体的)Prolog 来描述一个高效 Prolog 虚拟机的大多数基本组件的语义。这些描述随后被编译为 C 语言并汇编起来,以构建一个完整的字节码模拟器。得益于所使用语言的高层次性及其与 Prolog 的接近性,可以相对容易地使用标准的 Prolog 编译和优化技术来操控抽象机描述。我们还展示了,通过选择性地应用程序变换,我们获得的抽象机实现,其性能可以匹敌甚至超越最先进的、高度调优的手工编写模拟器。

关键词

引用

@article{arxiv.1411.5573,
  title  = {Description and Optimization of Abstract Machines in a Dialect of Prolog},
  author = {Jose F. Morales and Manuel Carro and Manuel Hermenegildo},
  journal= {arXiv preprint arXiv:1411.5573},
  year   = {2020}
}

备注

56 pages, 46 figures, 5 tables, To appear in Theory and Practice of Logic Programming (TPLP)