Affiliation:
1. Fernuniversität in Hagen, Germany
Abstract
Attribute grammars decorate the nodes of a program's parse tree with attributes whose values are defined by equations encoding the (static) semantics of a programming language. We show how replacing the equations of an attribute grammar with equivalent constraints that can be solved by a constraint solver allows us to compute repairs of a malformed program solely from a specification that was originally designed for checking its well-formedness. We present two repair modes --- shallow and deep fixing --- whose computed repair alternatives are guaranteed to repair every error on which they are invoked. While shallow fixing may introduce new errors, deep fixing never does; to make it tractable, we implement it using neighborhood search. We demonstrate the feasibility of our approach by implementing it on top of ExtendJ, an attribute grammar based Java compiler, and by applying it to an example from the Java EE context, detecting and fixing well-formedness errors (both real and injected) in a body of 14 open-source subject programs.
Funder
Deutsche Forschungsgemeinschaft
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Supporting Engineering Process Compliance via Generation of Detailed Guidance Actions;Proceedings of the 2024 International Conference on Software and Systems Processes;2024-09-04
2. Consistent change propagation within models;Software and Systems Modeling;2020-08-25
3. Relational reference attribute grammars: Improving continuous model validation;Journal of Computer Languages;2020-04
4. Model Finding in the EMF Ecosystem.;The Journal of Object Technology;2020
5. Detecting and exploring side effects when repairing model inconsistencies;Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering - SLE 2019;2019