Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2843915.2843917acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
short-paper

Building debuggers and other tools: we can "have it all"

Published: 04 July 2015 Publication History

Abstract

Software development tools that "instrument" running programs, notably debuggers, are presumed to demand difficult tradeoffs among performance, functionality, implementation complexity, and user convenience. A fundamental change in our thinking about such tools makes that presumption obsolete.
By building instrumentation directly into the core of a high-performance language implementation framework, tool-support can be always on, with confidence that optimization will apply uniformly to instrumentation and result in near zero overhead. Tools can be always available (and fast), not only for end user programmers, but also for language implementors throughout development.

References

[1]
Gilles Duboscq, Thomas Würthinger, and Hanspeter Mössenböck. Speculation without regret: reducing deoptimization meta-data in the Graal compiler. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14). ACM, New York, NY, USA, 187--193.
[2]
Michael Haupt and Hans Schippers. A Machine model for Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP) 2007. Lecture Notes in Computer Science Volume 4609, 2007, pp 501--524, Springer Verlag.
[3]
Urs Hölzle, Craig Chambers, and David Ungar. Debugging Optimized Code with Dynamic Deoptimization. In Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, 1992.
[4]
Ricky Lindeman, Lennart CL Kats, and Eelco Visser. Declaratively defining domain-specific language debuggers. In ACM SIGPLAN Notices. Vol. 47. No. 3. ACM, 2011.
[5]
Sukyoung Ryu and Norman Ramsey. Source-Level debugging for multiple languages with modest programming effort. Proceedings of the 14th international conference on Compiler Construction. Springer-Verlag, 2005.
[6]
Chris Seaton, Michael L. Van De Vanter, and Michael Haupt. Debugging at Full Speed. In Proceedings Workshop on Dynamic Languages and Applications DYLA '14. Edinburgh, (June 2014)
[7]
Michael L. Van De Vanter. The Documentary Structure of Source Code. Information and Software Technology, Volume 44, Issue 13, 1 October 2002, pp. 767--782.
[8]
Michael L. Van De Vanter, Chris Seaton, Michael Haupt, Thomas Würthinger, and David Leibs. A Flexible, High-Performance, Multi-Language Instrumentation Framework. In Preparation 2015.
[9]
Christian Wimmer, Michael Haupt, Michael L. Van De Vanter, Mick Jordan, Laurent Daynès, and Douglas Simon. Maxine: An approachable virtual machine for, and in, Java. ACM Transactions on Architecture and Code Optimization 9, 4, Article 30 (January 2013).
[10]
Hui Wu, Jeff Gray, and Marjan Mernik. Grammar--driven generation of domain-specific language debuggers. Software: Practice and Experience 38.10 (2008): 1073--1103.
[11]
Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko. One VM to Rule Them All. In Proceedings of Onward!, ACM Press, 2013.

Cited By

View all
  • (2020)TruffleWasmProceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3381052.3381325(88-100)Online publication date: 17-Mar-2020
  • (2019)Language-independent development environment support for dynamic runtimesProceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3359619.3359746(80-90)Online publication date: 20-Oct-2019
  • (2018)Efficient dynamic analysis for Node.jsProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179527(196-206)Online publication date: 24-Feb-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ICOOOLPS '15: Proceedings of the 10th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
July 2015
51 pages
ISBN:9781450336574
DOI:10.1145/2843915
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 ACM 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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 July 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. debugging
  2. instrumentation
  3. optimization
  4. tools
  5. virtual machine

Qualifiers

  • Short-paper

Conference

ECOOP '15

Acceptance Rates

Overall Acceptance Rate 11 of 14 submissions, 79%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2020)TruffleWasmProceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3381052.3381325(88-100)Online publication date: 17-Mar-2020
  • (2019)Language-independent development environment support for dynamic runtimesProceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3359619.3359746(80-90)Online publication date: 20-Oct-2019
  • (2018)Efficient dynamic analysis for Node.jsProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179527(196-206)Online publication date: 24-Feb-2018
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsACM SIGPLAN Notices10.1145/3170472.313384252:11(3-14)Online publication date: 24-Oct-2017
  • (2017)Practical partial evaluation for high-performance dynamic language runtimesACM SIGPLAN Notices10.1145/3140587.306238152:6(662-676)Online publication date: 14-Jun-2017
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsProceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages10.1145/3133841.3133842(3-14)Online publication date: 24-Oct-2017
  • (2017)Squeak Makes a Good Python DebuggerCompanion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming10.1145/3079368.3079402(1-8)Online publication date: 3-Apr-2017
  • (2017)Practical partial evaluation for high-performance dynamic language runtimesProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062381(662-676)Online publication date: 14-Jun-2017
  • (2017)Language-independent information flow tracking engine for program comprehension toolsProceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.5(346-355)Online publication date: 20-May-2017

View Options

Get Access

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