Lint

Linter (або lint) — це інструменти для дослідження програмного коду з метою виявлення помилок програмування, вад, порушень стилю, а також сумнівних чи підозрілих виразів[1]. Назва походить від однойменної Unix-утиліти, що була розроблена для дослідження й вивірення коду, написаного мовою C.

Походження[ред. | ред. код]

1978 року Стівен Кертіс Джонсон, науковець комп'ютерної галузі з лабораторії Белла, написав програму lint, працюючи над зневадженням Yacc-граматики для переносного компілятора мови C та долаючи труднощі, пов'язані з перенесенням Unix на 32-розрядну архітектуру[2][3]. За межами лабораторії Белла lint вперше було використано 1979 року у сьомій версії (V7) операційної системи Unix. Слово «lint» в англійській мові означає шарпину — маленькі шматочки волокна чи пуху у овечій вовні — тоді як «linter» це назва верстата для обробки вовни.

Згодом було розроблено чимало різновидів lint для багатьох компіляторів мов C та C++ й хоча сучасні компілятори надають чимало схожих можливостей, lint-подібні засоби теж розвиваються. Наприклад, PC-Lint від Gimpel Software, призначений для дослідження коду мовою C++ досі продається, хоча й з'явився уперше далекого 1985-го року.

Огляд[ред. | ред. код]

Lint як термін може вживатись і в ширшому розумінні — пошук синтаксичних невідповідностей взагалі, а надто в інтерпретовних мовах як-от JavaScript і Python. Сучасні lint-перевіряльники часто застосовують, щоб пильнувати дотримання певних стильових вимог і швидко знаходити їх порушення. Їх використання часто допомагає завчасно виявляти деякі типові помилки, а також привертати увагу до підозрілих виразів, що можуть бути причиною гайзенбаґів (важковиявних вад).

До підозрілих виразів зокрема належать: використання незапочаткованих змінних, ділення на нуль, сталі умови і обчислення, де отримане значення може вийти за припустимі межі використаного типу даних.

Багато різновидів аналізу виконуваного lint-подібними засобами виконує оптимізувальний компілятор, чиє найперше завдання згенерувати швидший код. Сучасні компілятори можуть виявити багато виразів про які звичайно попереджав lint.

Творці lint-подібних засобів і далі доповнюють перелік виявних підозрілих виразів. Сучасні засоби виконують різні види аналізу, які оптимізувальні компілятори зазвичай не роблять, як-от міжмодульну перевірку на несуперечливість, перевірку переносності коду на інші компілятори, й запроваджують підтримку коментарів, що вказують на очікувану поведінку чи властивості коду.

Література[ред. | ред. код]

  • Darwin, Ian F. Checking C Programs with Lint. ISBN 0-937175-30-7.

Примітки[ред. | ред. код]

  1. Crockford, Douglas. JSLint: Help. www.jslint.com. Архів оригіналу за 8 серпня 2018. Процитовано 7 серпня 2018.
  2. Johnson, S. C. (1978). Lint, a C Program Checker. COMP. SCI. TECH. REP. Т. 65. с. 78––1273. Архів оригіналу за 29 квітня 2015. Процитовано 7 серпня 2018.
  3. Stephen Curtis Johnson: Geek of the Week - Simple Talk. Simple Talk (амер.). 1 жовтня 2009. Архів оригіналу за 19 січня 2018. Процитовано 7 серпня 2018.