린트(소프트웨어)
Lint (software)원본 작성자 | 스티븐 C.존슨 |
---|---|
개발자 | AT&T 벨 연구소 |
초기 릴리즈 | 1978년 7월 26일;[1] | 전
기록 위치 | C |
운영 체제 | 크로스 플랫폼 |
다음에서 사용 가능 | 영어 |
유형 | 정적 프로그램 분석 도구 |
면허증 | 원래 독점적인 상업용 소프트웨어, 이제 BSD와 같은 라이센스로[2][3] 무료 소프트웨어 제공 |
린터(Lint)는 프로그래밍 오류, 버그, 양식 오류 및 의심스러운 구성에 플래그를 지정하는 데 사용되는 정적 코드 분석 도구다.[4]이 용어는 C 언어 소스 코드를 검사한 Unix 유틸리티에서 유래한다.[1]
역사
스티븐 C. 벨 연구소의 컴퓨터 과학자인 존슨은 1978년 자신이 C를 위해 쓰고 있던 야크 문법을 디버깅하고 유닉스를 32비트 기계에 포팅하는 것에 따른 이식성 문제를 다루면서 보풀을 고안해냈다.[5][1]"lint"라는 용어는 옷이 흘린 섬유질과 솜털의 아주 작은 조각들의 이름인 보풀에서 유래되었는데, 그 명령은 의류 건조기의 보풀 덫처럼 작용하여 작은 오류를 감지하여 큰 효과를 거두어야 하기 때문이다.1979년에, 보풀은 처음으로 Bell Labs 외부에서 Unix의 7번째 버전(V7)에서 사용되었다.
수년에 걸쳐 많은 C와 C++ 컴파일러를 위해 서로 다른 버전의 보풀이 개발되었고, 현대의 컴파일러는 보푸라기와 같은 기능을 가지고 있는 반면 보푸라기와 같은 도구는 또한 그들의 능력을 발전시켰다.예를 들어 1985년 도입돼 C++ 소스 코드를 분석하는 데 사용된 김펠의 PC-린트는 아직 판매 중이다.[5]
개요
보풀과 같은 도구에 의해 수행되는 분석은 더 빠른 코드 생성을 목표로 하는 최적 컴파일러에 의해서도 수행될 수 있다.존슨은 1978년 초창기 논문에서 "두 개의 프로그램을 갖는다는 일반적인 개념은 서로 다른 것에 집중하기 때문에 좋은 개념"이라고 결론지었고, 따라서 프로그래머가 "프로그램의 알고리즘, 데이터 구조, 정확성에만 초점을 맞출 수 있게 되었다"고 결론지으며 이 문제를 다루었다.보풀의 도움으로 나중에 개조하는 것, 보편성과 휴대성의 바람직한 특성"이다.[1]
현대의 컴파일러가 보풀의 역사적 기능을 많이 포함하도록 진화했음에도 불구하고 보풀과 같은 도구는 훨씬 더 다양한 의심스러운 구조를 감지하도록 진화했다.여기에는 "구문 오류, 보고되지 않은 변수의 사용, 사용되지 않는 함수에 대한 호출, 간격 및 형식 지정 규칙, 범위 오용, 스위치 문의 암묵적 오류 통과, 라이센스 헤더 누락, [및]...위험한 언어 기능"이 포함된다.[6]
보풀과 같은 도구는 자바스크립트와 파이톤과 같이 동적으로 입력된 언어에 특히 유용하다.그러한 언어의 컴파일러는 일반적으로 실행 전 만큼 많은 엄격한 규칙을 시행하지 않기 때문에, 라이터 도구는 하이젠버그와 같은 찾기 어려운 오류뿐만 아니라 일반적인 오류(예:[7] 구문론적 불일치)를 찾기 위한 단순한 디버거로도 사용될 수 있다("가능한 오류"로서 의심스러운 코드에 주의를 끌기).보풀과 같은 도구는 일반적으로 소스 코드의 정적 분석을 수행한다.[8]
보푸라기와 같은 도구들은 문법과 스타일 가이드를 포함한 언어의 다른 측면들을 위해 개발되었다.[citation needed]
전문화
포트란
Fortran 컴파일러(예: IBM 1130)[9]는 다음과 같은 라인에서 컴파일러가 문제를 볼 수 없도록 했다.
참고 항목
참조
- ^ a b c d Johnson, Stephen C. (25 October 1978). "Lint, a C Program Checker". Comp. Sci. Tech. Rep. Bell Labs: 78–1273. CiteSeerX 10.1.1.56.1841.
- ^ "UNIX is free!". lemis.com. 2002-01-24.
- ^ Broderick, Bill (January 23, 2002). "Dear Unix enthusiasts" (PDF). Caldera International. Archived from the original (PDF) on February 19, 2009.
- ^ "About SublimeLinter". The SublimeLinter Community, revision 1cecc79c. Retrieved 2020-03-29.
- ^ a b Morris, Richard (1 October 2009). "Stephen Curtis Johnson: Geek of the Week". Red Gate Software. Retrieved 19 January 2018.
- ^ "Arcanist User Guide: Lint". Phabricator. Retrieved 19 January 2018.
- ^ "ESLint - Customizable JavaScript linting tool (1)". theCodeCampus. 2015-06-09. Retrieved 2019-04-21.
- ^ Jones, Nigel (1 May 2002). "How to Use Lint for Static Code Analysis". Barr Group.
- ^ 소프트웨어: 소스 문장을 메모리로 읽고, 주석 라인을 삭제하며, 텍스트 리터럴을 제외한 공간을 제거하고, 연속 라인을 연결함
- ^ 린트 포 포트란:
- ^ "COMP-FORTRAN-90 Archives".
Fortran90-lint, for Fortran 90 program analysis, also other tools, from http://www.cleanscape.net/stdprod/ftp/ftpflint.html
{{cite web}}
:외부 링크 위치
(도움말)quote=
- ^ "Chapter 2. Basic Debugger Usage".
There is a public domain version of lint for FORTRAN 77 called ftnchek
추가 읽기
- Darwin, Ian F. (1991). Checking C Programs with Lint: C Programming Utility (Revised ed.). United States: O'Reilly Media. ISBN 978-0937175309.
- "LINT(1)". FreeBSD General Commands Manual (FreeBSD 11.2). 2015-03-23.