Type checking and type inference are important concepts and methods of programming languages and software engineering. Type checking is a way to ensure some level of consistency, d...
—More and more current software systems rely on non trivial coordination logic for combining autonomous services typically running on different platforms and often owned by diffe...
Maintaining software systems is getting more complex and difficult task, as the scale becomes larger. It is generally said that code clone is one of the factors that make softwar...
Program flow analysis has many applications in software tools for program understanding, restructuring, verification, testing and reverse engineering. There are two important re...
In practice, it is quite difficult to write correct multithreaded programs due to the potential for unintended and nondeterministic interference between parallel threads. A funda...