研究论文 在上共享 带有生成宏和分析宏的多阶段编程作者:尼古拉斯 斯图基,乔纳森·伊曼纽尔 Brachthä用户,马丁 奥德斯基作者信息和声明GPCE 2021:第20届ACM SIGPLAN生成性编程国际会议论文集:概念和经验页110-122https://doi.org/10.1145/3486609.3487203出版:2021年11月22日 出版历史 获取引文提醒新增引文提醒!此警报已成功添加,并将发送到:只要您选择的记录被引用,您就会收到通知。新引文提醒!拜托登录到您的帐户 获取访问权限目录GPCE 2021:第20届ACM SIGPLAN生成性编程国际会议论文集:概念和经验带有生成宏和分析宏的多阶段编程页110-122以前的文章基于抽象解释的提升终止分析及其应用上一个下一篇文章编译模式匹配以进行就地修改下一步摘要补充材料工具书类信息和贡献者文献计量学和引文获取访问权限工具书类媒体桌子分享摘要在元编程中,代码生成和代码分析是互补的。传统上,编程语言(如MetaML和BER MetaOCaml)的原则元编程扩展为代码生成提供了坚实的基础,但缺乏对代码分析的同等支持。类似地,现有的宏系统偏向于代码生成方面。在这项工作中,我们提出了一种宏演算,它同时具有代码生成和代码分析功能。微积分直接为宏的单独编译建模,将宏的一个通常被忽视的方面内在化。系统确保生成的代码类型良好且卫生。我们在Scala 3中实现了我们的系统,提供了形式化,并证明了它的可靠性。补充材料辅助演示视频 (splashws21gpcemain-p21-p-video.mp4)在元编程中,代码生成和代码分析是互补的。传统上,编程语言(如MetaML和BER MetaOCaml)的原则元编程扩展为代码生成提供了坚实的基础,但缺乏对代码分析的同等支持。类似地,现有的宏系统偏向于代码生成方面。在这项工作中,我们提出了一种宏演算,它同时具有代码生成和代码分析功能。微积分直接为宏的单独编译建模,将宏的一个通常被忽视的方面内化。系统确保生成的代码类型良好且卫生。我们在Scala 3中实现了我们的系统,提供了形式化,并证明了它的可靠性。下载79.66 MB工具书类[1]Leif Andersen、Stephen Chang和Matthias Felleisen。2017.电影制作的超级8种语言(功能明珠)。程序。ACM计划。Lang.,1,ICFP(2017),第30条,8月,29页。https://doi.org/10.1145/3110274数字图书馆谷歌学者[2]亨克·巴伦德雷格特。1992年,Lambda Calculi与类型。谷歌学者[3]克里斯蒂亚诺·卡尔卡尼奥(Cristiano Calcagno)、瓦利德·塔哈(Walid Taha)、黄利文(Liwen Huang)和泽维尔·勒罗伊(Xavier Leroy)。2003.使用AST、Gensym和Reflection实现多阶段语言。程序中。第二届生成性编程和组件工程国际会议(GPCE’03)。斯普林格·弗拉格,柏林,海德堡。57-76。国际标准编号:3-540-20102-5https://doi.org/10.1007/978-3-540-39815-8_4交叉参考谷歌学者[4]Krzysztof Czarnecki、John T.O'Donnell、Jörg Striegnitz和Walid Taha。2004.MetaOCaml、Template Haskell和C++中的DSL实现。施普林格-柏林-海德堡,柏林,海德堡。51-72。国际标准编号:978-3-540-25935-0https://doi.org/10.1007/978-3-540-25935-0_4交叉参考谷歌学者[5]Krzysztof Czarnecki、KasperØsterbay和Markus Völter。2002.生成性编程。胡安·埃尔南德斯(Juan Hernández)和安娜·莫雷拉(Ana Moreira)(编辑)在《面向对象技术ECOOP 2002年研讨会读取器》(Object-Oriented Technology ECOOP 2002Workshop Reader)中写道。施普林格-柏林-海德堡,柏林,海德堡。15-29。国际标准编号:978-3-540-36208-1https://doi.org/10.1007/3-540-36208-8_2交叉参考谷歌学者[6]罗文·戴维斯(Rowan Davies)。2017年,绑定时间分析的时间逻辑方法。J.ACM,64,1(2017),第1条,3月,45页。编号:0004-5411https://doi.org/10.1145/3011069数字图书馆谷歌学者[7]Rowan Davies和Frank Pfenning。2001.分阶段计算的模态分析。J.ACM,48,3(2001),5月,555-604。编号:0004-5411https://doi.org/10.1145/382780.382785数字图书馆谷歌学者[8]马修·弗拉特。2002.可组合和可编译宏:何时需要?SIGPLAN否。,37,9(2002),9月,72–83日。发行编号:0362-1340https://doi.org/10.1145/583852.581486数字图书馆谷歌学者[9]Steven E.Ganz、Amr Sabry和Walid Taha。2001.作为多级计算的宏:MacroML中的类型安全、生成、绑定宏。SIGPLAN否。,36,10(2001),10月,74-85日。发行编号:0362-1340https://doi.org/10.1145/507669.507646数字图书馆谷歌学者[10]乌尔里克·约尔和威廉·谢利斯。1986.编译器和阶段转换。计算机械协会,美国纽约州纽约市,86–96。编号:9781450373470https://doi.org/10.1145/512644.512652数字图书馆谷歌学者[11]奥列格·基塞利约夫。2014.BER MetaOCaml的设计和实施。在函数和逻辑编程中,Michael Codish和Eijiro Sumii(编辑)。施普林格国际出版公司,Cham。86–102.编号:978-3-319-07151-0https://doi.org/10.1007/978-3-319-07151-0_6交叉参考谷歌学者[12]奥列格·基塞利约夫。2018年,将抽象与高绩效相协调:元OCaml方法。编程语言基础与趋势®,5,1(2018),1–101。发行编号:2325-1107https://doi.org/10.1561/250000038数字图书馆谷歌学者[13]Oleg Kiselyov和Chung-chieh Shan。2010年,MetaOCaml文件-状态报告和研究建议。在ML的ACM SIGPLAN研讨会上。谷歌学者[14]亚尼斯·利利斯和安东尼·萨维迪斯。2019.元编程语言调查。ACM计算。调查。,52、6(2019年),第113条,10月,39页。发行编号:0360-0300https://doi.org/10.1145/3354584数字图书馆谷歌学者[15]弗雷德·麦克布莱德。1970年,符号的计算机辅助操作。博士论文。贝尔法斯特女王大学。谷歌学者[16]Lionel Parreaux、Amir Shaikhha和Christoph E.Koch。2017.引用的分阶段改写:图书馆定义优化的实用方法。SIGPLAN否。,52、12(2017年),10月131–145日。发行编号:0362-1340https://doi.org/10.1145/3170492.3136043数字图书馆谷歌学者[17]莱昂内尔·帕雷奥(Lionel Parreaux)、阿米尔·谢赫哈(Amir Shaikhha)和克里斯托夫·科赫(Christoph E.Koch)。2017年。鱿鱼:类型安全、卫生和可重复使用准引号。第八届ACM SIGPLAN Scala国际研讨会论文集(Scala 2017)。计算机械协会,美国纽约州纽约市,56–66。编号:9781450355292https://doi.org/10.1145/313600.3136005数字图书馆谷歌学者[18]莱昂内尔·帕雷奥(Lionel Parreaux)、安托万·沃扎德(Antoine Voizard)、埃米尔·谢赫哈(Amir Shaikhha)和克里斯托夫·科赫(Christoph E.Koch)。2017.统一分析型和统计型准报价。程序。ACM计划。Lang.,2,POPL(2017),第13条,12月,33页。https://doi.org/10.1145/3158101数字图书馆谷歌学者[19]F.Pfenning和C.Elliott。1988.高阶抽象语法。SIGPLAN否。,1993年6月23日、7日(1988年)至208日。发行编号:0362-1340https://doi.org/10.11145/960116.54010数字图书馆谷歌学者[20]蒂姆·谢尔德(Tim Sheard)和西蒙·佩顿·琼斯(Simon Peyton Jones)。2002.Haskell的模板元编程。2002年ACM SIGPLAN Haskell研讨会论文集(Haskell'02)。计算机协会,美国纽约州纽约市,1-16。国际标准编号:1581136056https://doi.org/10.1145/581690.581691数字图书馆谷歌学者[21]亚尼斯·斯马拉格达基斯(Yannis Smaragdakis)、阿格洛斯·比布迪斯(Aggelos Biboudis)和乔治·福图尼斯(George Fourtounis)。2017.结构化程序生成技术。在软件工程的重大适时主题中,Jácome Cunha、Joáo P.Fernandes、Ralf Lämmel、Joóo Saraiva和Vadim Zaytsev(编辑)。施普林格国际出版公司,Cham。154–178. 国际标准编号:978-3-319-60074-1https://doi.org/10.1007/978-3-319-600074-1_7交叉参考谷歌学者[22]尼古拉斯·斯塔基(Nicolas Stucki)、阿格洛斯·比布迪斯(Aggelos Biboudis)、塞巴斯蒂安·多雷纳(Sébastien Doeraene)和马丁·奥德斯基(Martin Odersky)。2020年。元编程的语义保留内联。在第11届ACM SIGPLAN斯卡拉国际研讨会(Scala 2020)上发表。计算机协会,美国纽约州纽约市14-24。编号:9781450381772https://doi.org/10.1145/3426426.3428486数字图书馆谷歌学者[23]尼古拉斯·斯塔基(Nicolas Stucki)、阿格洛斯·比布迪斯(Aggelos Biboudis)和马丁·奥德斯基(Martin Odersky)。2018年,多阶段编程和宏的实际统一。第17届ACM SIGPLAN生成性编程国际会议论文集:概念和经验(GPCE 2018)。计算机协会,美国纽约州纽约市14-27。编号:9781450360456https://doi.org/10.1145/3278122.3278139数字图书馆谷歌学者[24]尼古拉斯·斯塔基(Nicolas Stucki)、乔纳森·伊曼纽尔·布拉斯(Jonathan Immanuel Brachthäuser)和马丁·奥德斯基(Martin Odersky)。2021.用生成宏和分析宏证明多阶段编程。EPFL。谷歌学者[25]瓦利德·塔哈和蒂姆·谢尔德。1997.带显式注释的多级编程。SIGPLAN否。,32、12(1997年),203-217年12月。发行编号:0362-1340https://doi.org/10.1145/258994.259019数字图书馆谷歌学者[26]Sam Tobin-Hochstadt、Vincent St-Amour、Ryan Culppeper、Matthew Flatt和Matthias Felleisen。2011.语言作为图书馆。SIGPLAN否。,第46、6页(2011年),第132–141页,6月。发行编号:0362-1340https://doi.org/10.1145/1993316.1993514数字图书馆谷歌学者[27]Sam Tobin-Hochstadt、Vincent St-Amour、Eric Dobson和Asumu Takikawa。2021.打字球拍指南-注意事项和限制。谷歌学者[28]T Veldhuizen和E Gannon。1998.活动库:重新思考编译器和库的角色。程序中。1998年SIAM研讨会:可互操作科学与工程计算的面向对象方法。286–295.谷歌学者 引用人查看全部穆拉斯Y西瓦基YIgarashi A型(2023)具有多形语境的语境模态类型理论程序设计语言与系统10.1007/978-3-031-30044-8_11(281-308)在线发布日期:2023年4月22日https://dl.acm.org/doi/10.1007/978-3-031-30044-8_11德克斯特P刘毅邱(Chiu K)(2022)在线数据处理的本质美国计算机学会程序设计语言会议录10.1145/35633206:OOPSLA2(899-928)在线发布日期:2022年10月31日https://dl.acm.org/doi/10.1145/3563320 索引术语 带有生成宏和分析宏的多阶段编程软件及其工程软件符号和工具特定于上下文的语言宏语言正式语言定义语义学通用编程语言语言特点模式 建议 元编程语言综述 元编程是编写将程序视为数据的计算机程序的过程,使其能够分析或转换现有程序或生成新程序。虽然元编程的概念已经存在了几十年,但活动。。。阅读更多信息多阶段编程和宏的实用统一GPCE 2018:第17届ACM SIGPLAN生成性编程国际会议记录:概念和经验 程序生成是必不可少的。我们提出了两种现有元编程技术的新统一:多级编程和卫生生成宏。前者支持以类型安全的方式生成和执行运行时代码,而。。。阅读更多信息多阶段编程和宏的实用统一GPCE’18 程序生成是必不可少的。我们提出了两种现有元编程技术的新统一:多级编程和卫生生成宏。前者支持以类型安全的方式生成和执行运行时代码,而。。。阅读更多信息 评论 Please enable JavaScript to view thecomments powered by Disqus. 信息和贡献者问询处发布于 GPCE 2021:第20届ACM SIGPLAN生成性编程国际会议论文集:概念和经验2021年10月209页国际标准图书编号:9781450391122内政部:10.1145/3486609总主席:伊莱·提列维奇美国弗吉尼亚理工大学,项目主席:科恩•德•鲁弗比利时布鲁塞尔Vrije大学 版权所有©2021 ACM。如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]赞助商SIGPLAN:ACM编程语言特别兴趣小组出版商计算机协会美国纽约州纽约市出版历史出版:2021年11月22日权限请求对此文章的权限。请求权限检查更新作者标记形式化宏系统元编程多阶段编程限定符研究文章资金来源瑞士国家科学基金会会议GPCE’21赞助商:SIGPLAN(SIGPLAN)GPCE’21:概念和经验2021年10月17日至18日伊利诺伊州,芝加哥,美国 接受率总体接受率180份提交文件中的56份,31% 即将召开的会议 GPCE’24 赞助商: 信号平面图 第23届ACM SIGPLAN生成性编程国际会议:概念和经验 2024年10月21日至22日 帕萨迪纳,加利福尼亚州,美国 贡献者 其他指标查看文章指标文献计量学和引文文献计量学 文章度量标准 2引文总数查看引文195总下载次数下载次数(过去12个月)58下载次数(最近6周)5反映截至2024年9月18日的下载量 其他指标查看作者指标引文 引用人查看全部穆拉斯Y西瓦基YIgarashi甲(2023)具有多形语境的语境模态类型理论编程语言和系统10.1007/978-3-031-30044-8_11(281-308)在线发布日期:2023年4月22日https://dl.acm.org/doi/10.1007/978-3-031-30044-8_11德克斯特P刘毅邱(Chiu K)(2022)在线数据处理的本质美国计算机学会程序设计语言会议录10.1145/35633206:OOPSLA2(899-928)在线发布日期:2022年10月31日https://dl.acm.org/doi/10.1145/3563320 视图选项获取访问权限 登录选项检查您是否可以通过登录凭据或您的机构访问本文。登录完全访问权限获取此出版物 查看选项 PDF格式以PDF文件查看或下载。PDF格式 电子阅读器使用联机查看电子阅读器.电子阅读器媒体数字其他桌子分享分享共享此出版物链接复制链接复制!复制失败。在社交媒体上分享LinkedIn链接重新编辑电子邮件附属公司尼古拉斯 斯图基EPFL,瑞士https://orcid.org/0000-0003-1391-375查看个人资料乔纳森·伊曼纽尔 Brachthä用户EPFL,瑞士https://orcid.org/0000-0001-9128-0391查看个人资料马丁 奥德斯基EPFL,瑞士查看个人资料