Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3567512.3567525acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article
Open access

Property Probes: Source Code Based Exploration of Program Analysis Results

Published: 01 December 2022 Publication History

Abstract

We present property probes, a mechanism for helping a developer interactively explore partial program analysis results in terms of the source program, and as the program is edited. A node locator data structure is introduced that maps between source code spans and program representation nodes, and that helps identify probed nodes in a robust way, after modifications to the source code. We have developed a client-server based tool supporting property probes, and argue that it is very helpful in debugging and understanding program analyses. We have evaluated our tool on several languages and analyses, including a full Java compiler and a tool for intraprocedural dataflow analysis. Our performance results show that the probe overhead is negligible even when analyzing large projects.

References

[1]
[n. d.]. Apache(tm) FOP - a print formatter driven by XSL formatting objects (XSL-FO) and an output independent formatter. — xmlgraphics.apache.org. https://xmlgraphics.apache.org/fop/ [Accessed 28-Jun-2022]
[2]
[n. d.]. Clang Static Analyzer — clang-analyzer.llvm.org. https://clang-analyzer.llvm.org/ [Accessed 22-Jun-2022]
[3]
[n. d.]. JastAdd API Docs — extendj.org. http://extendj.org/doc/ [Accessed 28-Jun-2022]
[4]
[n. d.]. Monaco Editor — microsoft.github.io. https://microsoft.github.io/monaco-editor/ [Accessed 22-Jun-2022]
[5]
Moritz Beller, Niels Spruit, Diomidis Spinellis, and Andy Zaidman. 2018. On the dichotomy of debugging behavior among programmers. In Proceedings of the 40th International Conference on Software Engineering. 572–583.
[6]
Georg Dotzler and Michael Philippsen. 2016. Move-optimized source code tree differencing. In 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE). 660–671.
[7]
Torbjörn Ekman and Görel Hedin. 2007. The Jastadd Extensible Java Compiler. SIGPLAN Not., 42, 10 (2007), oct, 1–18. issn:0362-1340 https://doi.org/10.1145/1297105.1297029
[8]
Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, and Martin Monperrus. 2014. Fine-grained and accurate source code differencing. In Proceedings of the 29th ACM/IEEE international conference on Automated software engineering. 313–324.
[9]
Niklas Fors and Görel Hedin. 2015. A JastAdd implementation of Oberon-0. Sci. Comput. Program., 114 (2015), 74–84. https://doi.org/10.1016/j.scico.2015.02.002
[10]
Niklas Fors and Görel Hedin. 2016. Bloqqi: Modular Feature-Based Block Diagram Programming. In Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2016). Association for Computing Machinery, New York, NY, USA. 57–73. isbn:9781450340762 https://doi.org/10.1145/2986012.2986026
[11]
Veit Frick, Thomas Grassauer, Fabian Beck, and Martin Pinzger. 2018. Generating accurate and compact edit scripts using tree differencing. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME). 264–274.
[12]
Görel Hedin. 2000. Reference attributed grammars. Informatica (Slovenia), 24, 3 (2000), 301–317.
[13]
Joel Lindholm, Johan Thorsberg, and Görel Hedin. 2016. DrAST: an inspection tool for attributed syntax trees (tool demo). In Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, Amsterdam, The Netherlands, October 31 - November 1, 2016, Tijs van der Storm, Emilie Balland, and Dániel Varró (Eds.). ACM, 176–180. http://dl.acm.org/citation.cfm?id=2997378
[14]
Jakob Nielsen. 1993. Response times: the three important limits. Usability Engineering.
[15]
Rohan Padhye, Koushik Sen, and Paul N Hilfinger. 2019. Chocopy: A programming language for compilers courses. In Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E. 41–45.
[16]
Idriss Riouak, Christoph Reichenbach, Görel Hedin, and Niklas Fors. 2021. A Precise Framework for Source-Level Control-Flow Analysis. In 2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM). 1–11.
[17]
Anthony M. Sloane. 1999. Debugging Eli-Generated Compilers With Noosa. In Compiler Construction, 8th International Conference, CC’99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS’99, Amsterdam, The Netherlands, 22-28 March, 1999, Proceedings, Stefan Jähnichen (Ed.) (Lecture Notes in Computer Science, Vol. 1575). Springer, 17–31. https://doi.org/10.1007/978-3-540-49051-7_2
[18]
Steven L. Tanimoto. 2013. A perspective on the evolution of live programming. In Proceedings of the 1st International Workshop on Live Programming, LIVE 2013, San Francisco, California, USA, May 19, 2013, Brian Burg, Adrian Kuhn, and Chris Parnin (Eds.). IEEE Computer Society, 31–34. https://doi.org/10.1109/LIVE.2013.6617346
[19]
Arie Van Deursen, Paul Klint, and Frank Tip. 1993. Origin tracking. Journal of Symbolic Computation, 15, 5-6 (1993), 523–545.
[20]
Harald Vogt, S. Doaitse Swierstra, and Matthijs F. Kuiper. 1989. Higher-Order Attribute Grammars. In Proceedings of the ACM SIGPLAN’89 Conference on Programming Language Design and Implementation (PLDI), Portland, Oregon, USA, June 21-23, 1989, Richard L. Wexelblat (Ed.). ACM, 131–145.
[21]
Kevin Williams and Eric Van Wyk. 2014. Origin Tracking in Attribute Grammars. In Software Language Engineering - 7th International Conference, SLE 2014, Västerås, Sweden, September 15-16, 2014. Proceedings, Benoît Combemale, David J. Pearce, Olivier Barais, and Jurgen J. Vinju (Eds.) (Lecture Notes in Computer Science, Vol. 8706). Springer, 282–301. https://doi.org/10.1007/978-3-319-11245-9_16

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2022: Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering
November 2022
278 pages
ISBN:9781450399197
DOI:10.1145/3567512
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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 2022

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. debugging
  2. program analysis
  3. property probes

Qualifiers

  • Research-article

Conference

SLE '22
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)160
  • Downloads (Last 6 weeks)34
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media