We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Locknote: How Badly Do We Want Correct Compilers? - John Regehr - NDC TechTown 2023
Discover the challenges and trade-offs of compiler development, exploring the importance of correctness, the limitations of fuzz testing, and the potential of program synthesis in creating reliable compilers that balance performance and security.
- Correctness is often compromised in pursuit of performance, which can lead to bugs and errors.
- Compiler developers are often too busy to fix bugs and may not have the resources to do so.
- Many languages now have fuzzers, which can automatically generate inputs to test for bugs.
- Compiler optimization can lead to unforeseen effects, making it challenging to ensure correctness.
- The cost of developing and maintaining correct compilers can be prohibitively high, leading to trade-offs between correctness and performance.
- Compiler bugs can be difficult to uncover, and even when found, may not be effectively addressed by developers.
- Program synthesis is a technique for automating the creation of correct code, but its application to compiler development is still in its infancy.
- The search space for compiler optimizations is vast, making it challenging to find optimal solutions.
- Even minor errors in compiler implementation can have significant consequences, making it important to prioritize correctness.
- Compiler developers are often forced to make compromises between correctness and performance, leading to suboptimal solutions.