{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name                   = 클랭<br />Clang
| logo                   = 
| screenshot             = Clang 13.0.1 version information screenshot.png
| caption                = 클랭 13.0.1 버전 스크린샷
| author                 = [[크리스 래트너]] 등
| developer              = [[애플]], [[구글]] 등
| released               = {{시작 날짜와 나이|2007|09|26}}<ref>http://www.llvm.org/releases/2.1/docs/ReleaseNotes.html</ref>
| latest release version = {{wikidata|property|preferred|references|edit|Q864915|P348|P548=Q2804309}}
| latest release date    = {{wikidata|qualifier|preferred|single|Q864915|P348|P548=Q2804309|P577}}
| latest preview version = {{wikidata|property|preferred|references|edit|Q864915|P348|P548=Q51930650}}
| latest preview date    = {{wikidata|qualifier|preferred|single|Q864915|P348|P548=Q51930650|P577}}
| programming language   = [[C++]]
| operating system       = [[유닉스 계열]]
| platform               = [[크로스 플랫폼]]
| language               =
| status                 = 지원 중
| genre                  = [[컴파일러]]
| license                = 일리노이 대학교/NCSA 오픈 소스 라이선스<ref>{{웹 인용 |url=http://llvm.org/releases/2.1/LICENSE.TXT |제목=LLVM License |date= |accessdate=2012-09-18}}</ref>
| website                = {{URL|clang.llvm.org}}
}}

'''클랭'''(Clang)({{IPAc-en|ˈ|k|l|æ|ŋ}})<ref>{{웹 인용 |url=http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015624.html |제목=simply wonder pronunciation of Clang |date=3 July 2008 |accessdate=9 July 2008 |mailinglist=LLVMdev |last=Christopher |first=Eric |보존url=https://web.archive.org/web/20120208050747/http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015624.html |보존날짜=2012년 2월 8일 |url-status=dead }}</ref> 은 [[C (프로그래밍 언어)|C]], [[C++]], [[오브젝티브-C]], [[오브젝티브-C++]] 프로그래밍 언어를 위한 [[컴파일러]] [[프론트엔드]]이다. [[LLVM]]을 백엔드로 사용하며 [[LLVM]] 2.6 이후로 릴리즈의 일부로 자리잡았다.

목표는 [[GNU 컴파일러 모음]] (GCC)를 대체하는 것이다. 개발은 완전히 오픈 소스이며<ref>{{인용|url=http://clang.llvm.org/get_involved.html |title=Clang "Getting started" instructions |publisher=Clang.llvm.org |date= |accessdate=2012-09-18}}</ref> [[구글]], [[애플]] 등 대형 소프트웨어 기업의 지원을 받고 있다. 소스는 일리노이 대학교/NCSA 오픈 소스 라이선스로 이용할 수 있다.

클랭 프로젝트는 클랭 프론트엔드와 클랭 [[정적 프로그램 분석|정적 분석기]]를 포함한다.<ref>{{웹 인용 |url=http://clang-analyzer.llvm.org/ |제목=Clang Static Analyzer |publisher=LLVM |accessdate=3 September 2009}}</ref>

== 배경 ==
2005년, [[애플]]은 LLVM을 수많은 상업용 제품에 상당 부분 사용하였으며<ref>
{{메일링 인용
 | first=Adam
 | last=Treat
 | date=19 February 2005
 | url=http://lists.trolltech.com/qt4-preview-feedback/2005-02/msg00691.html
 | title=mkspecs and patches for LLVM compile of Qt4
 | mailinglist=Qt4-preview-feedback
 | url-status=dead
 | archiveurl=https://web.archive.org/web/20111004073001/http://lists.trolltech.com/qt4-preview-feedback/2005-02/msg00691.html
 | archivedate=4 October 2011
 | df=dmy-all
 }}</ref> 여기에는 [[iOS SDK]]와 [[Xcode]] 3.1이 포함되었다.

LLVM을 처음 사용한 용례 가운데 하나는 [[OS X]]용 [[OpenGL]] 코드 컴파일러였으며 이는 OpenGL 호출을 더 근본적인 [[그래픽 처리 장치]](GPU, 특정 기능을 지원하지 않는)용 호출로 변환하기 위해 사용되었다. 이를 통해 애플은 [[인텔 GMA|인텔 그래픽스 미디어 가속기]](GMA) 칩셋을 사용하는 컴퓨터에서 OpenGL 지원을 가능케 하였고 해당 기기들에서 성능이 개선되었다.<ref>{{콘퍼런스 인용
 |first=Chris |last=Lattner |date=25 May 2007
 |title=LLVM for OpenGL and other stuff |format=Slides
 |conference=LLVM Developers' Meeting
 |conferenceurl=https://llvm.org/devmtg/2007-05/
 |url=https://llvm.org/devmtg/2007-05/10-Lattner-OpenGL.pdf
}}</ref>
이를 지원하는 GPU의 경우 코드는 기반 하드웨어를 온전히 활용하도록 컴파일되어 있으나 GMA 기기의 경우 LLVM은 동일 OpenGL 코드를 서브루틴으로 컴파일함으로써 지속적인 정상 기능 동작을 보장하였다.

LLVM은 원래 GCC의 프론트엔드로 사용하기로 계획되었으나 GCC는 LLVM과 애플의 개발자들에게 일부 문제를 일으키게 되었다. GCC 소스 코드는 상당히 크고 개발자들이 작업하기에는 다소 성가신 시스템이다. 오랜 기간 GCC 개발자였던 사용자는 LLVM을 가리켜 "하마춤을 추려고 애쓰는 일은 정말로 그다지 재밌는 일이 아니다"라고 언급하였다.<ref>
{{메일링 인용
 | first=Kenneth
 | last=Zadeck
 | date=19 November 2005
 | url=https://gcc.gnu.org/ml/gcc/2005-11/msg00918.html
 | title=Re: LLVM/GCC Integration Proposal
 | mailinglist=GCC development
}}</ref>

애플 소프트웨어는 오브젝티브-C를 상당 부분 사용하지만 GCC의 오브젝티브-C 프론트엔드는 GCC 개발자들에게 우선 순위가 낮다. 또, GCC는 애플의 [[통합 개발 환경]](IDE)로 스무스하게 통합되지 않는다.<ref name=SN0705>
{{콘퍼런스 인용
 | first=Steve
 | last=Naroff
 | date=25 May 2007
 | title=New LLVM C Front-end
 | format=Slides
 | url=https://llvm.org/devmtg/2007-05/09-Naroff-CFE.pdf
 | conference=LLVM Developers' Meeting
 | conferenceurl=https://llvm.org/devmtg/2007-05/
}}</ref> GCC는 [[GNU GPL|GNU GPL 버전 3]]에 의거하여 라이선스됨으로써 확장 기능에 기여하거나 수정판에 기여하는 개발자들은 [[소스 코드]]를 공개해야 하지만 LLVM은 [[BSD 라이선스]]로 되어 있어서 그러한 요구사항을 준수할 필요가 없다.<ref name=clang>Clang team, ''[https://clang.llvm.org/ clang: a C language family frontend for LLVM]''</ref>

애플은 C, 오브젝티브-C, C++을 지원하는, 완전히 밑바닥부터 새로운 컴파일러 프론트엔드를 개발하기로 결정하였다.<ref name=SN0705/> 클랭 프로젝트는 2007년 7월 오픈 소스화되었다.<ref>
{{메일링 인용
 | first=Chris
 | last=Lattner
 | date=11 July 2007
 | url=https://lists.llvm.org/pipermail/cfe-dev/2007-July/000000.html
 | title=New LLVM C front-end: "clang"
 | mailinglist=cfe-dev
}}</ref>

== 같이 보기 ==
* [[GNU 컴파일러 모음|GCC]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}

{{C 프로그래밍 언어}}
{{C++}}
{{토막글|소프트웨어}}

[[분류:애플의 소프트웨어]]
[[분류:C 컴파일러]]
[[분류:C++ 컴파일러]]
[[분류:자유 컴파일러와 인터프리터]]
[[분류:정적 프로그램 분석 도구]]