Jump to content

Линт (программное обеспечение)

Lint — это термин в компьютерной науке , обозначающий инструмент статического анализа кода , используемый для обозначения ошибок программирования, ошибок , стилистических ошибок и подозрительных конструкций. [1] Этот термин происходит от Unix утилиты , которая исследовала языка C. исходный код [2] Программа, выполняющая эту функцию, также известна как «линтер».

История [ править ]

Ворс
Оригинальный автор(ы) Стивен С. Джонсон
Разработчик(и) AT&T Bell Laboratories
Первоначальный выпуск 26 июля 1978 г .; 45 лет назад ( 1978-07-26 ) [2]
Написано в С
Операционная система Кросс-платформенный
Доступно в Английский
Тип Инструменты статического анализа программ
Лицензия Первоначально проприетарное коммерческое программное обеспечение , теперь свободное программное обеспечение под типа BSD. лицензией [3] [4]

Стивен С. Джонсон , ученый-компьютерщик из Bell Labs , придумал термин «lint» в 1978 году во время отладки грамматики yacc , которую он писал для C, и решения проблем переносимости , возникающих при переносе Unix на 32-битную машину. [5] [2] Этот термин был заимствован из слова « ворс» — крошечных кусочков волокна и пуха, оставленных одеждой, поскольку написанная им команда действовала как ловушка для ворса в сушилке для одежды, улавливая ненужные волокна, оставляя при этом целые ткани неповрежденными. В 1979 году lint-программирование было впервые использовано за пределами Bell Labs, в седьмой версии ( V7 ) Unix.

были разработаны различные версии lint C и C++ За прошедшие годы для многих компиляторов , и хотя современные компиляторы имеют функции, подобные lint, их возможности также расширились. Например, PC-Lint от Gimpel , представленный в 1985 году и используемый для анализа исходного кода C++, до сих пор продается. [5]

Обзор [ править ]

В своей оригинальной статье 1978 года Джонсон изложил свои доводы в пользу создания отдельной программы для обнаружения ошибок, отличной от той, которую он анализировал: «...общая идея наличия двух программ является хорошей» [потому что они концентрируются на разных вещах, тем самым позволяя программисту] «концентрироваться на одном этапе процесса программирования исключительно на алгоритмах , структурах данных и правильности программы, а затем позже модифицировать с помощью lint желаемые свойства универсальности и переносимости». [2]

Линтеры-преемники [ править ]

Анализ, выполняемый lint-подобными инструментами, также может выполняться оптимизирующим компилятором , целью которого является создание более быстрого кода. Несмотря на то, что современные компиляторы эволюционировали и теперь включают в себя многие исторические функции lint, подобные lint инструменты также развиваются для обнаружения еще более широкого спектра подозрительных конструкций. К ним относятся «предупреждения о синтаксических ошибках, использовании необъявленных переменных , вызовах устаревших функций, соглашениях о пробелах и форматировании, неправильном использовании области видимости, неявных провалах в операторах переключения , отсутствующих заголовках лицензий и [и]... опасных функциях языка». [6]

Lint-подобные инструменты особенно полезны для динамически типизированных языков, таких как JavaScript и Python . Поскольку интерпретаторы таких языков обычно не соблюдают стольких и строгих правил во время выполнения , инструменты линтера также можно использовать в качестве простых отладчиков для поиска распространенных ошибок (например, синтаксических несоответствий), а также труднообнаружимых ошибок, таких как ошибки Гейзенбага (например, ошибки Гейзенбага ). привлечение внимания к подозрительному коду как к «возможным ошибкам»). [7] Инструменты, подобные Lint, обычно выполняют статический анализ исходного кода. [8]

Подобные Lint-инструменты также были разработаны для других аспектов разработки программного обеспечения: обеспечения соблюдения грамматики и руководств по стилю для исходного кода данного языка. [ нужна ссылка ] Некоторые инструменты (например, Eslint) также позволяют автоматически исправлять правила: определение правила также может сопровождаться определением преобразования, благодаря которому правило больше не срабатывает. Правила стиля, скорее всего, будут иметь автоматическое исправление. Если линтер запускается в режиме «исправить все» для файла, который запускает только правила форматирования, линтер будет действовать точно так же, как форматтер.

См. также [ править ]

Ссылки [ править ]

  1. ^ «О SublimeLinter» . Сообщество SublimeLinter, редакция 1cecc79c . Проверено 29 марта 2020 г.
  2. Перейти обратно: Перейти обратно: а б с д Джонсон, Стивен К. (25 октября 1978 г.). «Lint, средство проверки программ на языке C» . Комп. наук. Тех. Представитель . Лаборатории Белла: 78–1273. CiteSeerX   10.1.1.56.1841 . Архивировано из оригинала 23 января 2022 г.
  3. ^ «UNIX бесплатен!» . lemis.com. 24 января 2002 г.
  4. ^ Бродерик, Билл (23 января 2002 г.). «Уважаемые энтузиасты Unix» (PDF) . Кальдера Интернэшнл . Архивировано из оригинала (PDF) 19 февраля 2009 г.
  5. Перейти обратно: Перейти обратно: а б Моррис, Ричард (1 октября 2009 г.). «Стивен Кертис Джонсон: Компьютерщик недели» . Программное обеспечение «Красные ворота» . Проверено 19 января 2018 г.
  6. ^ «Руководство пользователя Arcanist: Линт» . Фабрикатор . Проверено 19 января 2018 г.
  7. ^ «ESLint — настраиваемый инструмент проверки JavaScript (1)» . theCodeCampus . 09.06.2015 . Проверено 21 апреля 2019 г.
  8. ^ Джонс, Найджел (1 мая 2002 г.). «Как использовать Lint для статического анализа кода» . Группа Барр .

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4e4a1340fb3a4fec68a36b4b800bb9e1__1718048580
URL1:https://arc.ask3.ru/arc/aa/4e/e1/4e4a1340fb3a4fec68a36b4b800bb9e1.html
Заголовок, (Title) документа по адресу, URL1:
Lint (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)