首页> 外文OA文献 >Needle Knot: Binder boilerplate tied up
【2h】

Needle Knot: Binder boilerplate tied up

机译:针与结:活页夹样板绑起来

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

In order to lighten the burden of programming language mechanization many approaches have been developed that tackle the substantial boilerplate which arises from variable binders. Unfortunately,the existing approaches are limited in scope. They typically do not support complex binding forms (such as multi-binders) that arise in more advanced languages, or they do not tackle the boilerplate due to mentioning variables and binders in relations. As a consequence, the human mechanizer is still unnecessarily burdened with binder boilerplate and discouraged from taking on richer languages.This paper presents Knot, a new approach that substantially extendsthe support for binder boilerplate. Knot is a highly expressive languagefor natural and concise specification of syntax with binders. Its metatheory constructively guarantees for well-formed specifications the coverage of a considerable amount of binder boilerplate, including that for well-scoping of terms and context lookups. Knot also comes with a code generator, Needle, that specializes the generic boilerplate for convenient embedding in Coq and provides a tactic library for automatically discharging proof obligations that frequently come up in proofs of weakening and substitution lemmas of type-systems.Our evaluation shows, that Needle & Knot significantly reduce the sizeof language mechanizations (by 40% in our case study). Moreover, asfar as we know, Knot enables the most concise mechanization of thePOPLmark Challenge (1a + 2a) and is two-thirds the size of the nextsmallest. Finally, Knot allows us to mechanize for instance dependently-typed languages, which is notoriously challenging because of dependent contexts and mutually-recursive sorts with variables.
机译:为了减轻编程语言机械化的负担,已经开发了许多方法来解决由可变活页夹引起的大量重复。不幸的是,现有方法范围有限。它们通常不支持以更高级的语言出现的复杂绑定形式(例如多绑定),或者由于提及关系中的变量和绑定符而无法解决样板。结果,仍然没有必要使机械手负担活页夹样板的负担,并且不鼓励采用更丰富的语言。本文介绍了一种新的方法,它大大扩展了对活页夹样板的支持。结是一种具有高度表现力的语言,用于通过活页夹自然而简洁地指定语法。它的元理论建设性地保证了格式良好的规范可以覆盖相当数量的活页夹样板,包括对术语和上下文查找进行很好的范围界定。 Knot还附带一个代码生成器Needle,该代码生成器专门用于方便地嵌入Coq的通用样板,并提供了一种策略库,用于自动履行经常出现在类型系统的弱化和替换引理的证明中的证明义务。 Needle&Knot大大减少了语言机械化的规模(在我们的案例研究中减少了40%)。而且,据我们所知,Knot使POPLmark挑战赛(1a + 2a)的机械化最为简洁,其大小仅次于最小的三分之二。最后,Knot允许我们机械化例如依赖类型的语言,由于依赖上下文和具有变量的相互递归排序,这极具挑战性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号