Abstract
Tool support is vital to the effectiveness of domain-specific languages. With language workbenches, domain-specific languages and their tool support can be generated from a combined, high-level specification. This paper shows how such a specification can be extended to describe a debugger for a language. To realize this, we introduce a meta-language for coordinating the debugger that abstracts over the complexity of writing a debugger by hand. We describe the implementation of a language-parametric infrastructure for debuggers that can be instantiated based on this specification. The approach is implemented in the Spoofax language workbench and validated through realistic case studies with the Stratego transformation language and the WebDSL web programming language.
- M. Auguston. Building program behavior models. In ECAI Workshop on Spatial and Temporal Reasoning, pages 19--26, 2007.Google Scholar
- M. Bravenboer, K. T. Kalleberg, R. Vermaas, and E. Visser. Stratego/XT 0.17. A language and toolset for program transformation. Science of Computer Programming, 72 (1-2): 52--70, 2008. Google ScholarDigital Library
- P. Charles, R. M. Fuhrer, S. M. S. Jr., E. Duesterwald, and J. Vinju. Accelerating the creation of customized, language-specific IDEs in eclipse. In S. Arora and G. T. Leavens, editors, Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, 2009. Google ScholarDigital Library
- J. C. Cleaveland. Building application generators. Softw., 5 (4), 1988. Google ScholarDigital Library
- S. Efftinge and M. Voelter. oAW xText: A framework for textual DSLs. In Workshop on Modeling Symposium at Eclipse Summit, 2006.Google Scholar
- R. E. Faith, L. S. Nyland, and J. Prins. Khepera: A system for rapid implementation of domain specific languages. In Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA. USENIX, 1997. Google ScholarDigital Library
- M. Fowler. Language workbenches: The killer-app for domain specific languages? http://www.martinfowler.com/articles/languageWorkbench.html, 2005.Google Scholar
- M. Fowler. Domain-Specific Languages. Addison Wesley, 2011. Google ScholarDigital Library
- D. M. Groenewegen, Z. Hemel, and E. Visser. Separation of concerns and linguistic integration in WebDSL. Software, 27 (5), September/October 2010. Google ScholarDigital Library
- Z. Hemel and E. Visser. Declaratively programming the mobile web with mobl. In Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011. ACM, 2011. Google ScholarDigital Library
- P. Henriques, M. Pereira, M. Mernik, M. Lenic, J. Gray, and H. Wu. Automatic generation of language-based tools using the LISA system. Software, IEE Proceedings -, 152 (2): 54--69, april 2005.Google ScholarCross Ref
- L. C. L. Kats and E. Visser. The Spoofax language workbench: rules for declarative specification of languages and IDEs. In W. R. Cook, S. Clarke, and M. C. Rinard, editors, Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, pages 444--463. ACM, 2010. Google ScholarDigital Library
- L. C. L. Kats, E. Visser, and G. Wachsmuth. Pure and declarative syntax definition: paradise lost and regained. In W. R. Cook, S. Clarke, and M. C. Rinard, editors, Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, pages 918--932. ACM, 2010. Google ScholarDigital Library
- P. Klint. A meta-environment for generating programming environments. Transactions on Software Engineering Methodology, 2 (2): 176--201, 1993. Google ScholarDigital Library
- T. Kosar, N. Oliveira, M. Mernik, V. Pereira, M. Crepinsek, C. Da, and R. Henriques. Comparing general-purpose and domain-specific languages: An empirical study. Computer Science and Information Systems, 7 (2): 247--264, 2010.Google ScholarCross Ref
- H. Krahn, B. Rumpe, and S. Völkel. Monticore: Modular development of textual domain specific languages. In R. F. Paige and B. Meyer, editors, Objects, Components, Models and Patterns, TOOLS EUROPE 2008, volume 11 of LNBIP, pages 297--315. Springer, 2008.Google Scholar
- R. Mannadiar and H. Vangheluwe. Debugging in domain-specific modelling. In Software language engineering, SLE'10, pages 276--285. Springer-Verlag, 2011. Google ScholarDigital Library
- M. Mernik, J. Heering, and A. M. Sloane. When and how to develop domain-specific languages. Computing Surveys, 37 (4): 316--344, 2005. Google ScholarDigital Library
- D. Rebernak, M. Mernik, H. Wu, and J. G. Gray. Domain-specific aspect languages for modularising crosscutting concerns in grammars. IEE Proceedings - Software, 3 (3): 184--200, 2009.Google Scholar
- Y. Smaragdakis and D. Batory. Application generators. Encyclopedia of Electrical and Electronics Engineering, 2000.Google Scholar
- M. van den Brand, B. Cornelissen, P. A. Olivier, and J. J. Vinju. TIDE: A generic debugging framework - tool demonstration. ENTCS, 141 (4): 161--165, 2005. Google ScholarDigital Library
- I. Vessey. Toward a theory of computer program bugs: An empirical test. Int. Journal of Man-Machine Studies, 30 (1): 23--46, 1989. Google ScholarDigital Library
- E. Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, September 1997.Google Scholar
- E. Visser. WebDSL: A case study in domain-specific language engineering. In R. Lämmel, J. Visser, and J. Saraiva, editors, Generative and Transformational Techniques in Software Engineering II, Int. Summer School, GTTSE 2007, volume 5235 of LNCS, pages 291--373. Springer, 2007. Google ScholarDigital Library
- M. Voelter and K. Solomatov. Language modularization and composition with projectional language workbenches illustrated with MPS. In M. van den Brand, B. Malloy, and S. Staab, editors, Software Language Engineering, SLE 2010, LNCS. Springer, 2010.Google Scholar
- D. S. Wile. Supporting the DSL spectrum. CIT. Journal of computing and information technology, 9 (4): 263--287, 2001.Google Scholar
- H. Wu, J. Gray, and M. Mernik. Grammar-driven generation of domain-specific language debuggers. Software: Practice and Experience, 38 (10): 1073--1103, 2008. Google ScholarDigital Library
Index Terms
- Declaratively defining domain-specific language debuggers
Recommendations
Language extension and composition with language workbenches
OOPSLA '10: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companionDomain-specific languages (DSLs) provide high expressive power focused on a particular problem domain. They provide linguistic abstractions and specialized syntax specifically designed for a domain, allowing developers to avoid boilerplate code and low-...
Declaratively defining domain-specific language debuggers
GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineeringTool support is vital to the effectiveness of domain-specific languages. With language workbenches, domain-specific languages and their tool support can be generated from a combined, high-level specification. This paper shows how such a specification ...
The spoofax language workbench: rules for declarative specification of languages and IDEs
OOPSLA '10Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. Spoofax integrates language processing techniques for parser generation, meta-programming, and IDE development into ...
Comments