Compiler: Difference between revisions
No edit summary Tag: visualeditor-switched |
No edit summary |
||
Line 1: | Line 1: | ||
[[File:Compilers- Principles, Techniques, and Tools 2nd Edition.png|alt=Compilers- Principles, Techniques, and Tools 2nd Edition (Dragon Book)|thumb|'''Compilers- Principles, Techniques, and Tools 2nd Edition''']] | [[File:Compilers- Principles, Techniques, and Tools 2nd Edition.png|alt=Compilers- Principles, Techniques, and Tools 2nd Edition (Dragon Book)|thumb|'''Compilers- Principles, Techniques, and Tools 2nd Edition''']] | ||
컴퓨터는 우리가 프로그래밍 언어로 작성한 코드를 직접 이해할 수 없습니다. 이 코드를 컴퓨터가 이해할 수 있는 형태로 바꾸어주는 소프트웨어가 필요한데, 그중 하나가 바로 '''컴파일러(Compiler)''' 입니다. 컴파일러는 특정 프로그래밍 언어, 즉 소스 언어(source language)로 작성된 프로그램을 다른 언어인 목표 언어(target language)로 번역하는 역할을 합니다. 목표 언어는 대부분 컴퓨터의 CPU가 직접 실행할 수 있는 기계어이거나, 자바(Java)의 경우처럼 가상 머신이 이해할 수 있는 중간 형태(intermediate form)인 바이트코드(bytecode)와 같은 형태일 수 있습니다. | 컴퓨터는 우리가 프로그래밍 언어로 작성한 코드를 직접 이해할 수 없습니다. 이 코드를 컴퓨터가 이해할 수 있는 형태로 바꾸어주는 소프트웨어가 필요한데, 그중 하나가 바로 '''컴파일러(Compiler)''' 입니다. 컴파일러는 특정 프로그래밍 언어, 즉 소스 언어(source language)로 작성된 프로그램을 다른 언어인 목표 언어(target language)로 번역하는 역할을 합니다. 목표 언어는 대부분 컴퓨터의 CPU가 직접 실행할 수 있는 기계어이거나, 자바(Java)의 경우처럼 가상 머신이 이해할 수 있는 중간 형태(intermediate form)인 바이트코드(bytecode)와 같은 형태일 수 있습니다. | ||
본 문서에서는 컴파일러가 어떻게 소스 코드를 분석하고 목표 코드로 변환하는지에 대한 전반적인 과정을 Low-Level에서 상세하게 설명합니다. 주요 내용으로는 다음과 같은 주제들을 포함할 예정입니다: | 본 문서에서는 컴파일러가 어떻게 소스 코드를 분석하고 목표 코드로 변환하는지에 대한 전반적인 과정을 Low-Level에서 상세하게 설명합니다. 주요 내용으로는 다음과 같은 주제들을 포함할 예정입니다: | ||
Line 9: | Line 7: | ||
* 구문 분석 (Syntax Analysis): 토큰 스트림을 바탕으로 프로그램의 문법적 구조를 파악하는 과정 | * 구문 분석 (Syntax Analysis): 토큰 스트림을 바탕으로 프로그램의 문법적 구조를 파악하는 과정 | ||
* (추후 추가 예정) | * (추후 추가 예정) | ||
Compiler 문서는 [[User:Aeon|Aeon]]이 관리하고 있습니다. 문의사항이 있을 경우 Aeon에게 연락주세요! | |||
= Index = | = Index = |
Revision as of 10:38, 28 May 2025

컴퓨터는 우리가 프로그래밍 언어로 작성한 코드를 직접 이해할 수 없습니다. 이 코드를 컴퓨터가 이해할 수 있는 형태로 바꾸어주는 소프트웨어가 필요한데, 그중 하나가 바로 컴파일러(Compiler) 입니다. 컴파일러는 특정 프로그래밍 언어, 즉 소스 언어(source language)로 작성된 프로그램을 다른 언어인 목표 언어(target language)로 번역하는 역할을 합니다. 목표 언어는 대부분 컴퓨터의 CPU가 직접 실행할 수 있는 기계어이거나, 자바(Java)의 경우처럼 가상 머신이 이해할 수 있는 중간 형태(intermediate form)인 바이트코드(bytecode)와 같은 형태일 수 있습니다.
본 문서에서는 컴파일러가 어떻게 소스 코드를 분석하고 목표 코드로 변환하는지에 대한 전반적인 과정을 Low-Level에서 상세하게 설명합니다. 주요 내용으로는 다음과 같은 주제들을 포함할 예정입니다:
- 컴파일러의 전체적인 구조 (프론트엔드, 미들엔드, 백엔드)
- 어휘 분석 (Lexical Analysis): 소스 코드를 토큰(token) 단위로 분해하는 과정
- 구문 분석 (Syntax Analysis): 토큰 스트림을 바탕으로 프로그램의 문법적 구조를 파악하는 과정
- (추후 추가 예정)
Compiler 문서는 Aeon이 관리하고 있습니다. 문의사항이 있을 경우 Aeon에게 연락주세요!
Index
- Lecture 1. 컴파일러 개요 및 구조
- Lecture 2. 어휘 분석 (Lexical Analysis)
- Lecture 3. 구문 분석 (Syntax Analysis)
- (추가 예정)
주요 참고 자료
- Compilers: Principles, Techniques, and Tools (ISBN 0-201-10088-6)
- COSE-312 (https://prl.korea.ac.kr/courses/cose312/2025/)