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.
Примітки
- Crockford, Douglas. JSLint: Help. www.jslint.com. Процитовано 7 серпня 2018.
- Johnson, S. C. (1978). Lint, a C Program Checker. COMP. SCI. TECH. REP 65. с. 78––1273. Процитовано 7 серпня 2018.
- Stephen Curtis Johnson: Geek of the Week - Simple Talk. Simple Talk (амер.). 1 жовтня 2009. Процитовано 7 серпня 2018.