Да, это снова команда PVS-Studio, но прошу не спешить с «а… опять они…». Хочется рассказать про одну штуку, которую заценят студенты и преподаватели.


Маленькая предыстория. К нам приходит всё больше студентов за триалами, бесплатной версией, вопросами и так далее. Некоторые кафедры взяли на вооружения идею, чтобы анализатор PVS-Studio использовался при подготовке лабораторных работ и курсовых. Мы общались на конференциях с преподавателями, которые рассказывали, что говорят студентам перед тем, как идти на сдачу работ, проверять их с помощью PVS-Studio. И троллят их, если они поленились, и на защите PVS-Studio находит ошибку.


Итак, общения со студентами всё больше, и захотелось облегчить жизнь и себе, и им. Это стало одной из причин, почему мы решили интегрироваться с Compiler Explorer. Кому интересны подробности: https://www.viva64.com/ru/online-examples/


Compiler Explorer (https://godbolt.org/) это находка для студентов. Можно выполнить лабораторную работу, что называется, на коленке. Сайт в online режиме позволяет писать, компилировать и запускать программы на языках Ada, C, C++, D, Fortran, Go, Pascal, Rust и так далее. Особенно удобно, что можно сгенерировать ссылку на получившийся код и отправить его на проверку преподавателю. Актуально это стало в связи с самоизоляцией.


Это реально удобно для студентов, если программа небольшая. Можно не ставить никакой софт. Можно вообще по-быстрому что-то сделать или поправить с любого компьютера.


Здесь мы добавили свои две копейки. Если программа разрабатывается на языке C и C++, то дополнительно её можно сразу проверять с помощью PVS-Studio и знакомиться на практике с работой статического анализатора кода. Ну и ошибки, соответственно, найти и поправить.


Предположим, что выполняется лабораторная работа, посвященная изучению циклов в языке C++ и нужно написать программу сортировки массива. Выполним эту задачу с ошибкой и посмотрим, как работает связка Compiler Explorer + PVS-Studio: https://godbolt.org/z/4k7Ypa


Кажется, что программа написана корректно, так как массив выглядит отсортированным правильно. Но это везение. На самом деле, происходит выход за границу массива, о чём предупреждает анализатор PVS-Studio. Взглянем на условие внутреннего цикла: j < size + 1. Должно быть: j < size.


Есть и другие способы использовать анализатор. См «Бесплатное использование PVS-Studio студентами и преподавателями» - https://www.viva64.com/ru/for-students/


Но самое главное, это всё равно Compiler Explorer! Это друг студентов и преподавателей. Попробуйте! https://godbolt.org/









 , , , ,






URL записи