跳到主要内容
10.1145/1869459.1869497acm会议文章/章节视图摘要出版物页面泼洒会议记录会议集合
研究论文

spofax语言工作台:语言和IDE的声明性规范规则

出版:2010年10月17日出版历史

摘要

Spoofax是一个语言工作台,用于高效、灵活地开发文本领域特定语言,并提供最先进的IDE支持。Spoofax将用于解析器生成、元编程和IDE开发的语言处理技术集成到单个环境中。它对语言和IDE服务使用简洁的声明性规范。在本文中,我们描述了Spoofax的体系结构,并介绍了使用重写规则的高级语言语义规范的习惯用法,展示了如何将分析重用于转换、代码生成和编辑服务,如错误标记、引用解析和内容完成。这些服务的实现由语言参数编辑器服务类支持,这些服务类可以由Eclipse IDE动态加载,从而允许在同一Eclipse环境中并行开发和使用新语言。

工具书类

  1. }}Spoofax项目。http://www.spofax.org/。谷歌学者谷歌学者
  2. }}P.Borras、D.Clement、T.Despeyroux、J.Incerpi、G.Kahn、B.Lang和V.Pascual。半人马座:系统。SIGPLAN否。,24(2):14--24, 1989.谷歌学者谷歌学者数字图书馆数字图书馆
  3. }}M.Bravenboer、K.T.Kalleberg、R.Vermaas和E.Visser。Stratego/XT 0.17。用于程序转换的语言和工具集。科学。公司的。编程,72(1-2):52-70,2008年6月。关于实验软件和工具包的特刊。谷歌学者谷歌学者数字图书馆数字图书馆
  4. }}M.Bravenboer、A.van Dam、K.Olmos和E.Visser。使用作用域动态重写规则进行程序转换。基础信息学,69(1-2):123--1782006。谷歌学者谷歌学者数字图书馆数字图书馆
  5. }}M.Bravenboer和E.Visser。对象的具体语法:无限制地嵌入和同化特定领域的语言。在OOPSLA中,第365-383页,2004年。谷歌学者谷歌学者数字图书馆数字图书馆
  6. }}F.Budinsky、D.Steinberg、E.Merks、R.Ellersick和T.J.Grose。Eclipse建模框架。Addison-Wesley,2004年。谷歌学者谷歌学者数字图书馆数字图书馆
  7. }}P.Charles、R.M.Fuhrer和S.M.Sutton,Jr.IMP:在Eclipse中创建特定于语言的IDE的元处理平台。在ASE 2007中,第485-488页,2007年。谷歌学者谷歌学者数字图书馆数字图书馆
  8. }}P.Charles、R.M.Fuhrer、S.M.Sutton,Jr.、E.Duesterwald和J.Vinju。加速在Eclipse中创建定制的、特定于语言的IDE。2009年OOPSLA。ACM,2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  9. }}S.Cook、G.Jones、S.Kent和A.C.Wills。使用Visual Studio DSL工具进行特定于域的开发。艾迪森·卫斯理,2007年。谷歌学者谷歌学者数字图书馆数字图书馆
  10. }}J.R.Cordy、C.D.Halpern-Hamu和E.Promislow。TXL:用于编程语言方言的快速原型系统。关于Comp。语言,第280-285页。IEEE,1988年。谷歌学者谷歌学者交叉引用交叉引用
  11. }}M.de Jonge、E.Nilsson-Nyman、L.C.L.Kats和E.Visser。为生成的解析器进行自然灵活的错误恢复。2010年SLE。谷歌学者谷歌学者数字图书馆数字图书馆
  12. }}A.v.Deursen、J.Heering和P.Klint,编辑。语言原型:代数规范方法,AMAST计算机系列第5卷。世界科学。出版物。Co.,1996年。谷歌学者谷歌学者数字图书馆数字图书馆
  13. }}S.Efftinge等人,《openArchitectureWare用户指南》。4.3版。可从以下位置获得http://www.eclipse.org/gmt/oaw/doc/4.3/html/contents/2008年4月。谷歌学者谷歌学者
  14. }}S.Efftinge和M.Voelter。oAW-xText:文本DSL的框架。在Eclipse峰会的建模研讨会上,2006年。谷歌学者谷歌学者
  15. }}M.福勒。正在运行的语言工作台-MPS。http://martinfowler.com/articles/mpsAgree.html, 2005.谷歌学者谷歌学者
  16. }}M.福勒。语言工作台:特定领域语言的杀手级应用程序?http://martinfowler.com/articles/languageWorkbench.html, 2005.谷歌学者谷歌学者
  17. }}M.福勒。后情报学。http://martinfowler.com/bliki/PostIntelliJ.html, 2005.谷歌学者谷歌学者
  18. }}M.福勒。针对特定领域语言的教学框架。IEEE软件,26:13--14,2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  19. }}T.Goldschmidt、S.Becker和A.Uhl。具体文本语法映射方法的分类。在ECMDA-FA 2008,LNCS第5095卷,第169-184页。施普林格,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  20. }}G.Hedin和E.Magnusson。JastAdd:一个面向方面的编译器构造系统。科学。计算。程序。,47(1):37--58, 2003.谷歌学者谷歌学者数字图书馆数字图书馆
  21. }}J.Heering、P.R.H.Hendriks、P.Klint和J.Rekers。语法定义形式主义SDF:参考手册。SIGPLAN否。,24(11):43--75, 1989.谷歌学者谷歌学者数字图书馆数字图书馆
  22. }}F.Heidenreich、J.Johannes、S.Karol、M.Seifert和C.Wende。模型文本语法的派生和细化。在ECMDA-FA中,第114-129页,2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  23. }}Z.Hemel、L.C.L.Kats、D.M.Groenewegen和E.Visser。通过模型转换生成代码。转换模块化的案例研究。柔和。和系统。建模,2009年。谷歌学者谷歌学者
  24. }}Z.Hemel和E.Visser。PIL:一种用于可重定向DSL的平台无关语言。2010年SLE。谷歌学者谷歌学者数字图书馆数字图书馆
  25. }}JetBrains。元编程系统。https://www.网址。jetbrains.com/mps。谷歌学者谷歌学者
  26. }}F.Jouault、J.Bezivin和I.Kurtev。TCS:模型工程中文本具体语法规范的DSL。在生成与组件工程(GPCE’06)中,第249-254页。ACM,2006年。谷歌学者谷歌学者数字图书馆数字图书馆
  27. }}K.T.Kalleberg和E.Visser。Spoofax:使用Stratego/XT进行程序转换的交互式开发环境。语言描述、工具和应用研讨会(LDTA 2007),第47-50页,2007年。谷歌学者谷歌学者
  28. }}K.T.Kalleberg和E.Visser。将转换语言与开放编译器融合。《语言描述、工具和应用研讨会》(LDTA 2007),ENTCS第203卷,第21-36页。爱思唯尔,2008年4月。谷歌学者谷歌学者数字图书馆数字图书馆
  29. }}L.C.L.Kats、M.de Jonge、E.Nilsson-Nyman和E.Visser。在生成的模块化语言环境中提供快速反馈。将错误恢复添加到无扫描仪通用LR解析中。在OOPSLA中,第445-4642009页。谷歌学者谷歌学者数字图书馆数字图书馆
  30. }}L.C.L.Kats、K.T.Kalleberg和E.Visser。用于可组合编辑器插件的领域特定语言。语言描述、工具和应用研讨会(LDTA 2009)。爱思唯尔,2009年4月。谷歌学者谷歌学者
  31. }}L.C.L.Kats、A.M.Sloane和E.Visser。修饰属性语法。属性评估符合战略规划。在编译程序构造会议(CC 2009)中,LNCS第5501卷,第142-157页。施普林格,2009年3月。谷歌学者谷歌学者数字图书馆数字图书馆
  32. }}L.C.L.Kats、E.Visser和G.Wachsmuth。纯粹的声明性语法定义:天堂失而复得。前进!,2010谷歌学者谷歌学者数字图书馆数字图书馆
  33. }}S.Kelly和J.-P.Tolvanen。领域特定建模。启用完整代码生成。John Wiley&Sons,Inc.,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  34. }}P.Klint先生。用于生成编程环境的元环境。ACM软件工程方法汇刊,2(2):176--2011993。谷歌学者谷歌学者数字图书馆数字图书馆
  35. }}P.Klint、T.van der Storm和J.Vinju。Rascal:一种用于源代码分析和操作的领域特定语言。在SCAM中,第168-177页,2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  36. }}H.Krahn、B.Rumpe和S.Volkel。Monticore:文本领域特定语言的模块化开发。在工具中,第297-3152008页。谷歌学者谷歌学者交叉引用交叉引用
  37. }}M.F.Kuiper和J.Saraiva。Lrc-面向增量语言工具的生成器。《编译器构造》(CC'98),第298-301页,英国伦敦,1998年。斯普林格·弗拉格。谷歌学者谷歌学者数字图书馆数字图书馆
  38. }}M.Mernik、J.Heering和A.Sloane。何时以及如何开发特定领域的语言。ACM计算调查(CSUR),37(4):3442005。谷歌学者谷歌学者数字图书馆数字图书馆
  39. }}N.Nystrom、M.Clarkson和A.Myers。Polyglot:Java的可扩展编译器框架。编译器构造(CC'03),2622:138--1522003年4月。谷歌学者谷歌学者数字图书馆数字图书馆
  40. }}M.Pfeiffer和J.Pichler。文本域特定语言的工具支持比较。在领域特定建模研讨会上,第1-7页,2008年。谷歌学者谷歌学者
  41. }}T.Reps和T.Teitelbaum。合成器生成器。SIGSOFT软件。工程注释,9(3):42-481984。谷歌学者谷歌学者数字图书馆数字图书馆
  42. }}S.Saunders、D.K.Fields和E.Belayev。IntelliJ IDEA正在运行。曼宁,2006年。谷歌学者谷歌学者数字图书馆数字图书馆
  43. }}C.西蒙尼。计算机语言的消亡,意图编程的诞生。技术报告,MS Research,1995年。谷歌学者谷歌学者
  44. }}M.Van den Brand、A.Van Deursen、J.Heering、H.De Jong等人。Asf+Sdf元环境——基于组件的语言开发环境。《编译器构造》,LNCS第44卷,第365-370页。斯普林格,2001年。谷歌学者谷歌学者数字图书馆数字图书馆
  45. }}M.G.J.van den Brand、H.de Jong、P.Klint和P.Olivier。高效的注释术语。软件,实践与经验,30(3):259-2912000。谷歌学者谷歌学者数字图书馆数字图书馆
  46. }}A.van Deursen、P.Klint和F.Tip。原点跟踪。符号计算杂志,15(5/6):523--5451993。谷歌学者谷歌学者数字图书馆数字图书馆
  47. }}A.van Deursen、P.Klint和J.Visser。特定领域的语言:带注释的书目。SIGPLAN否。,35(6):26--36, 2000.谷歌学者谷歌学者数字图书馆数字图书馆
  48. }}S.Vermolen和E.Visser。软件语言的异构耦合进化。MoDELS,第630-644页,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  49. }}E.维瑟。一系列语法定义形式。技术报告P9706,阿姆斯特丹大学编程研究小组,1997年7月。谷歌学者谷歌学者
  50. }}E.维瑟。具有具体对象语法的元编程。在GPCE中,第299-3152002页。谷歌学者谷歌学者数字图书馆数字图书馆
  51. }}E.维瑟。WebDSL:特定领域语言工程的案例研究,载于GTTSE,第291-3732007页。谷歌学者谷歌学者
  52. }}E.Visser、Z.-E.-A.Benaissa和A.P.Tolmach。使用重写策略构建程序优化器。在ICFP中,第13-26页,1998年。谷歌学者谷歌学者数字图书馆数字图书馆
  53. }}W.Waite和G.Goss。编译器构造。1984年{54}M.P.沃德。面向语言的编程。软件概念和工具,15(4):147--1611994。谷歌学者谷歌学者
  54. }}文本编辑框架(TEF)。http://www.informatik.hu-berlin.de/sam/meta-tools/tef。谷歌学者谷歌学者
  55. }}文本建模框架(TMF)。http://www.eclipse.org/modeling/tmf/。谷歌学者谷歌学者
  56. }}WAtson分析图书馆。http://wala.sourceforge.net/。谷歌学者谷歌学者

索引术语

  1. spofax语言工作台:语言和IDE的声明性规范规则

    建议

    评论

    登录选项

    检查您是否可以通过登录凭据或您的机构访问本文。

    登录

    完全访问权限

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用eReader联机查看。

    电子阅读器