ABSTRACT
Conventional debuggers require programmers to work on multiple levels of abstraction at once when inspecting call stacks or data. This demands considerable cognitive overhead and deep system knowledge of all implementation technologies involved. When developing an interpreter, programmers often create a dedicated debugger to have a higher-level perspective on the client-language; the resulting use of multiple debuggers at once leads to mental context switches and needs an elaborated method. We present an integrated debugging tool in which interpreter developers define and select the levels of abstraction on which they focus. Our debugger provides them with an abstraction-specialized view. We consider both host-language and guest-language levels, since either may be levels of interest in a debugging session. We show how this separation into host-language levels can ease the debugging of applications through filtering call stacks and specializing call stack representation on levels.
- Charles, P. et al. 2009. Accelerating the creation of customized, language-Specific IDEs in Eclipse. ACM Sigplan Notices. 44, 10 (2009), 191. Google ScholarDigital Library
- Chis, A. et al. 2015. Practical domain-specific debuggers using the Moldable Debugger framework. Computer Languages, Systems and Structures. 44, (Dec. 2015), 89-113. Google ScholarDigital Library
- Chis, A. et al. 2015. The moldable inspector. 2015 ACM - Onward! 2015 (New York, New York, USA, Oct. 2015), 44-60. Google ScholarDigital Library
- Erdweg, S. et al. 2012. Language Composition Untangled. LDTA '12. (2012). Google ScholarDigital Library
- Freudenberg, B. et al. 2014. SqueakJS A Modern and Practical Smalltalk that Runs in Any Browser. DLS '14. (2014), 57-66. Google ScholarDigital Library
- Pavletic, D. et al. 2014. Extensible Debuggers for Extensible Languages. Softwaretechnik-Trends. 33, 2 (2014), 51-52.Google ScholarCross Ref
- Pavletic, D. and Raza, S.A. 2015. Multi-Level Debugging for Extensible Languages. Workshop Software-Reengineering und - Evolution. 17 (2015), 21-23.Google Scholar
- Renggli, L. et al. 2010. Embedding Languages Without Breaking Tools. ECOOP. (2010), 380-404. Google ScholarDigital Library
- Wu, H. et al. 2004. Debugging Domain-Specific Languages In Eclipse. Eclipse Technology Exchange Poster. (2004), 1-5.Google Scholar
Index Terms
- Multi-level debugging for interpreter developers
Recommendations
Crossing abstraction barriers when debugging in dynamic languages
SAC '17: Proceedings of the Symposium on Applied ComputingProgrammers use abstractions to reduce implementation effort and focus on domain-specifics. The resulting application often runs in a convenient guest runtime that is provided by an increasingly complex ecosystem of libraries, VMs, JIT-compilers, ...
Exploration of modularity and reusability of domain-specific languages
Features for creating modular and reusable domain-specific languages are presented.These features are illustrated with a non-trivial expression DSL in MetaMod.A comparison between the implementation in MetaMod and in Jetbrains MPS is shown.The ...
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