ReduKtor: How We Stopped Worrying About Bugs in Kotlin Compiler

09/16/2019
by   Daniil Stepanov, et al.
0

Bug localization is well-known to be a difficult problem in software engineering, and specifically in compiler development, where it is beneficial to reduce the input program to a minimal reproducing example; this technique is more commonly known as delta debugging. What additionally contributes to the problem is that every new programming language has its own unique quirks and foibles, making it near impossible to reuse existing tools and approaches with full efficiency. In this experience paper we tackle the delta debugging problem w.r.t. Kotlin, a relatively new programming language from JetBrains. Our approach is based on a novel combination of program slicing, hierarchical delta debugging and Kotlin-specific transformations, which are synergistic to each other. We implemented it in a prototype called ReduKtor and did extensive evaluation on both synthetic and real Kotlin programs; we also compared its performance with classic delta debugging techniques. The evaluation results support the practical usability of our approach to Kotlin delta debugging and also shows the importance of using both language-agnostic and language-specific techniques to achieve best reduction efficiency and performance.

READ FULL TEXT
research
12/11/2020

Type-Centric Kotlin Compiler Fuzzing: Preserving Test Program Correctness by Preserving Types

Kotlin is a relatively new programming language from JetBrains: its deve...
research
09/14/2023

WASM-MUTATE: Fast and Effective Binary Diversification for WebAssembly

WebAssembly has is renowned for its efficiency and security in browser e...
research
09/14/2022

HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding Tools

As research in automatically detecting bugs grows and produces new techn...
research
07/12/2019

Language Support for Adaptation: Intent-Driven Programming in FAST

Historically, programming language semantics has focused on assigning a ...
research
12/09/2022

A Model Driven Approach on Object Oriented PLC Programming for Manufacturing Systems with regard to Usability

This paper presents the modular automation for reuse in manufacturing sy...
research
03/08/2021

Langar: An Approach to Evaluate Reo Programming Language

Reo is a formal coordination language. In order to assess and evaluate i...
research
11/05/2018

Out-Of-Place debugging: a debugging architecture to reduce debugging interference

Context. Recent studies show that developers spend most of their program...

Please sign up or login with your details

Forgot password? Click here to reset