[Compiler] 1. 컴파일러 개요
2023. 3. 18. 22:30ㆍComputer Sciences/Compiler
1. 컴파일러의 필요성
언어란?
의사전달을 하기 위한 도구
언어의 종류
- 자연언어
- 형식언어
- 프로그래밍 언어
컴파일러가 필요한 이유
- 인간은 문제를 해결하기 위해 컴퓨터를 사용하며 컴퓨터와 의사소통을 하기 위한 언어가 필요하다.
- 컴퓨터는 기계어를 사용하지만 인간이 기계어를 사용하여 문제를 표현하기란 무척 어렵기 때문에 인간은 사람 중심 언어인 고급 언어를 사용한다.
- 그러나 컴퓨터는 인간이 사용하는 고급 언어를 이해하지 못한다.
- 따라서 인간이 사용하는 고급 언어를 기계어로 변환해주는 번역기인 컴파일러가 필요하다.
2. 프로그래밍 언어
참조 호출과 값 호출
참조 호출
- 실제 매개변수의 주소를 대응되는 형식 매개변수로 넘겨주는 방법으로 C언어의 포인터 변수에 대한 매개변수 전달 방식에 사용
- 2개 이상의 변수가 메모리를 공유함으로써 지역 변수 이외의 변수 값을 변화시키는 사이드 이펙트가 발생하며 프로그램을 읽고 이해하는데 어려움을 준다.
값 호출
- 실제 매개변수와 별도로 형식 매객변수에 대한 메모리를 별도로 할당하는 방법
- 사이드 이펙트는 발생하지 않지만 메모리가 추가로 필요하다.
'Computer Sciences > Compiler' 카테고리의 다른 글
[Compiler] 4-1. 유한 오토마타 (0) | 2023.04.12 |
---|---|
[Compiler] 3-3. 문법 표기법 (0) | 2023.04.10 |
[Compiler] 3-2. 형식 문법 (0) | 2023.04.10 |
[Compiler] 3-1. 형식 언어 (0) | 2023.03.23 |
[Compiler] 2. 간단한 컴파일러의 구조 (0) | 2023.03.18 |