Compiler: Difference between revisions

From WaneDB
(Compiler 메인 페이지 뼈대 작성)
Tag: visualeditor
 
mNo edit summary
Tag: visualeditor-switched
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에서 상세하게 설명합니다. 주요 내용으로는 다음과 같은 주제들을 포함할 예정입니다:
* 컴파일러의 전체적인 구조 (프론트엔드, 미들엔드, 백엔드)
* 컴파일러의 전체적인 구조 (프론트엔드, 미들엔드, 백엔드)
* 어휘 분석 (Lexical Analysis): 소스 코드를 토큰(token) 단위로 분해하는 과정
* 어휘 분석 (Lexical Analysis): 소스 코드를 토큰(token) 단위로 분해하는 과정
Line 9: Line 10:
* (추후 추가 예정)
* (추후 추가 예정)


====== Index ======
= Index =


* Lecture 1. 컴파일러 개요 및 구조
* Lecture 1. 컴파일러 개요 및 구조
Line 16: Line 17:
* (추가 예정)
* (추가 예정)


== 주요 참고 문헌 및 서적 ==
= 주요 참고 자료 =


* Compilers: Principles, Techniques, and Tools (ISBN 0-201-10088-6)
* Compilers: Principles, Techniques, and Tools (ISBN 0-201-10088-6)
* COSE-312 (https://prl.korea.ac.kr/courses/cose312/2025/)
* COSE-312 (https://prl.korea.ac.kr/courses/cose312/2025/)

Revision as of 13:29, 26 May 2025

Compilers- Principles, Techniques, and Tools 2nd Edition (Dragon Book)
Compilers- Principles, Techniques, and Tools 2nd Edition

컴퓨터는 우리가 프로그래밍 언어로 작성한 코드를 직접 이해할 수 없습니다. 이 코드를 컴퓨터가 이해할 수 있는 형태로 바꾸어주는 소프트웨어가 필요한데, 그중 하나가 바로 컴파일러(Compiler) 입니다. 컴파일러는 특정 프로그래밍 언어, 즉 소스 언어(source language)로 작성된 프로그램을 다른 언어인 목표 언어(target language)로 번역하는 역할을 합니다. 목표 언어는 대부분 컴퓨터의 CPU가 직접 실행할 수 있는 기계어이거나, 자바(Java)의 경우처럼 가상 머신이 이해할 수 있는 중간 형태(intermediate form)인 바이트코드(bytecode)와 같은 형태일 수 있습니다.


본 문서에서는 컴파일러가 어떻게 소스 코드를 분석하고 목표 코드로 변환하는지에 대한 전반적인 과정을 Low-Level에서 상세하게 설명합니다. 주요 내용으로는 다음과 같은 주제들을 포함할 예정입니다:

  • 컴파일러의 전체적인 구조 (프론트엔드, 미들엔드, 백엔드)
  • 어휘 분석 (Lexical Analysis): 소스 코드를 토큰(token) 단위로 분해하는 과정
  • 구문 분석 (Syntax Analysis): 토큰 스트림을 바탕으로 프로그램의 문법적 구조를 파악하는 과정
  • (추후 추가 예정)

Index

  • Lecture 1. 컴파일러 개요 및 구조
  • Lecture 2. 어휘 분석 (Lexical Analysis)
  • Lecture 3. 구문 분석 (Syntax Analysis)
  • (추가 예정)

주요 참고 자료