반응형
컴파일이란?
인간이 만든 고급언어를 컴퓨터가 해석 할 수 있는 저급언어로 반역하는 과정
ex. C언어를 통해 컴퓨터가 알아먹을 수 있는 1과 0의 언어로 바꿔주는 작업
C언어 컴파일 과정 (.확장자)
내가 이해할 수 있는 언어인 고급언어로 작성(.c) -> 전처리기(.i) -> 컴파일러(.s)->어셈블러(.o)->링커(.exe)
전처리기
#include<stdio.h>가 전처리기 역할인데
예를들어 printf, sccanf 등 많은 사람들이 사용하는 함수를 미리 누군가가 만들어놓은 것을
합쳐주는 작업.
컴파일러
컴퓨터가 알아듣는 언어로 컴파일한다 (=고수준 언어를 저수준 언어로 변환, 기계어와 가장 가까운 형태의 언어)
어셈블러
완전한 기계어로 바꿔주는 역할
링커
전처리기->컴파일러->어셈블러를 엮어서 exe파일로 엮는다 (= 여러 개의 오브젝트 파일을 합치거나 라이브러리를 합치는 역할)
컴파일러 vs 인터프리터
- 컴파일러
고급언어로 작성된 프로그램을 컴퓨터에서 실행하기 위해, 컴퓨터가 이해할 수 있는 언어로 번역
전체를 번역하므로, 번역시간이 오래 걸리지만, 한 번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠름.
- 인터프리터
고급언어로 작성된 프로그램을 한 줄씩 읽어 들여서 실행하는 프로그램.
번역과 실행이 동시에 이루어지므로, 별도의 실행파일이 없다.
반응형
마무리 문제
- C프로그램을 컴파일 하는 순서는?(주관식)
1. 전처리기
2. 컴파일러
3. 어셈브러
4. 링커
반응형
'iOS > 정보처리기사' 카테고리의 다른 글
[정보처리기사] C언어 - 변수의 종류와 유효범위(지역변수, 전역변수, 정적변수, 동적변수) (0) | 2022.05.20 |
---|---|
[정보처리기사] C언어 - 변수 (0) | 2022.05.18 |
[정보처리기사] 비전공자 2022년 2회 정보처리기사 필기 합격 후기/공부법 (2) | 2022.04.25 |
[정보처리기사] 1과목 2장 화면 설계 (0) | 2022.02.23 |
[정보처리기사] 1과목 1장 소프트웨어 설계 거꾸로 키워드 (0) | 2022.02.22 |