Domain-specific program profiling and its application to attribute grammars and term rewriting

Anthony M. Sloane*, Matthew Roberts

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

3 Citations (Scopus)

Abstract

We present a method for profiling programs that are written using domain-specific languages. Instead of reporting execution in terms of implementation details as in most existing profilers, our method operates at the level of the problem domain. Program execution generates a stream of events that summarises the execution in terms of domain concepts and operations. The events enable us to construct a hierarchical model of the execution. A flexible reporting system summarises the execution along developer-chosen model dimensions. The result is a flexible way for a developer to explore the execution of their program without requiring any knowledge of the domain-specific language implementation. These ideas are embodied in a new profiling library called dsprofile that is independent of the problem domain so it has no specific knowledge of the data and operations that are being profiled. We illustrate the utility of dsprofile by using it to profile programs that are written using our Kiama language processing library. Specifically, we instrument Kiama's attribute grammar and term rewriting domain-specific languages to use dsprofile to generate events that report on attribute evaluation and rewrite rule application. Examples of typical language processing tasks show how domain-specific profiling can help to diagnose problems in Kiama-based programs without the developer needing to know anything about how Kiama is implemented.

Original languageEnglish
Pages (from-to)488-510
Number of pages23
JournalScience of Computer Programming
Volume96
Issue numberP4
DOIs
Publication statusPublished - 15 Dec 2014

Fingerprint

Dive into the research topics of 'Domain-specific program profiling and its application to attribute grammars and term rewriting'. Together they form a unique fingerprint.

Cite this