iOS/정보처리기사

[정보처리기사] C언어 - 컴파일러, 인터프리터

Chafle 2022. 5. 18. 18:48
반응형
컴파일이란?

인간이 만든 고급언어를 컴퓨터가 해석 할 수 있는 저급언어로 반역하는 과정

ex. C언어를 통해 컴퓨터가 알아먹을 수 있는 1과 0의 언어로 바꿔주는 작업

 


 

 

C언어 컴파일 과정 (.확장자)

 

내가 이해할 수 있는 언어인 고급언어로 작성(.c) -> 전처리기(.i) -> 컴파일러(.s)->어셈블러(.o)->링커(.exe)

 

 

전처리기

 

#include<stdio.h>가 전처리기 역할인데

예를들어 printf, sccanf 등 많은 사람들이 사용하는 함수를 미리 누군가가 만들어놓은 것을

 합쳐주는 작업.

 

컴파일러


컴퓨터가 알아듣는 언어로 컴파일한다 (=고수준 언어를 저수준 언어로 변환, 기계어와 가장 가까운 형태의 언어)

 

 

어셈블러

 

완전한 기계어로 바꿔주는 역할

 

링커

 

전처리기->컴파일러->어셈블러를 엮어서 exe파일로 엮는다 (= 여러 개의 오브젝트 파일을 합치거나 라이브러리를 합치는 역할) 

 

 

 

컴파일러 vs 인터프리터
  • 컴파일러

고급언어로 작성된 프로그램을 컴퓨터에서 실행하기 위해, 컴퓨터가 이해할 수 있는 언어로 번역

전체를 번역하므로, 번역시간이 오래 걸리지만, 한 번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠름.

 

 

  • 인터프리터

고급언어로 작성된 프로그램을 한 줄씩 읽어 들여서 실행하는 프로그램.

번역과 실행이 동시에 이루어지므로, 별도의 실행파일이 없다.

 

 

반응형

 

마무리 문제
  • C프로그램을 컴파일 하는 순서는?(주관식)

 

 

 

 

 

1. 전처리기

2. 컴파일러

3. 어셈브러

4. 링커 

반응형