×

调试卫生宏。 (英语) Zbl 1211.68047号

总结:在过去的二十年里,方案宏已经发展成为编译器前端的强大API。喜欢Lisp语言宏及其前身,方案宏将源程序扩展为小型核心语言;不像Lisp语言系统,方案宏扩展器保留词法范围和高级方案宏系统处理其他重要属性,例如源位置。使用这样的宏,方案程序员现在经常开发终极抽象:嵌入式领域特定编程语言。
不幸的是,一个典型的方案编程环境几乎不支持宏开发。这种缺乏使得程序员很难调试宏,新手也很难研究宏的行为。作为回应,我们开发了一个专门用于宏扩展的步进调试器。此调试器将宏扩展过程表示为注释项的线性重写序列;它以图形方式说明了扩展显示的程序的绑定结构;它适应于程序员的抽象级别,隐藏了程序员认为内置的语法形式的细节。

MSC公司:

68甲15 编程语言理论
68N20型 编译与解释理论

关键词:

调试法抽象方案
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] E.Barzilay,Swindle。http://www.barzilay.org/Swindle网站
[2] A.Bove,L.Arbilla,《宏观扩展与评估的融合演算》,载于:ACM Lisp与函数编程研讨会,1992年,第278–287页
[3] J.Clements,M.Flatt,M.Felleisen,《代数步进器建模》,摘自:欧洲编程研讨会,2001年,第320–334页·Zbl 0977.68705号
[4] W.Clinger,J.Rees,《有效的宏》,载于:ACM SIGPLAN-SIGACT编程语言原理研讨会,1991年,第155-162页
[5] R.Culppeper,S.Owens,M.Flatt,组件接口中的语法抽象,收录于:生成编程和组件工程国际会议,2005年,第373–388页
[6] Dybvig,R.K。;希布,R。;Bruggeman,C.:scheme中的语法抽象,Lisp和符号计算5,第4期,295-326(1993)
[7] S.Egner,《方案中的Eagle综合:SRFI-42的设计》,载:《方案与功能编程研讨会》,2005年9月,第13-26页
[8] M.Felleisen,将序言翻译成Scheme。《技术报告182》,印第安纳大学,1985年
[9] Felleisen,M.:《论编程语言的表达能力》,《计算机编程科学》17,35-75(1991)·Zbl 0745.68033号 ·doi:10.1016/0167-6423(91)90036-W
[10] 芬德勒,R.B。;克莱门茨,J。;弗拉纳根,C。;弗拉特,M。;克里希纳穆尔西,S。;Steckler,P。;Felleisen,M.:Drscheme:scheme的编程环境,《函数编程杂志》12,第2期,159-182(2002)·Zbl 0987.68610号 ·doi:10.1017/S095679680104208
[11] R.B.Findler,M.Felleisen,《高阶函数合同》,载于:ACM SIGPLAN函数编程国际会议,2002年,第48–59页·Zbl 1322.68039号
[12] M.扁平、可组合和可编译宏:你什么时候想要?摘自:ACM SIGPLAN函数式编程国际会议,2002年,第72–83页
[13] M.Flatt,PLT MzScheme:语言手册。技术报告PLT-TR2006-1-v352,PLT Scheme Inc.,2006年。http://www.plt-scheme.org/tech报告/
[14] M.Flatt、M.Felleisen,《单元:HOT语言的酷模块》,载于:ACM SIGPLAN编程语言设计与实现会议,1998年,第236–248页
[15] M.Flatt,R.B.Findler,M.Felleisen,Scheme with classes,mixin,and traits,收录于:亚洲编程语言与系统研讨会,APLAS,2006年11月,第270-289页·Zbl 1168.68345号
[16] 弗拉特,M。;克里希纳穆尔西,S。;Felleisen,M.:程序员对类和mixin的简化语义,Java 1523241-269的形式语法和语义(1999)
[17] 弗里德曼,D.P。;伯德·W·E。;Kiselyov,O.:理性阴谋家(2005年7月)
[18] M.Gasbichler,全参数化,带卫生宏的一流模块。博士论文,Eberhard-Karls-Universitätübingen,2006年2月
[19] D.Herman,P.Meunier,《通过部分评估改进嵌入式语言的静态分析》,载于:ACM SIGPLAN函数式编程国际会议,2004年,第16–27页·Zbl 1323.68074号
[20] Hudak,P.:构建特定领域的嵌入式语言,ACM计算调查28,No.4es,196(1996)
[21] E.E.Kohlbecker,D.P.Friedman,M.Felleisen,B.F.Duba,卫生宏观扩展,摘自:ACM Lisp和函数编程研讨会,1986年,第151-161页
[22] E.E.Kohlbecker,M.Wand,《宏示例:从其规范中导出语法转换》,载于:ACM SIGPLAN-SIGACT编程语言原理研讨会,1987年,第77–84页
[23] H.Lieberman,《为LISP提供更好的调试工具的步骤》,摘自:Proc。1984年ACM关于LISP和函数编程的研讨会,1984年,第247-255页
[24] S.Owens,M.Flatt,O.Shivers,B.McMullan,Scheme中的Lexer和解析器生成器,摘自:Scheme和函数编程研讨会,2004年9月,第41–52页
[25] 图。PLT MzLib:图书馆手册。技术报告PLT-TR2006-4-v352,PLT Scheme Inc.,2006年。http://www.plt-scheme.org/tech报告/
[26] Sarkar,D。;瓦德尔,O。;Dybvig,R.K.:编译器教育的纳米级框架,《函数编程杂志》15,第5期,653-667(2005)·Zbl 1104.68402号 ·doi:10.1017/S0956796805005005
[27] O.Shivers,《循环的剖析:范围和控制的故事》,载于:ACM SIGPLAN函数式编程国际会议,2005年,第2-14页·Zbl 1302.68072号
[28] D.Sitaram,schelog编程。http://www.ccs.neu.edu/home/dorai/schelog/schelog.html
[29] M.Sperber、R.K.Dybvig、M.Flatt和A.van Straaten(编辑),算法语言方案的修订报告,2007年9月。可在网址:http://www.r6rs.org
[30] G.L.Steele,Jr.Rabbit:Scheme的编译器,技术报告474,麻省理工学院人工智能实验室,1978年5月
[31] Jr.,G.L.Steele:通用LISP:语言,(1990)·Zbl 0757.68008号
[32] S.Tobin-Hochstadt,M.Felleisen,《类型化方案的设计与实现》,载于:ACM SIGPLAN-SIGACT编程语言原理研讨会,2008年,第395-406页·Zbl 1295.68055号
[33] 托尔马赫,A.P。;Appel,A.W.:标准ML的调试器,《函数编程杂志》第5期,第2期,155-200(1995)
[34] O.Waddell,R.K.Dybvig,《扩展语法抽象的范围》,载于:ACM SIGPLAN-SIGACT编程语言原理研讨会,1999年,第203-215页
[35] Wand,M.:fexprs理论是琐碎的,Lisp和符号计算10,第3期,189-199(1998)
[36] A.Wright,B.Duba,Scheme的模式匹配,1995年。未发表的手稿
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。