컴파일러와인터프리터
프로그래밍 언어
컴퓨터와 대화하기 위해 필요한 언어이지 우리가 다른 나라 말 배우는 이유랑 같은 거라 생각한다
- 크게 저급 언어, 고급 언어로 나뉘는데 기준이라면 인간과 기계 누구에게 맞춰줘 있냐가 포인트야
저급 언어
- 기계어
- 컴퓨터가 직접 이해할 수 있는 언어
- 수행시간이 빠르다
- 우리가 흔히 아는 0과 1 방식
- 언어의 호환성이 없다
- cpu 내장 명령을 직접 사용하는 것으로 프로그램을 작성하고 이해하기 어렵다
- 기억해봐 micro operation 답답하잖아
- 어셈블리어
- 기계어와 1 : 1로 대응되는 기호로 이루어진 언어
- 하드웨어 제어에 주로 사용되며 역시나 언어의 호환성은 없다
- 컴퓨터가 직접 이해 못하므로 어셈블러로 기계어로 번역해줘야함
고급 언어
- 보통은 컴파일 해야하는 언어들을 의미하지
- 인간 친화적이야 그나마
- 하드웨어에 대한 깊은 지식이 없어도 프로그램을 만들 수 있어
- 컴파일러나 인터프리터가 필요하다
- 역시나 기계어로 번역하기 위해
컴파일러와 인터프리터
컴파일러와 인터프리터도 결국은 번역긴데 좀 있어 보이게 말하자면 Source Program을 Object프로그램으로 바꾸는 역할을 해
컴파일러
- 프로그램 전체를 번역한 후 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성한다
- 우리가 흔히 보는 C 언어
- 번역 과정이 번거럽고 오래 걸리지만 한 번 번역하면 다시 번역하지 않아도 되니까 실행 속도가 빠르다
인터 프리터
인터프리터 특징에서 오는 단점이 대부분인거 같아
- 한 줄 단위로 프로그램을 번역한다. 프로그램을 실행시킬 때마다 다시 번역한다
- 목적 프로그램이 생성되지 않아
- 시분할 시스템에 유용하다
- 원시 프로그램 변화에 민감하다
- 번역 속도는 빠르지만 매번 번역하니까 실행 속도가 느려
- 파이썬으로 서비스 만들어서 돌리면 느리잖아 느낌알지?
- cpu 사용 시간의 낭비가 크다
Comment