JOURNAL ARTICLE

Backend Bug Finder — a platform for effective compiler fuzzing

Abstract

Introduction: The standard way to check the quality of a compiler is manual testing. However, it does not allow to cover a vast diversity of programs that can be written in a target programming language. Today, in addition to manual written tests there are many automated compiler testing methods, among which fuzzing is one of the most powerful and useful. A compiler fuzzer is a tool that generates a random program in a target language and checks how the compiler works in this language. Purpose: To develop a platform for compiler fuzzing and, based on it, to develop a tool for Kotlin compiler testing. Results: We have developed Backend Bug Finder which is a platform for compiler fuzzing is. We have chosen a mutation-based approach as a method for generating random programs. First, an existing program is entered to the mutator as the input to be then transformed in some way. Mutations can be both trivial, for example, replacing arithmetic operators with others, and complex, changing the structure of the program. Next, the resulting program is fed to the input of the compiler with the following check of its operation. The developed test oracle can detect three types of errors: crashes, miscompilations, and performance degradations. If an error is detected, the test case is fed into the post-processing module, where reduction and deduplication algorithms are applied. We have developed a tool for fuzzing the Kotlin language compiler based on the platform for its approbation, which showed the applicability of the proposed approach for finding errors in modern compilers. Practical relevance: Over a year and a half of work, our tool has found thousands of different Kotlin compiler bugs, more than 200 of which were sent to the developers, and more than 80 have been fixed.

Keywords:
Fuzz testing Compiler Computer science Programming language Compiler correctness Random testing Compiler construction Optimizing compiler Interprocedural optimization Oracle Test case Loop optimization Software

Metrics

2
Cited By
0.81
FWCI (Field Weighted Citation Impact)
21
Refs
0.68
Citation Normalized Percentile
Is in top 1%
Is in top 10%

Citation History

Topics

Software Reliability and Analysis Research
Physical Sciences →  Computer Science →  Software
Software Testing and Debugging Techniques
Physical Sciences →  Computer Science →  Software
Software Engineering Research
Physical Sciences →  Computer Science →  Information Systems

Related Documents

JOURNAL ARTICLE

Compiler Fuzzing

Nagisa Ishiura

Journal:   IEICE ESS FUNDAMENTALS REVIEW Year: 2015 Vol: 9 (3)Pages: 188-196
BOOK-CHAPTER

FuzzBoost: Reinforcement Compiler Fuzzing

Xiaoting LiXiao LiuLingwei ChenRupesh PrajapatiDinghao Wu

Lecture notes in computer science Year: 2022 Pages: 359-375
JOURNAL ARTICLE

Many-core compiler fuzzing

Christopher LidburyAndrei LascuNathan ChongAlastair F. Donaldson

Journal:   ACM SIGPLAN Notices Year: 2015 Vol: 50 (6)Pages: 65-76
© 2026 ScienceGate Book Chapters — All rights reserved.