소개

1장 컴파일러 개요 / 2장 컴파일러의 간단한 예

날짜
2022/04/06
01_02_compiler_compressed.pdf
534.5KB
Note

개요

어떤 형태로 컴퓨터공학을 공부하든, 대부분 단순한 프로그래밍 언어 사용 방법 그 이상(이를테면 컴퓨터 수학, 컴파일러, 프로그래밍 언어론, 운영체제 등)으로 컴퓨터공학을 공부하는 경험을 드물다.
컴퓨터공학은 많은 것이 ‘타고나는 감'에 의존하는 분야라는 느낌을 받을 수 밖에 없다.
⇒ 공감. 열심히 공부해야겠다..

컴파일러란?

고급 프로그래밍 언어(higher level programming language)로 작성된 프로그램을 기계 지향 언어(machine oriented language) 프로그램으로 번역하기 위한 프로그램
다만 고급 언어를 원시적인 기계 언어로 변경하는 것이 쉽지는 않다. why? → 둘의 문법에 큰 괴리가 있기 때문
그래서 고급 프로그래밍 언어 → (중간 언어) → 기계 언어 형태로 중간 언어를 두기도 함.
대표적으로
1.
Java Source Code → Byte Code
a.
Run with JVM(Java Virtual Machine)
2.
C# Source Code → CIL(Common Intermediate Language)
a.
Run with CLR(Common Language Runtime)

변환 시스템과 통역 시스템

원시 프로그램을 실제 컴퓨터의 기계어로 변환하지 않고 가상 머신에서 사용할 수도 있다. 가상 머신의 기계어는 원시 언어와 실제 컴퓨터의 기계어 중간에 위치하는 언어이므로 중간 언어(intermediate language)라고 부른다.
그리고 이러한 변환(분석)을 해주는 프로그램을 인터프리터(interpreter) 또는 통역 시스템이라고 부른다.
언어 처리 시스템(Language Processor) = 처리 시스템(Processor)