Objects model the world, and state is fundamental to a faithful modeling. Engineers use state machines to understand and reason about state transitions, but programming languages ...
Jonathan Aldrich, Joshua Sunshine, Darpan Saini, Z...
Model transformations provide a powerful capability to automate model refinements. However, the use of model transformation languages may present challenges to those who are unfami...
The development processes of open source software are different from traditional closed source development processes. Still, open source software is frequently of high quality. Th...
Software upgrades are unreliable, often causing downtime or data loss. I propose Imago, an approach for removing the leading causes of upgrade failures (broken dependencies) and o...
Design pattern density is a metric that measures how much of an object-oriented design can be understood and represented as instances of design patterns. Expert developers have lo...
Programmers build large-scale systems with multiple languages to reuse legacy code and leverage languages best suited to their problems. For instance, the same program may use Jav...
Byeongcheol Lee, Martin Hirzel, Robert Grimm, Kath...
Programs written in managed languages are compiled to a platform-independent intermediate representation, such as Java bytecode. The relative high level of Java bytecode has engen...