Исследовательская группа

Лаборатория языковых инструментов

Фаззинг компилятора Kotlin. Инструкция по применению

March 29

Kotlin - относительно новый язык программирования от JetBrains: его разработка началась в 2010 году, а версия 1.0 была выпущена в начале 2016-го. Компилятор Kotlin, медленно и неуклонно становясь все более "зрелым", все ещё содержит достаточное количество ошибок, провоцируемых нетривиальными входными программами. Это делает его отличной целью для фаззинга. Однако, генерация случайного, нетривиального и семантически корректного кода на языке Kotlin сложная задача.

В начале доклада слушатели познакомятся с понятием фаззинга, а также основными методами и инструментами, применяемыми в данной области. Далее мы перейдём к фаззингу компиляторов, изучим его этапы и аспекты. В конце мы познакомимся с инструментом для тестирования компилятора языка Kotlin, разрабатываемым в нашей лаборатории.

Материалы к докладу:

1. Zeller A. et al. The fuzzing book. – 2019.
2. Chen J. et al. A survey of compiler testing //ACM Computing Surveys (CSUR). – 2020. – Т. 53. – №. 1. – С. 1-36.
3. Manès V. J. M. et al. The art, science, and engineering of fuzzing: A survey //IEEE Transactions on Software Engineering. – 2019.
4. Liang H. et al. Fuzzing: State of the art //IEEE Transactions on Reliability. – 2018. – Т. 67. – №. 3. – С. 1199-1218.
5. Stepanov D., Akhin M., Belyaev M. Type-Centric Kotlin Compiler Fuzzing: Preserving Test Program Correctness by Preserving Types //arXiv preprint arXiv:2012.06382. – 2020.

Семинар состоится онлайн в 17:30, ссылка на встречу https://meet.google.com/myu-dhmz-gvu.