How does compiler optimization affect binary code differences? In this work, we perform a systematic study using search-based iterative compilation. We have built an auto-tuning framework called BinTuner that iteratively compiles to adjust the differences in binary code. Our results demonstrate the effect of modern compiler optimization on binary code difference has been swept under the carpet for a long time. We wish our study can help the research community redesign the optimization-resistance experiments and evaluate the compiler-agnostic capability.
We give an introduction to reflective towers of interpreters, a semantic model of reflection with a user level interpreted by a meta level interpreted by a meta meta level and so on.
Did you think test case reduction was all about debugging? Find out how test case reducers can be used for program optimisation, to generate high coverage tests, for program understanding, and even for fuzzing!
Test case reducers are useful tools that can help you to simplify complex inputs that trigger bugs. In this post — the first in a series — we’ll give an overview of how test case reducers work.
Fluent APIs emerge from a funky and popular design technique. We learn what they are, how they benefit programmers, and how to create them.
Sometimes functions are not enough.