Advanced

DrAST: an inspection tool for attributed syntax trees (tool demo)

Lindholm, Joel; Thorsberg, Johan and Hedin, Görel LU (2016) 9th ACM SIGPLAN International Conference on Software Language Engineering (SLE), 2016 In SLE 2016 Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering p.176-180
Abstract
When implementing a language by means of attribute grammars, it is often useful to study example programs and their attributed trees, to understand the compiler structure, or for debugging. DrAST is a tool that allows interactive inspection of attributed trees. It is interfaced to the JastAdd metacompiler, and supports all JastAdd attribution mechanisms, such as demand evaluation, reference attributes (graph edges), and nonterminal attributes. A challenge in visualizing attributed trees is that they are large, even for small programs. To allow the user to focus on the aspects of interest, DrAST supports the interactive definition of filtered versions of the tree through a domain-specific language which allows conditional filtering based on... (More)
When implementing a language by means of attribute grammars, it is often useful to study example programs and their attributed trees, to understand the compiler structure, or for debugging. DrAST is a tool that allows interactive inspection of attributed trees. It is interfaced to the JastAdd metacompiler, and supports all JastAdd attribution mechanisms, such as demand evaluation, reference attributes (graph edges), and nonterminal attributes. A challenge in visualizing attributed trees is that they are large, even for small programs. To allow the user to focus on the aspects of interest, DrAST supports the interactive definition of filtered versions of the tree through a domain-specific language which allows conditional filtering based on the attributes themselves. We have used DrAST on a variety of language implementations, from tiny compilers used in teaching to a complete Java compiler. (Less)
Please use this url to cite or link to this publication:
author
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
in
SLE 2016 Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering
pages
5 pages
publisher
ACM
conference name
9th ACM SIGPLAN International Conference on Software Language Engineering (SLE), 2016
external identifiers
  • scopus:85006810252
ISBN
978-1-4503-4447-0
978-1-4503-4447-0
DOI
10.1145/2997364.2997378
language
English
LU publication?
yes
id
7c2117d2-29e7-4ec2-aa79-4c23b71ec879
date added to LUP
2016-12-20 11:22:28
date last changed
2017-01-15 04:44:20
@inproceedings{7c2117d2-29e7-4ec2-aa79-4c23b71ec879,
  abstract     = {When implementing a language by means of attribute grammars, it is often useful to study example programs and their attributed trees, to understand the compiler structure, or for debugging. DrAST is a tool that allows interactive inspection of attributed trees. It is interfaced to the JastAdd metacompiler, and supports all JastAdd attribution mechanisms, such as demand evaluation, reference attributes (graph edges), and nonterminal attributes. A challenge in visualizing attributed trees is that they are large, even for small programs. To allow the user to focus on the aspects of interest, DrAST supports the interactive definition of filtered versions of the tree through a domain-specific language which allows conditional filtering based on the attributes themselves. We have used DrAST on a variety of language implementations, from tiny compilers used in teaching to a complete Java compiler.},
  author       = {Lindholm, Joel and Thorsberg, Johan and Hedin, Görel},
  booktitle    = {SLE 2016 Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering},
  isbn         = {978-1-4503-4447-0},
  language     = {eng},
  month        = {11},
  pages        = {176--180},
  publisher    = {ACM},
  title        = {DrAST: an inspection tool for attributed syntax trees (tool demo)},
  url          = {http://dx.doi.org/10.1145/2997364.2997378},
  year         = {2016},
}