저번 포스트에서는 어셈블러에 대하여 알아보았습니다. 이번 포스트에서는 프리 프로세서를설명하고 후에 세세한 설명과 예를 통해 풀어나갈 예정입니다.
전처리기라고도 불리는 프리 프로세서는 소스 프로그램과 목적 프로그램이 모두 고급 언어인 번역기로, 프로그래밍 언어에 유용한 기능을 추가하여 언어를 확장하는 역할을 합니다.프리 프로세서는 일반적으로 코볼 언어로 작성된 프로그램을 가지고 있지만 코볼 컴파일러가 없는 경우에는 실행할 수 없습니다. 하지만 코볼 컴파일러는 없어도 C 컴파일러가 있다면 실행해볼 수 있습니다.
코볼 언어로 작성된 프로그램을 C 언어로 작성된 프로그램으로 변환하고, C 언어로 변환된 프로그램을C 컴파일러에서 컴파일 및 실행하면 됩니다. 이때 코볼 언어로 작성된 프로그램을 C 언어로 작성된프로그램으로 변환하는 프로그램을 코볼-TO-C 프리프로세서라고 합니다.
즉 코볼-TO-C 프리프로세서나 C 컴파일러가 있다면 코볼 컴파일러가 없어도 코볼 언어로 작성된 프로그램을 컴파일하여 실행할 수 있습니다.
◎ 프리 프로세서의 헤더 파일(header file)이 포함된 파일 포함(file inclusion) 기능
- C 언어에서 사용자가 #include<stdio.h>라는 문장을 작성했다면 프리 프로세서가 컴파일하기 전에 #include<stdio.h>를 삭제하고, 그 자리를 입출력과 관련된 표준 함수 stdio.h의 내용으로 대체합니다.
◎ 매크로(Macro) 기능
- 프리 프로세서는 매크로로 정의된 부분에 대해 컴파일하기 전에 매크로의 내용으로 확장시킵니다.
예를 들어#definemax 45는 이 프로그램에서 max가 나타날 때마다 그것을 45로 바꿔줍니다.
◎ 조건부 컴파일(Conditional compile) 기능
- 조건부 컴파일은 조건에 따라 소스 프로그램의 일부분을 선택적으로 삽입하거나 삭제하는 기능을 말합니다. 예를 들면아래의 그림과 같습니다.
※ 오늘은 '프리 프로세서'에 대하여 알아보았습니다.
이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 컴파일러 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.
'컴퓨터공학 > 컴파일러' 카테고리의 다른 글
[컴파일러] 어셈블러 (0) | 2019.09.29 |
---|---|
[컴파일러] 번역기의 종류 (0) | 2019.09.29 |
[컴파일러] 컴파일러는 왜 필요할까? (0) | 2019.09.27 |