보풀 (소프트웨어) - lint (software)

보풀
원저자 스티븐 C. 존슨
개발자 AT & T 벨 연구소
초판 1978 ; 42 년 전 (1978)
쓰여진
운영 체제 크로스 플랫폼
가능 영어
유형 정적 프로그램 분석 도구

lint 또는 linter프로그래밍 오류, 버그 , 스타일 오류 및 의심스러운 구성 에 플래그를 지정하는 데 사용되는 정적 코드 분석 도구 입니다. [1] 이 용어 C 언어 소스 코드 를 조사한 Unix 유틸리티 에서 유래했습니다 . [2]

역사

Bell Labs 의 컴퓨터 과학자 인 Stephen C. Johnson 은 1978 년에 그가 C 용으로 작성 하던 yacc 문법 을 디버깅하고 Unix32 비트 컴퓨터로 이식하는 데 따른 이식성 문제를 처리 하면서 lint를 고안했습니다 . [3] [2] 용어 "보풀이"의 작은 비트 이름으로부터 유래 된 섬유 보풀 의류 흘린. 1979 년에 Lint는 Unix 운영 체제 의 일곱 번째 버전 ( V7 ) 에서 처음으로 Bell Labs 외부에서 사용되었습니다 .

수년에 걸쳐 많은 CC ++ 컴파일러를 위해 다양한 버전의 lint가 개발 되었으며 현대의 컴파일러에는 lint와 유사한 기능이 있지만 lint와 유사한 도구도 기능을 향상 시켰습니다. 예를 들어, C ++ 소스 코드를 분석하는 데 사용되는 Gimpel의 PC-Lint 는 1985 년에 출시되었지만 여전히 판매되고 있습니다. [3]

개요

Lint와 유사한 도구로 수행되는 분석 은 더 빠른 코드 생성을 목표로 하는 최적화 컴파일러로 도 수행 할 수 있습니다 . 그의 1978 년 논문에서 Johnson은이 문제를 다루면서 "두 프로그램을 갖는 일반적인 개념은 좋은 것"이라고 결론지었습니다. 왜냐하면 그들은 서로 다른 것에 집중했기 때문에 프로그래머가 "프로그래밍 프로세스의 한 단계에 전적으로 알고리즘 , 데이터 구조 , 프로그램의 정확성, 그리고 보편성과 이식성의 바람직한 속성 인 lint의 도움으로 나중에 개조 ". [2]

최신 컴파일러 는 Lint의 많은 역사적 기능을 포함하도록 진화 했지만 , Lint와 유사한 도구는 훨씬 더 다양한 의심스러운 구조를 감지하도록 진화했습니다. 여기에는 "구문 오류에 대한 경고, 선언되지 않은 변수 사용 , 지원 중단 된 함수 호출, 간격 및 형식 지정 규칙, 범위 오용, 스위치 문의 암시 적 폴 스루 , 라이센스 헤더 누락, [및] ... 위험한 언어 기능"이 포함됩니다. [4]

Lint와 유사한 도구는 JavaScriptPython같은 해석 언어에 특히 유용합니다 . 이러한 언어 에는 실행 전에 오류 목록을 표시 하는 컴파일 단계없기 때문에 도구는 일반적인 오류 (예 : 구문 불일치)뿐만 아니라 heisenbugs (주의를 끌기) 와 같은 찾기 어려운 오류에 대한 간단한 디버거로도 사용할 수 있습니다. "가능한 오류"로 의심되는 코드). [5] Lint와 유사한 도구는 일반적으로 소스 코드의 정적 분석수행 합니다. [6]

문법 및 스타일 가이드를 포함하여 언어의 다른 측면을 위해 Lint와 유사한 도구도 개발되었습니다. [ 인용 필요 ]

전문화

포트란

공간 압착 기술 (예 : IBM 1130 ) [7]을 사용하는 Fortran 컴파일러 는 컴파일러가 다음과 같은 문제를 파악하는 것을 불가능하게했습니다.

.... DO 120 J = 1 . 256 ... 120 계속
(이것이 Lint for Fortran [8] 과 같은 프로그램 이 도움이 될 수있는 이유 입니다. [9] [10]

또한보십시오

참고 문헌

  1. ^ "SublimeLinter 정보" . SublimeLinter 커뮤니티, 개정판 1cecc79c . 2020 년 3 월 29 일에 확인 함 .
  2. ^ a b c Johnson, Stephen C. (25 October 1978). "Lint, a C Program Checker": 78–1273. CiteSeerX 10.1.1.56.1841. Cite journal requires |journal= (help)
  3. ^ a b Morris, Richard (1 October 2009). "Stephen Curtis Johnson: Geek of the Week". Red Gate Software. Retrieved 19 January 2018.
  4. ^ "Arcanist User Guide: Lint". Phabricator. Retrieved 19 January 2018.
  5. ^ "ESLint - Customizable JavaScript linting tool (1)". theCodeCampus. 2015-06-09. Retrieved 2019-04-21.
  6. ^ Jones, Nigel (1 May 2002). "How to Use Lint for Static Code Analysis". Barr Group.
  7. ^ Software: reads the source statements into memory, discards comment lines, removes spaces except in text literals, concatenates continuation lines
  8. ^ Lint for Fortran: Denis W. Haskin (May 2, 1988). "Shaking down your FORTRAN programs". Digital Review. pp. 41–47. similar to DEC's Source Code Analyzer, .. comes into play much earlier .. before users compile their programs
  9. ^ "COMP-FORTRAN-90 Archives". Fortran90-lint, for Fortran 90 program analysis, also other tools, from http://www.cleanscape.net/stdprod/ftp/ftpflint.html
  10. ^ "2 장. 기본 디버거 사용법" . ftnchek이라는 FORTRAN 77 용 lint의 공용 도메인 버전이 있습니다.

추가 읽기