Print Email Facebook Twitter Language-Independent Type-Dependent Name Resolution Title Language-Independent Type-Dependent Name Resolution Author Van Antwerpen, H. Neron, P. Tolmach, A. Visser, E. Wachsmuth, G. Faculty Electrical Engineering, Mathematics and Computer Science Department Software Technology Date 2015-12-31 Abstract We extend and combine two existing declarative formalisms, the scope graphs of Neron et al. and type constraint systems, to build a language-independent theory that can describe both name and type resolution for realistic languages with complex scope and typing rules. Unlike conventional static semantics presentations, our approach maintains a clear separation between scoping and typing concerns, while still being able to handle language constructs, such as class field access, for which name and type resolution are necessarily intertwined. We define a constraint scheme that can express both typing and name binding constraints, and give a formal notion of constraint satisfiability together with a sound algorithm for finding solutions in important special cases. We describe the details of constraint generation for a model language that illustrates many of the interesting resolution issues associated with modules, classes, and records. Our constraint generator and solver have been implemented in the Spoofax Language Workbench. To reference this document use: http://resolver.tudelft.nl/uuid:c6c4a976-ba81-40c3-8dd0-d72eb1ea22e7 Publisher Delft University of Technology, Software Engineering Research Group ISSN 1872-5392 Source http://swerl.tudelft.nl/bin/view/Main/TechnicalReports Source Report TD-SERG-2015-006 Part of collection Institutional Repository Document type report Rights © 2015 The Author(s) . Software Engineering Research Group, Department of Software Technology, Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology Files PDF TUD-SERG-2015-006.pdf 557.63 KB Close viewer /islandora/object/uuid:c6c4a976-ba81-40c3-8dd0-d72eb1ea22e7/datastream/OBJ/view