린트(소프트웨어)

Lint (software)
린트
원본 작성자스티븐 C.존슨
개발자AT&T 벨 연구소
초기 릴리즈1978년 7월 26일; 43년(1978-07-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]는 다음과 같은 라인에서 컴파일러가 문제를 볼 수 없도록 했다.

.... DO 120 J=1.256 … 120 계속
그래서 린트 포트란[10] 같은 프로그램이 도움이 될 수 있다.[11][12]

참고 항목

참조

  1. ^ 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.
  2. ^ "UNIX is free!". lemis.com. 2002-01-24.
  3. ^ Broderick, Bill (January 23, 2002). "Dear Unix enthusiasts" (PDF). Caldera International. Archived from the original (PDF) on February 19, 2009.
  4. ^ "About SublimeLinter". The SublimeLinter Community, revision 1cecc79c. Retrieved 2020-03-29.
  5. ^ a b Morris, Richard (1 October 2009). "Stephen Curtis Johnson: Geek of the Week". Red Gate Software. Retrieved 19 January 2018.
  6. ^ "Arcanist User Guide: Lint". Phabricator. Retrieved 19 January 2018.
  7. ^ "ESLint - Customizable JavaScript linting tool (1)". theCodeCampus. 2015-06-09. Retrieved 2019-04-21.
  8. ^ Jones, Nigel (1 May 2002). "How to Use Lint for Static Code Analysis". Barr Group.
  9. ^ 소프트웨어: 소스 문장을 메모리로 읽고, 주석 라인을 삭제하며, 텍스트 리터럴을 제외한 공간을 제거하고, 연속 라인을 연결함
  10. ^ 린트포트란:
  11. ^ "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=(도움말)
  12. ^ "Chapter 2. Basic Debugger Usage". There is a public domain version of lint for FORTRAN 77 called ftnchek

추가 읽기