Overview Statistic: PDF-Downloads (blue) and Frontdoor-Views (gray)
  • search hit 1 of 89
Back to Result List

Imagine There’s No Source Code: Replay Diagnostic Location Information in Dynamic EDSL Meta-programming

  • Programs in embedded domain-specific languages are realized as graphs of objects of the host language rather than as static input texts. This property enables dynamic meta-programming, but also makes it harder to attach location information to diagnostic messages that arise at a later stage, after the program graph construction. Thus, EDSL-generating expressions and algorithms can be difficult to debug. Here, we present a technique for transparently capturing and replaying location informationPrograms in embedded domain-specific languages are realized as graphs of objects of the host language rather than as static input texts. This property enables dynamic meta-programming, but also makes it harder to attach location information to diagnostic messages that arise at a later stage, after the program graph construction. Thus, EDSL-generating expressions and algorithms can be difficult to debug. Here, we present a technique for transparently capturing and replaying location information about the origin of EDSL program objects. It has been implemented in the context of the LLJava-live EDSL-to-bytecode compiler framework on the JVM. The basic idea can be generalized to other contexts, and to any managed runtime environment with reified stack tracesshow moreshow less
Metadaten
Author:Baltasar Trancón y WidemannORCiD, Markus LepperORCiD
DOI:https://doi.org/10.1145/3679007.3685061
Parent Title (English):MPLR 2024: Proceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes
Publisher:ACM
Place of publication:New York
Editor:M. Anton Ertl, Christoph M. Kirsch
Document Type:Conference Proceeding
Language:English
Year of Publishing:2024
Year of Publishing:2024
Release Date:2024/09/17
Page Number:11
First Page:1
Last Page:11
Institutes:Fachbereich Informatik und Medien
open_access (DINI-Set):open_access
Licence (German):Creative Commons - CC BY-NC-ND - Namensnennung - Nicht kommerziell - Keine Bearbeitungen 4.0
Einverstanden ✔
Diese Webseite verwendet technisch erforderliche Session-Cookies. Durch die weitere Nutzung der Webseite stimmen Sie diesem zu. Unsere Datenschutzerklärung finden Sie hier.