The application of program transformations and refactorings involves the risk of capturing variables, which may break the intended semantics of the transformed code. One way to resolve variable capture is by renaming of the involved identifiers. However, in a modular context, the renaming of exported declarations is undesirable (affecting a module’s clients), and the renaming of imported declarations is impos-sible (requiring changes to third-party modules). We present an algorithm name-fix that detects and elimi-nates variable capture modularly. We extend a previous non-modular version of name-fix in order to (i) minimize re-namings of exported declarations, (ii) propagate necessary renamings of exported declarations to clients, and (iii) ...
We establish a semantics for building grammars from a modularised specification in which modules are...
In Object-oriented Programming (OOP), the Cognitive Complexity (CC) of software is a metric of the d...
This dissertation defines "modular-objective coupling", and shows that programming language designs ...
Program transformations in terms of abstract syntax trees compromise referential integrity by introd...
We present an algorithm called name-fix that automatically eliminates variable capture from a genera...
Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inh...
Decompilation is the process of translating object code to source code and is usually the first step...
Decompilation is the process of translating object code to source code and is usually the first step...
syntax representation in which variables are not leaves and extraction of variable names from expres...
A refactoring is a program transformation that improves the design of the source code, while preserv...
Naive program transformations can have surprising effects due to the interaction between introduced ...
Descriptive names are crucial to understand code. How-ever, good names are notoriously hard to choos...
Abstract: Teamwork is the typical characteristic of software development, because the tasks can be s...
Name obfuscation is a software protection technique, which renames identifiers in a given program, t...
Transforming programs between two APIs or different versions of the same API is a common software en...
We establish a semantics for building grammars from a modularised specification in which modules are...
In Object-oriented Programming (OOP), the Cognitive Complexity (CC) of software is a metric of the d...
This dissertation defines "modular-objective coupling", and shows that programming language designs ...
Program transformations in terms of abstract syntax trees compromise referential integrity by introd...
We present an algorithm called name-fix that automatically eliminates variable capture from a genera...
Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inh...
Decompilation is the process of translating object code to source code and is usually the first step...
Decompilation is the process of translating object code to source code and is usually the first step...
syntax representation in which variables are not leaves and extraction of variable names from expres...
A refactoring is a program transformation that improves the design of the source code, while preserv...
Naive program transformations can have surprising effects due to the interaction between introduced ...
Descriptive names are crucial to understand code. How-ever, good names are notoriously hard to choos...
Abstract: Teamwork is the typical characteristic of software development, because the tasks can be s...
Name obfuscation is a software protection technique, which renames identifiers in a given program, t...
Transforming programs between two APIs or different versions of the same API is a common software en...
We establish a semantics for building grammars from a modularised specification in which modules are...
In Object-oriented Programming (OOP), the Cognitive Complexity (CC) of software is a metric of the d...
This dissertation defines "modular-objective coupling", and shows that programming language designs ...