Select Page

PL Perspectives

Perspectives on computing and technology from and for those with an interest in programming languages.
Undefined Behavior deserves a better reputation

Undefined Behavior deserves a better reputation

“Undefined Behavior” often has a bad reputation. But what, really, is Undefined Behavior, and is it actually that bad?
In this blog post, I will look at this topic from a PL perspective, and argue that Undefined Behavior is a valuable tool in a language designer’s toolbox.

Read more...

When Compiler Optimization Meets Binary Code Difference

When Compiler Optimization Meets Binary Code Difference

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.

Read more...

Neural network verification: Where are we and where do we go from here?

Neural network verification: Where are we and where do we go from here?

Deep learning has transformed the way we think of software and what it can do. But deep neural networks are fragile and their behaviors are often surprising. In many settings, we need to provide formal guarantees on the safety, security, correctness, or robustness of neural networks. In this post, I will talk about the verification problem for neural networks and some of the prominent verification techniques that are being developed. I will also discuss the great challenges that our community is well positioned to address and some of the ideas that we can port from the machine-learning community.

Read more...