Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

나 개발자 할래요

인터프리터, 컴파일 본문

개발자 되는 법.../TIL...

인터프리터, 컴파일

개발_자 2024. 7. 26. 20:56

https://modulabs.co.kr/blog/interpreter-and-compiler/

인터프리터 언어

프로그램을 한 줄씩 읽어 들이면서 실행하는 방식

소스 코드를 직접해석하고 실행 -> 컴파일 과정 필요 X

(= 개발 과정에서 빠른 피드백 받을 수 있는 장점)

동적 타이핑 언어를 지원하여 변수 타입을 명시하지 않아도 됨

-> 코드 간결

대표적인 인터프리터 언어로는 Python, JavaScript, Ruby 등

 

단점

-실행 속도가 상대적으로 느림

-매 실행 시마다 소스 코드를 해석해야 하므로,

대규모 프로그램이나 복잡한 연산 수행할 때 성능 저하 발생

-소스 코드가 그대로 노출되므로 코드 보안에 취약

 

컴파일러 언어

소스 코드를 기계어로 번역하는 컴파일 과정 거침

소스 코드 전체를 한 번에 분석, 최적화를 수행한 후 실행 파일 생성

->컴퓨터에 직접 실행 가능하므로, 인터프리터 언어에 비해 실행 속도 빠름

컴파일 과정에서 코드 최적화와 오류 검사가 이루어지므로,

더 안정적이고 효율적인 프로그램 제작 가능

대표적인 컴파일러 언어로는 C, C++, Java, Go 등

 

단점

개발 과정에서 컴파일 시간이 소요되므로,

인터프리터 언어에 비해 개발 속도 느릴 수 있음

컴파일된 실행 파일은 특정 운영 체제와 아키텍처에 종속-> 다른 환경에서 실행하려면 별도의 컴파일 과정 필요

 

빠른 개발과 간결한 코드 작성이 중요한 경우-> 인터프리터 언어실행 속도와 안정성이 중요한 경우-> 컴파일러 언어

 

인터프리터 언어 실행 속도 개선 기술

대표적으로 Just-In-Time (JIT) 컴파일러

 

JIT 컴파일러

프로그램 실행 중에 자주 사용되는 코드 기계어로 컴파일하여 성능 개선

대표적인 사례로 Python의 PyPy, JavaScript의 V8 엔진 등이

JIT 컴파일러를 활용하여 인터프리터 언어 속도와 성능 개선