Lint (программное обеспечение) - Lint (software)

ворсинок
Оригинальный автор (ы)Стивен С. Джонсон
Разработчики)AT&T Bell Laboratories
изначальный выпуск1978; 42 года назад (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]

Смотрите также

Рекомендации

  1. ^ "О SublimeLinter". Сообщество SublimeLinter, редакция 1cecc79c. Получено 2020-03-29.
  2. ^ а б c Джонсон, Стивен С. (25 октября 1978 г.). «Lint, средство проверки программ на языке C»: 78–1273. CiteSeerX  10.1.1.56.1841. Цитировать журнал требует | журнал = (помощь)
  3. ^ а б Моррис, Ричард (1 октября 2009 г.). "Стивен Кертис Джонсон: Компьютерщик недели". Программное обеспечение Red Gate. Получено 19 января 2018.
  4. ^ "Руководство пользователя Arcanist: Lint". Фабрикатор. Получено 19 января 2018.
  5. ^ «ESLint - Настраиваемый инструмент для линтинга JavaScript (1)». theCodeCampus. 2015-06-09. Получено 2019-04-21.
  6. ^ Джонс, Найджел (1 мая 2002 г.). «Как использовать Lint для анализа статического кода». Barr Group.
  7. ^ Программное обеспечение: считывает исходные операторы в память, отбрасывает строки комментариев, удаляет пробелы, кроме текстовых литералов, объединяет строки продолжения
  8. ^ Линт для Фортрана: Денис В. Хаскин (2 мая 1988 г.). «Откажитесь от ваших программ FORTRAN». Цифровой обзор. С. 41–47. аналогично Source Code Analyzer от DEC, .. вступает в игру гораздо раньше .. до того, как пользователи компилируют свои программы.
  9. ^ "Архив Комп-Фортран-90". Fortran90-lint, для анализа программ Fortran 90, а также другие инструменты, от http://www.cleanscape.net/stdprod/ftp/ftpflint.html
  10. ^ «Глава 2. Основы использования отладчика». Существует публичная версия lint для FORTRAN 77 под названием ftnchek.

дальнейшее чтение