컴파일러: 두 판 사이의 차이

잔글 (C언어 링크 변경)
(CompCert)
12번째 줄: 12번째 줄:
** GCC, [[GNU 컴파일러 모음]]
** GCC, [[GNU 컴파일러 모음]]
** [[LLVM]]
** [[LLVM]]
** [[CompCert]]


== 참조 ==
== 참조 ==
<references/>
<references/>
[[분류: 컴퓨터 프로그래밍]]
[[분류: 컴퓨터 프로그래밍]]

2015년 4월 23일 (목) 16:07 판

프로그래밍 언어로 쓰인 코드를 다른 프로그래밍 언어의 코드로 번역하는 컴퓨터 프로그램. 하지만 보통은 좀 더 고수준의 언어를 저수준의 언어로 변환하는 프로그램을 주로 말한다. [1] 하지만 항상 그런 것은 아니며, Emscripten처럼 CJavaScript로 바꾸는 컴파일러 같은 것도 존재한다. 유닉스리눅스와 같이, 운영체제에 따라서는 운영체제를 구성하는 한 부분으로 분류하는 경우도 있다.

기계어 컴파일의 경우, 컴파일된 결과물은 별다른 중간 해석 절차 없이 하드웨어 위에서 그대로 실행시킬 수 있다. 때문에 성능을 중요시하는 언어들은 많은 경우 기계어로 컴파일할 것을 염두에 두고 디자인된 경우가 많다. 대표적으로 C 언어, C++가 이에 속한다. 반면에, 스크립팅의 경우 한두번 쓰고 버려지는 코드를 주로 짜거나, 혹은 그때그때 코드를 고치면서 즉시 결과를 확인하는 식으로 작업하는 경우가 많은데, 이 때는 실행 속도가 아무리 빨라 봤자 중간에 컴파일을 거쳐야 한다는 번거로움과 기나긴 컴파일 속도가 더 방해가 되곤 한다. 때문에 많은 스크립트 언어들은 컴파일러 대신 인터프리터로 구현된다.


더 보기

참조

  1. 여기에서 고수준과 저수준을 나누는 기준은 단순히 사용자와 컴퓨터 중 어느 쪽에 더 친숙한지이며, 고급 언어라고 꼭 제공되는 기능이 더 많으란 법도 없고, 저급 언어라고 복잡한 기능이 없으리란 법도 없다.