We show how to efficiently obtain linear a priori bounds on the heap space consumption of first-order functional programs. The analysis takes space reuse by explicit deallocation ...
Generating a random sampling of program trees with specified function and terminal sets is the initial step of many program evolution systems. I present a theoretical and experim...
Program differencing tools such as GNU diff identify individual differences but do not determine how those differences are related to each other. For example, an extract super...
Concurrency is inherent in today’s software. Unexpected interactions between concurrently executing threads often cause subtle bugs in concurrent programs. Such bugs are hard to...
Software engineers need to understand programs in order to effectively maintain them. The call graph, which presents the calling relationships between functions, is a useful repre...