使用函数编程——使用领域特定语言的软件设计和验证

(2010-2013年期间由瑞典研究委员会资助的多项目拨款虚拟现实)

申请人:John Hughes(主要申请人)、Mary Sheeran、Koen Claessen、,帕特里克·詹森

内部

研究计划(来自拨款申请)

新闻:

  • 2012年4月12日:于并行函数编程
  • 2010年9月1日:亚历杭德罗·鲁索(Alejandro Russo)开始担任FP小组的助理教授(由FunC项目资助)
  • 2010年8月16日:乔纳斯·杜雷格(Jonas Duregárd)以博士生身份加入该项目,与帕特里克一起工作。
  • 2010年01月01日:Ann Lillieström作为与Koen合作的博士生加入了该项目。

摘要

我们将函数编程技术,尤其是嵌入Haskell和Erlang中的领域特定语言(DSL)应用于复杂软件的设计和验证,并从电信领域中选取了一些令人鼓舞的示例。我们利用DSP算法的DSL为无线基站信号处理做出贡献,该DSL已经在开发中,由爱立信软件研究和战略研究基金会提供初始资金。其他DSL正在开发用于有线软件电路设计和编程高度并行的图形卡。根据这一经验,我们将构建一个“DSL工具包”,使未来的DSL更容易设计和实现。

我们还通过基于属性的测试工具QuickCheck(已经在工业中使用)为测试更高级别的控制软件做出了贡献。我们计划使用特定领域的规范语言、与软件模型的连接、从测试结果中挖掘规范,以及基于测试和用户优先级的以代码为中心的反馈自动选择测试数据分布来扩展它。我们计划对“属性优先的软件开发”进行实证评估,类似于流行的“测试驱动开发”,但比之更激进。

总的目标是通过利用函数编程的能力,提高软件开发和验证中的抽象级别——至少在有限的领域中是这样的。该提案在很大程度上基于现有的广泛行业合作,尤其是与爱立信的合作。