Compiler fuzzing is a well established technique for stress testing compilers. Generating random programs for fuzz testing is a challenging problem, typically requiring stochastic enumeration from a hand-coded programming language grammar combined with rigorous static and dynamic analysis to avoid undefined or unreproducible behaviour. Developing such tools is laborious and time consuming.
This project developed a new deep learning-based fuzzing tool for the industrial partner to explore the viability of deep learning neural networks for testing Java compilers and runtimes. The fuzzer will be used to test and identify bugs in IBM's OpenJ9 and OMR projects, making them more safe and robust.
Compared to state-of-the-art grammar based approaches, the fuzzer is simpler, produces small interpretable test cases, and has a lower cost to maintain and extend to new language features.
|University of Edinburgh|
TETRAMAX is a Horizon 2020 innovation action within the European Smart Anything Everywhere (SAE) initiative in the domain of customized and low-energy computing for Cyber Physical Systems and the Internet of Things. As a Digital Innovation Hub, TETRAMAX aims to bring added value to European industry, helping to gain competitive advantage through faster digitization. The project partially builds on experiences with the TETRACOM project during 2013-2016. TETRAMAX was launched in Sep 2017 and runs until Aug 2021.