Skip to main content

Lund University Publications

LUND UNIVERSITY LIBRARIES

Modular name analysis for Java using JastAdd

Ekman, Torbjörn LU and Hedin, Görel LU orcid (2006) Generative and Transformational Techniques in Software Engineering. International Summer School, GTTSE 2005. Revised Papers 4143. p.422-436
Abstract
Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inheritance, qualified access, and syntactic ambiguities. We show how Java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal Java language specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal... (More)
Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inheritance, qualified access, and syntactic ambiguities. We show how Java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal Java language specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal language specification. This enables equations to use both context-free and context-dependent concepts and leads to improved separation of concerns. A full Java 1.4 compiler has been implemented to validate the technique (Less)
Please use this url to cite or link to this publication:
author
and
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
keywords
JastAdd compiler construction system, context-dependent rewrites, Java language specification, complex visibility rules, modular name analysis, Java 1.4 compiler, Java name analysis
host publication
Generative and Transformational Techniques in Software Engineering
volume
4143
pages
422 - 436
publisher
Springer
conference name
Generative and Transformational Techniques in Software Engineering. International Summer School, GTTSE 2005. Revised Papers
conference location
Braga, Portugal
conference dates
2005-07-04 - 2005-07-08
external identifiers
  • wos:000241630000018
  • scopus:33750059462
ISSN
0302-9743
1611-3349
ISBN
3-540-45778-X
DOI
10.1007/11877028_18
language
English
LU publication?
yes
id
c24f1459-2ba0-4d89-8690-374e2b0a2657 (old id 615224)
date added to LUP
2016-04-01 12:05:36
date last changed
2021-10-06 04:42:44
@inproceedings{c24f1459-2ba0-4d89-8690-374e2b0a2657,
  abstract     = {Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inheritance, qualified access, and syntactic ambiguities. We show how Java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal Java language specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal language specification. This enables equations to use both context-free and context-dependent concepts and leads to improved separation of concerns. A full Java 1.4 compiler has been implemented to validate the technique},
  author       = {Ekman, Torbjörn and Hedin, Görel},
  booktitle    = {Generative and Transformational Techniques in Software Engineering},
  isbn         = {3-540-45778-X},
  issn         = {0302-9743},
  language     = {eng},
  pages        = {422--436},
  publisher    = {Springer},
  title        = {Modular name analysis for Java using JastAdd},
  url          = {http://dx.doi.org/10.1007/11877028_18},
  doi          = {10.1007/11877028_18},
  volume       = {4143},
  year         = {2006},
}