Lint (программное обеспечение) - Lint (software)
Оригинальный автор (ы) | Стивен С. Джонсон |
---|---|
Разработчики) | AT&T Bell Laboratories |
изначальный выпуск | 1978 |
Написано в | C |
Операционная система | Кроссплатформенность |
Доступно в | английский |
Тип | Инструменты статического анализа программ |
ворсинок, или линтер, это статический анализ кода инструмент, используемый для обозначения ошибок программирования, ошибки, стилистические ошибки и подозрительные конструкции.[1] Термин происходит от Unix полезность это исследовало Язык C исходный код.[2]
История
Стивен С. Джонсон, специалист по информатике в Bell Labs, придумал lint в 1978 году при отладке yacc грамматика, для которой он писал C и имея дело с переносимость проблемы, связанные с переносом Unix к 32-битный машина.[3][2] Термин «ворс» произошел от названия крошечных кусочков волокна и пух пролить одежду. В 1979 году линт был впервые использован вне Bell Labs в седьмой версии (V7 ) из Unix Операционная система.
За прошедшие годы были разработаны разные версии линта для многих C и C ++ компиляторы и хотя современные компиляторы имеют функции, подобные lint, инструменты, подобные lint, также расширили свои возможности. Например, Гимпель PC-Lint, используемый для анализа исходного кода C ++, все еще продается, несмотря на то, что он был представлен в 1985 году.[3]
Обзор
Анализ, выполняемый с помощью инструментов, похожих на ворсинки, также может быть выполнен оптимизирующий компилятор, который направлен на создание более быстрого кода. В своей оригинальной статье 1978 года Джонсон обратился к этому вопросу, заключив, что «общее понятие наличия двух программ - хорошее», потому что они концентрировались на разных вещах, тем самым позволяя программисту «сосредоточиться на одной стадии процесса программирования исключительно на алгоритмы, структуры данных, и правильность программы, а затем модифицировать с помощью lint желаемые свойства универсальности и переносимости ".[2]
Хотя современные компиляторы эволюционировали, чтобы включить многие исторические функции lint, инструменты, похожие на lint, также эволюционировали, чтобы обнаруживать еще более широкий спектр подозрительных конструкций. К ним относятся "предупреждения о синтаксических ошибках, использовании необъявленные переменные, вызовы устаревших функций, соглашения об интервалах и форматировании, неправильное использование области видимости, неявный провал в операторы переключения, отсутствуют заголовки лицензий, [и] ... опасные языковые особенности ".[4]
Инструменты, похожие на ворсинки, особенно полезны для интерпретируемые языки подобно JavaScript и Python. Потому что в таких языках отсутствует этап компиляции который отображает список ошибок до исполнение, инструменты также можно использовать в качестве простых отладчиков для общих ошибок (например, синтаксических несоответствий), а также для устранения трудных для поиска ошибок, таких как Heisenbugs (обращая внимание на подозрительный код как на «возможные ошибки»).[5] Lint-подобные инструменты обычно работают статический анализ исходного кода.[6]
Lint-подобные инструменты были также разработаны для других аспектов языка, включая грамматику и руководства по стилю.[нужна цитата ]
Специализация
Фортран
Фортран компиляторы, использующие методы сжатия пространства (например, IBM 1130 )[7] сделал невозможным для компилятора увидеть проблему с:
- .... DO 120 Дж = 1.256 ... 120 ПРОДОЛЖИТЬ
- (поэтому программы вроде Линт для Фортрана[8] может быть полезным.[9][10]
Смотрите также
Рекомендации
- ^ "О SublimeLinter". Сообщество SublimeLinter, редакция 1cecc79c. Получено 2020-03-29.
- ^ а б c Джонсон, Стивен С. (25 октября 1978 г.). «Lint, средство проверки программ на языке C»: 78–1273. CiteSeerX 10.1.1.56.1841. Цитировать журнал требует
| журнал =
(помощь) - ^ а б Моррис, Ричард (1 октября 2009 г.). "Стивен Кертис Джонсон: Компьютерщик недели". Программное обеспечение Red Gate. Получено 19 января 2018.
- ^ "Руководство пользователя Arcanist: Lint". Фабрикатор. Получено 19 января 2018.
- ^ «ESLint - Настраиваемый инструмент для линтинга JavaScript (1)». theCodeCampus. 2015-06-09. Получено 2019-04-21.
- ^ Джонс, Найджел (1 мая 2002 г.). «Как использовать Lint для анализа статического кода». Barr Group.
- ^ Программное обеспечение: считывает исходные операторы в память, отбрасывает строки комментариев, удаляет пробелы, кроме текстовых литералов, объединяет строки продолжения
- ^ Линт для Фортрана: Денис В. Хаскин (2 мая 1988 г.). «Откажитесь от ваших программ FORTRAN». Цифровой обзор. С. 41–47.
аналогично Source Code Analyzer от DEC, .. вступает в игру гораздо раньше .. до того, как пользователи компилируют свои программы.
- ^ "Архив Комп-Фортран-90".
Fortran90-lint, для анализа программ Fortran 90, а также другие инструменты, от http://www.cleanscape.net/stdprod/ftp/ftpflint.html
- ^ «Глава 2. Основы использования отладчика».
Существует публичная версия lint для FORTRAN 77 под названием ftnchek.
дальнейшее чтение
- Дарвин, Ян Ф. (1991). Проверка программ на C с помощью Lint: Утилита программирования на C (Пересмотренная ред.). США: O'Reilly Media. ISBN 978-0937175309.
- «ЛИНТ (1)». Руководство по основным командам FreeBSD (FreeBSD 11.2). 2015-03-23.