Қателерді іздеуге арналған Lint құралы – код сапасын жақсартатын, стильдік қателерді анықтайтын бағдарлама. Бағдарламалаудағы қателерді тексеруге көмектеседі.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Lint – компьютерлік ғылым термині, статикалық кодты талдау құралы, бағдарламалау қателерін, құжаттамалық қателерді, стильдік қателерді және күдікті конструкцияларды анықтауға арналған. Бұл термин C тілінің бастапқы кодын тексеруге арналған Unix құралынан шыққан. Осындай функцияны орындайтын бағдарлама "linter" деп те аталады.
Tool to flag poor computer code
Lint is the computer science term for a static code analysis tool used to flag programming errors, bugs, stylistic errors and suspicious constructs. The term originates from a Unix utility that examined C language source code. A program which performs this function is also known as a "linter".
Тарих
Стивен К. Джонсон, Bell Labs-тің компьютер ғалымы, 1978 жылы C үшін жазған yacc грамматикасын түзету кезінде және Unix-ті 32 биттік машинаға көшіруден туындаған үйлесімділік мәселелерімен күрескенде "lint" терминін ойлап тапты.
Stephen C. Johnson, a computer scientist at Bell Labs, came up with the term "lint" in 1978 while debugging the yacc grammar he was writing for C and dealing with portability issues stemming from porting Unix to a 32 bit machine.
Шолу
1978 жылғы түпнұсқа мақаласында Джонсон қателерді анықтау үшін жеке бағдарлама жасау себебін былай түсіндірді: "екі бағдарламаның болуы – жақсы идея" [өйткені олар әртүрлі нәрселерге назар аударады, соның арқасында бағдарламашы] "бағдарламалау процесінің бір кезеңінде тек алгоритмдерге, дерек құрылымдарына және бағдарламаның дұрыстығына толыққанды назар аударуға, ал кейін lint көмегімен, қажетті әмбебаптық және тасымалдану қасиеттерін қосуға мүмкіндік алады". Lint сияқты құралдар, әсіресе JavaScript және Python сияқты динамикалық типтегі тілдер үшін өте пайдалы. Мұндай тілдердің интерпретаторлары әдетте орындалу кезінде көптеген және қатаң ережелерді күшпен жүзеге асырмайды, сондықтан linter құралдарын жалпы қателерді (мысалы, синтаксистік қателер) табу үшін қарапайым жөндеуші ретінде, сондай-ақ heisenbugs сияқты анықтау қиын жағдайларды табу үшін (күдікті кодты "мүмкін қателер" деп белгілеу арқылы) пайдалануға болады. Lint сияқты құралдар көбінесе бастапқы кодты статикалық талдаудан өткізеді. Бағдарламалық жасақтаманы әзірлеудің басқа да салалары үшін де lint сияқты құралдар жасалған: берілген тілдің бастапқы коды үшін грамматика және стильлік талаптарды сақтау. Кейбір құралдар (мысалы, Eslint) ережелерді автоматты түрде түзетуге мүмкіндік береді: ереже туралы ақпарат ереже бұдан былай тудырмайтын өзгертулерді анықтаумен бірге келуі мүмкін. Стиль туралы ережелер әсіресе автоматты түзетумен бірге келеді. Егер linter файлда "барлық түзетулерді қолдану" режимінде іске қосылса және тек форматтау туралы ережелерді тудырса, linter форматтаушы сияқты жұмыс істейді.
In his original 1978 paper Johnson stated his reasoning in creating a separate program to detect errors, distinct from that which it analyzed: " the general notion of having two programs is a good one" [because they concentrate on different things, thereby allowing the programmer to] "concentrate at one stage of the programming process solely on the algorithms, data structures, and correctness of the program, and then later retrofit, with the aid of lint, the desirable properties of universality and portability". Lint like tools are especially useful for dynamically typed languages like JavaScript and Python. Because the interpreters of such languages typically do not enforce as many and as strict rules during execution, linter tools can also be used as simple debuggers for finding common errors (e. g. syntactic discrepancies) as well as hard to find errors such as heisenbugs (drawing attention to suspicious code as "possible errors"). Lint like tools generally perform static analysis of source code. Lint like tools have also been developed for other aspects of software development: enforcing grammar and style guides for given language source code. Some tools (such as Eslint) also allow rules to be auto fixable: a rule definition can also come with the definition of a transform that makes the rule no longer not triggered. Rules about style are especially likely to come with an auto fix. If the linter is run in "fix all" mode on a file that triggers only rules about formatting, the linter will act just like a formatter.