Описание тега lint
Вступление
Первая версия Lint была разработана Стивеном Джонсоном в Bell Laboratories с целью обнаружения ошибок, которые в противном случае могли бы остаться незамеченными в программах на языке C. Следующее - из аннотации к "Lint, средство проверки программ на языке C", написанной Джонсоном в 1978 году.
Lint - это команда, которая исследует исходные программы C, обнаруживая ряд ошибок и неясностей. Он обеспечивает соблюдение правил типов C более строго, чем компиляторы C. Его также можно использовать для обеспечения соблюдения ряда ограничений переносимости, связанных с перемещением программ между разными машинами и / или операционными системами. Другой вариант выявляет ряд расточительных или подверженных ошибкам конструкций, которые, тем не менее, строго говоря, законны.
Команда Джонсона Lint впервые появилась (за пределами Bell Laboratories) в 1979 году как часть дистрибутива Unix 7. Версия команды все еще существует сегодня, а описание утилиты можно найти на страницах руководства FreeBSD:
Утилита lint пытается обнаружить особенности названных программных файлов C, которые могут быть ошибочными, непереносимыми или расточительными. Он также выполняет более строгую проверку типов, чем компилятор C.
Среди возможных проблем, которые в настоящее время отмечены, являются недостижимые операторы, циклы, не входящие в верхнюю часть, объявленные и неиспользуемые переменные и логические выражения с постоянными значениями. Вызовы функций проверяются на несоответствия, такие как вызовы функций, которые возвращают значения в одних местах, а не в других, функции, вызываемые с различным количеством аргументов, вызовы функций, передающие аргументы типа, отличного от типа, который функция ожидает получить, функции значения которых не используются, и вызовы функций, не возвращающих значений, которые используют несуществующее возвращаемое значение функции.
В первую очередь из-за популярности исходной команды Lint термин "lint" стал обозначать инструменты статического анализа в целом. Сегодня существует множество инструментов, некоторые из которых включают:
Открытый источник:
Коммерческий:
Использование тега "lint" при переполнении стека
Используйте этот тег только для вопросов, связанных с различными инструментами Lint от Gimpel Software.
Пожалуйста, воздержитесь от использования этого тега по общим вопросам статического анализа. Вопросы, касающиеся статического анализа кода и использования инструментов статического анализа, должны использовать статический анализ.
Ссылки
Карпов, Андрей, Parallel Lint: Проверка параллельных программ, Мир разработки программного обеспечения доктора Добба, 2009.
Джонсон, SC, Линт, верификатор программы C, Bell Laboratories, Мюррей-Хилл, Нью-Джерси, 1978.
Форумы Unix и Linux, Руководство по основнымкомандам BSD, lint - средство проверки программ C, 2001.