1. 컴파일러(compiler) VS 인터프리터(interpreter)
- 컴파일러(compiler)
컴파일러는 고급 프로래밍 언어로 작성된 소스 코드를 컴퓨터가 이해 할 수 있는 기계어 코드로 변환하는 소프트웨어이다.
이 과정을 통해 작성된 프로그램은 컴퓨터 하드웨어에서 직접 실행될 수 있다.
일반적으로 소스코드의 분석, 최적화, 그리고 기계어 코드 생성의 세 단계로 이루어진다.
컴파일 과정이 완료된 후, 생성된 기계어 코드(실행파일)은 저장되어 언제든지 실행 될 수 있다.
📌 컴파일러의 주요 기능
① 소스 코드 분석: 컴파일러는 먼저 소스코드를 읽고 구문을 분석하여 코드의 구조를 이해한다.
이 과정에서 컴파일러는 코드내의 변수, 함수, 클래스 등의 요소와 그 관계를 파악한다.
② 최적화:컴파일러는 코드를 최적화하여 실행 기간을 단축시키고 메모리 사용을 최소화한다.
이 과정에서 불필요한 코드를 제거하거나, 반복 계산을 줄이는 등의 작업을 수행할 수 있다.
③기계어 코드 생성: 최적화된 코드를 바탕으로 컴파일러는 컴퓨터가 이해할 수 있는 기계어 코드를 생헝한다.
이 코드는 특정 하드웨어와 운영체제에서 실행될 수 있도록 특화되어있다.
④오류 검출과 보고: 컴파일 과정에서 컴파일러는 코드 내의 문법적 오류나 타입 오류 등을 검출하고, 개발자에게 오류의 위치와 원인을 알려준다. 이를 통해 개발자는 코드를 수정하고 개선할 수 있다.
컴파일 언어: C, C++, Java
- 인터프리(Interpreter)
인터프리터는 프로그래밍 언어의 소스 코드를 직접 실행하는 소프트웨어 도구이다.
컴파일러와 달리, 인터프리터는 소스 코드를 별도의 기계어 코드로 변환하지 않고, 코드를 한 줄씩 읽으면서 즉시 실행한다.
📌 인터프리터의 주요 기능
① 소스 코드 직접 실행: 인터프리터는 소스 코드를 별도의 실행 가능한 기계어 코드로 변환하지 않고, 코드를 한 줄씩 읽으면서 실행한다. 이는 개발과정에서 코드 변경 후 즉시 결과를 확인할 수 있는 능력을 말한다.
② 동적타입 검사: 많은 인터프리터 언어는 실행 시간에 타입을 검사한다. 이는 프로그래밍을 더 유연하게 만들어 주며, 개발자가 변수의 타입을 사전에 선언하지 않아도 되게 한다.
③ 즉각적인 오류 피드백: 인터프리터는 코드를 실행하면서 발생하는 오류를 즉각적으로 피드백한다. 이는 디버깅 과정을 간소화하고, 개발자가 문제를 신속하게 해결할 수 있도록 돕는다.
④ 스크립팅 및 자동화 지원: 인터프리터 언어는 종종 스크립팅과 작업 자동화를 위해 사용된다. 이는 시스템 관리, 테스트 자동화, 데이터 처리 작업 등에서 간단하고 효율적인 방법을 제공한다.
인터프리터 언어: Python, JavaScript, Ruby