Abstract: In textual software languages, names are used to reference elements like variables, methods, classes, etc. Name resolution analyses these names in order to establish references between definition and use sites of elements. We have identified reoccurring patterns for name bindings in programming languages and have introduced a declarative meta-language for the specification of name binding in terms of namespaces, definition sites, use sites, and scopes. Based on such declarative name binding specifications, we provide a language-parametric algorithm for static name resolution during compile-time. The name binding language has been integrated in the Spoofax Language Workbench so that semantic editor services such as reference resolution, constraint checking, and content completion, can be derived directly. In the presentation I will briefly motivate the need for a name binding language and then illustrate its application by developing the name binding rules for a small language.
Bio: Eelco Visser is Associate Professor in the Software Engineering Research Group at Delft University of Technology. His research interests include model-driven engineering, domain-specific languages, program transformation, and software deployment. He has a PhD in Computer Science from the University of Amsterdam, The Netherlands.Contact him at http://eelcovisser.org.