Software systems are often written in more than one programming language. During development, programmers need to understand not only the dependencies among code in a particular l...
Daniel L. Moise, Kenny Wong, H. James Hoover, Daqi...
To make it practical to mechanize proofs in programming language metatheory, several capabilities are required of the theorem proving framework. One must be able to represent and ...
Some type class instances can be automatically derived from the structure of types. As a result, the Haskell language includes the “deriving” mechanism to automatic generates ...
Assertions have long been used to validate the functionality of software systems. Researchers and practitioners have extended them for validation of non-functional requirements, s...
Software may contain functionality that does not align with its architecture. Such cross-cutting concerns do not exist from the beginning but emerge over time. By analysing where ...