高效通用库

高效的泛型库

(新增081103)

新进展:已发表相关论文:http://portal.acm.org/citation.cfm?id=1706366

背景:

在许多不同的数据结构(如列表、数据库表、家谱树)上统一工作的程序称为通用程序。示例:遍历数据结构以对所有部分执行相同的转换,打印、解析、压缩或解压缩数据结构,比较两个结构是否相等,等等。泛型扩展了多态性的功能,允许在一个定义中描述相关算法的类。因此,通用程序非常适合构建程序库。

目前,Haskell是最支持泛型编程的语言,但C++是拥有最高效泛型库的语言。

项目目标

建立通用算法的开放基准(基于GP基准)使用实际的测试数据,并使用它来研究可以改进什么以获得更好的运行时行为。Patrik Jansson的初步调查表明,一些Haskell库效率低下的主要原因是字典的运行时传递。将重写规则和专门化技术应用到通用程序的编译中,应该会得到与手工编写的实例一样好(或更好)的优化代码。

  • 研究一下这个Haskell中gen.prg.library的比较
  • 了解有关GP基准的更多信息
  • 改进基准
  • 确定瓶颈:
    • 为什么与Haskell中的其他泛型编程库相比,Scrap Your Boilerplate(SYB)效率如此低?
  • 可能会移除其中一些
  • 将其写为技术报告(也许旨在将其发送给2009年通用编程讲习班?).
背景
FP(Haskell)、算法、编程范例(或编程语言)、软件约束(或程序和证明的类型)
联系人
帕特里克

链接