[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3136014.3136019acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Debugging with domain-specific events via macros

Published: 23 October 2017 Publication History

Abstract

Extensible languages enable the convenient construction of many kinds of domain-specific languages (DSLs) by mapping domain-specific surface syntax into the host language's core forms in a layered and composable way. The host language's debugger, however, reports evaluation and data details in ways that reflect the host language, instead of the DSL in its own terms, and closing the gap may require more than correlating host evaluation steps to the original DSL source. In this paper, we describe an approach to DSL construction with macros that pairs the mapping of DSL terms to host terms with a mapping to convert primitive events back to domain-specific concepts. Domain-specific events are then suitable for presenting to a user or wiring into a domain-specific visualization. We present a core model of evaluation and events, and we present a language design---analogous to pattern-based notations for macros, but in the other direction---for describing how events in a DSL's expansion are mapped to events at the DSL's level.

Supplementary Material

Auxiliary Archive (sle17-sle17main7-aux.zip)

References

[1]
Mikhail Auguston, Clinton Jeffery, and Scott Underwood. A Monitoring Language for Run Time and Post-Mortem Behavior Analysis and Visualization. In Proc. Fifth Intl. Wksp. on Automated Debugging, 2003.
[2]
Peter C. Bates. Debugging Heterogeneous Distributed Systems Using Event-Based Models of Behavior. ACM Transactions on Computer Systems 13(1), 1995.
[3]
Erwan Bousse, Jonathan Corley, Benoit Combemale, Jeff Gray, and Benoit Baudry. Supporting Efficient and Advanced Omniscient Debugging for xDSMLs. In Proc. Software Language Engineering, 2015.
[4]
Mark G. J. Van Den Brand, B. Cornelissen, Pieter A. Olivier, and Jurgen J. Vinju. TIDE: A Generic Debugging Framework — Tool Demonstration. Electronic Notes in Theoretical Computer Science 141(4), 2005.
[5]
Stephen Chang, Alex Knauth, and Ben Greenman. Type Systems as Macros. In Proc. ACM Sym. Principles of Programming Languages, 2017.
[6]
Andrei Chis, Tudor Girba, and Oscar Nierstrasz. The Moldable Debugger: a Framework for Developing Domain-Specific Debuggers. Software Language Engineering 8706, 2014.
[7]
Jonathan Corley, Brian P. Eddy, Eugene Syriani, and Jeff Gray. Efficient and Scalable Omniscient Debugging for Model Transformations. Software Quality Journal 25(1), 2017.
[8]
Julien Deantoni. Modeling the Behavioral Semantics of Heterogeneous Languages and their Coordination. In Proc. Architecture Centric Virtual Integration, 2016.
[9]
Arie van Deursen, Paul Klint, and Joost Visser. Domain-Specific Languages: An Annotated Bibliography. ACM SIGPLAN Notices 35(6), 2000.
[10]
Mireille Ducasse. Coca: An Automated Debugger for C. In Proc. Intl. Conf. on Software Engineering, 1999.
[11]
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam TobinHochstadt. The Racket Manifesto. In Proc. 1st Summit on Advances in Programming Languages, 2015.
[12]
Mattias Felleisen and Daniel P. Friedman. A Calculus for Assignments in Higher-Order Languages. In Proc. ACM Sym. Principles of Programming Languages, 1987.
[13]
Spencer P. Florence, Burke Fetscher, Matthew Flatt, William H. Temps, Tina Kiguradze, Dennis P. West, Charlotte Niznik, Paul R. Yarnold, Robert Bruce Findler, and Steven M. Belknap. POP-PL: A Patient-Oriented Prescription Programming Language. In Proc. Generative Programming and Component Engineering, 2015.
[14]
Pedro Rangei Henriques, Maria Joao Varanda Pereira, Marjan Mernik, Mitja Lenic, Jeff Gray, and Hui Wu. Automatic Generation of Language-Based Tools Using the LISA System. IEE Proceedings - Software 152(2), 2005.
[15]
Mark Scott Johnson. The Design of a High-Level, LanguageIndependent Symbolic Debugging System. In Proc. ACM ’77 Annual Conf., 1977.
[16]
Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic Macro Expansion. In Proc. ACM Sym. on Lisp and Functional Programming, 1986.
[17]
Xiangqi Li and Matthew Flatt. Medic: Metaprogramming and TraceOriented Debugging. In Proc. Wksp. on Future Programming, 2015.
[18]
Ricky T. Lindeman, Lennart C. L. Kats, and Eelco Visser. Declaratively Defining Domain-Specific Language Debuggers. In Proc. Generative Programming and Component Engineering, 2011.
[19]
Guillaume Marceau, Gregory H. Cooper, Jonathan P. Spiro, Shriram Krishnamurthi, and Steven P. Reiss. The Design and Implementation of a Dataflow Language for Scriptable Debugging. Automated Software Engineering 14(1), 2006.
[20]
Marjan Mernik, Jan Heering, and Anthony M. Sloane. When and How to Develop Domain-Specific Languages. ACM Computing Surveys 37(4), 2005.
[21]
Simon Van Mierlo, Claudio Gomes, and Hans Vangheluwe. Explicit Modelling and Synthesis of Debuggers for Hybrid Simulation Languages. In Proc. Sym. on Theory of Modeling and Simulation, 2017.
[22]
Ronald A. Olsson, Richard H. Crawford, and W. Wilson Ho. Dalek: A GNU, Improved Programmable Debugger. In Proc. USENIX Technical Conf., 1990.
[23]
Sam Tobin-Hochstadt, Vincent St-Amour, Ryan Culpepper, Matthew Flatt, and Matthias Felleisen. Languages as Libraries. In Proc. ACM Conf. Programming Language Design and Implementation, 2011.
[24]
Martin P. Ward. Language Oriented Programming. Software— Concepts and Tools 15(4), 1994.
[25]
Hui Wu, Jeff Gray, and Marjan Mernik. Grammar-Driven Generation of Domain-Specific Language Debuggers. Software—Practice & Experience 38(10), 2008.
[26]
Hui Wu, Jeff Gray, Suman Roychoudhury, and Marjan Mernik. Weaving a Debugging Aspect into Domain-Specific Language Grammars. In Proc. Sym. on Applied Computing, 2005.

Cited By

View all
  • (2021)Profiling dataflow systems on multiple abstraction levelsProceedings of the Sixteenth European Conference on Computer Systems10.1145/3447786.3456254(474-489)Online publication date: 21-Apr-2021
  • (2021)Debugging and Verification Tools for Lingua Franca in Gemoc Studio2021 Forum on specification & Design Languages (FDL)10.1109/FDL53530.2021.9568383(01-08)Online publication date: 8-Sep-2021
  • (2020)Compiler and runtime support for continuation marksProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385981(45-58)Online publication date: 11-Jun-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2017: Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering
October 2017
267 pages
ISBN:9781450355254
DOI:10.1145/3136014
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 October 2017

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. Debugging
  2. domain-specific languages
  3. events

Qualifiers

  • Research-article

Conference

SPLASH '17
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 11 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Profiling dataflow systems on multiple abstraction levelsProceedings of the Sixteenth European Conference on Computer Systems10.1145/3447786.3456254(474-489)Online publication date: 21-Apr-2021
  • (2021)Debugging and Verification Tools for Lingua Franca in Gemoc Studio2021 Forum on specification & Design Languages (FDL)10.1109/FDL53530.2021.9568383(01-08)Online publication date: 8-Sep-2021
  • (2020)Compiler and runtime support for continuation marksProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385981(45-58)Online publication date: 11-Jun-2020
  • (2019)Rebuilding racket on chez scheme (experience report)Proceedings of the ACM on Programming Languages10.1145/33416423:ICFP(1-15)Online publication date: 26-Jul-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media