具有类型安全复制/粘贴功能的结构编辑器

Hans Hüttel, Anja Elisasen Lumholtz Nielsen, Nana Gjerulf Sandberg, Christoffer Lind Andersen, Peter Mikkelsen
{"title":"具有类型安全复制/粘贴功能的结构编辑器","authors":"Hans Hüttel, Anja Elisasen Lumholtz Nielsen, Nana Gjerulf Sandberg, Christoffer Lind Andersen, Peter Mikkelsen","doi":"10.1145/3587216.3587221","DOIUrl":null,"url":null,"abstract":"The editor calculus of Godiksen et al [2] describes the edit primitives of a syntax-directed editor for functional programs in a simply typed lambda calculus. However, a main shortcoming is that only top-down programming is allowed, meaning that we can only construct the AST from the root. This makes it difficult to refactor previously written code without having to potentially delete and re-insert large parts of a program. The present paper modifies the calculus to not only handle programs with Hindley-Milner-style let polymorphism but also to incorporate a notion of copy/paste functionality. We present an extended semantics and a type system of the new system and prove that it remains sound: Well-typed editor expressions will always produce a well-typed program.","PeriodicalId":318613,"journal":{"name":"Proceedings of the 34th Symposium on Implementation and Application of Functional Languages","volume":"36 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-08-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A Structure Editor with Type-Safe Copy/Paste\",\"authors\":\"Hans Hüttel, Anja Elisasen Lumholtz Nielsen, Nana Gjerulf Sandberg, Christoffer Lind Andersen, Peter Mikkelsen\",\"doi\":\"10.1145/3587216.3587221\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The editor calculus of Godiksen et al [2] describes the edit primitives of a syntax-directed editor for functional programs in a simply typed lambda calculus. However, a main shortcoming is that only top-down programming is allowed, meaning that we can only construct the AST from the root. This makes it difficult to refactor previously written code without having to potentially delete and re-insert large parts of a program. The present paper modifies the calculus to not only handle programs with Hindley-Milner-style let polymorphism but also to incorporate a notion of copy/paste functionality. We present an extended semantics and a type system of the new system and prove that it remains sound: Well-typed editor expressions will always produce a well-typed program.\",\"PeriodicalId\":318613,\"journal\":{\"name\":\"Proceedings of the 34th Symposium on Implementation and Application of Functional Languages\",\"volume\":\"36 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-08-31\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 34th Symposium on Implementation and Application of Functional Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3587216.3587221\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 34th Symposium on Implementation and Application of Functional Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3587216.3587221","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

Godiksen等人[2]的编辑器演算在简单类型lambda演算中描述了用于函数式程序的语法导向编辑器的编辑原语。然而,一个主要的缺点是只允许自顶向下编程,这意味着我们只能从根构造AST。这使得重构以前编写的代码变得困难,而不需要删除和重新插入程序的大部分。本文对微积分进行了修改,使其不仅可以处理具有hindley - milner风格的let多态性的程序,而且还包含了复制/粘贴功能的概念。我们提出了新系统的扩展语义和类型系统,并证明它仍然是合理的:类型良好的编辑器表达式总是会产生类型良好的程序。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
A Structure Editor with Type-Safe Copy/Paste
The editor calculus of Godiksen et al [2] describes the edit primitives of a syntax-directed editor for functional programs in a simply typed lambda calculus. However, a main shortcoming is that only top-down programming is allowed, meaning that we can only construct the AST from the root. This makes it difficult to refactor previously written code without having to potentially delete and re-insert large parts of a program. The present paper modifies the calculus to not only handle programs with Hindley-Milner-style let polymorphism but also to incorporate a notion of copy/paste functionality. We present an extended semantics and a type system of the new system and prove that it remains sound: Well-typed editor expressions will always produce a well-typed program.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信