Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

NewCompileError/2014 05 10: Difference between revisions

From ZeroWiki
imported>syjsmk
No edit summary
imported>syjsmk
No edit summary
Line 1: Line 1:
== 전반적인 컴파일러 동작 과정 ==
== 전반적인 컴파일러 동작 과정 ==
* 컴파일러의 동작은 크게 front end, back end로 나뉜다.
** front end : 컴파일러가 여러 종류의 언어(C, Java, python 등등)를 입력으로 받아서 이를 하나의 통일된 IR (Intermediate Representation)으로 만들어주는 작업을 수행하는 부분. 컴파일러론에서 주로 다루는 부분이 front end에 해당하는 부분임.
** back end : front end에서 생성한 IR을 이용해 타겟 플랫폼(ARM, x86등)에 맞는 머신코드를 생성하는 부분. 컴퓨터 구조나 OS와 관련된 부분이 많음.
== 각 과정에서 생성되는 파일들 ==
== 각 과정에서 생성되는 파일들 ==
== finite state machine ==
== finite state machine ==

Revision as of 07:43, 16 May 2014

전반적인 컴파일러 동작 과정

  • 컴파일러의 동작은 크게 front end, back end로 나뉜다.
    • front end : 컴파일러가 여러 종류의 언어(C, Java, python 등등)를 입력으로 받아서 이를 하나의 통일된 IR (Intermediate Representation)으로 만들어주는 작업을 수행하는 부분. 컴파일러론에서 주로 다루는 부분이 front end에 해당하는 부분임.
    • back end : front end에서 생성한 IR을 이용해 타겟 플랫폼(ARM, x86등)에 맞는 머신코드를 생성하는 부분. 컴퓨터 구조나 OS와 관련된 부분이 많음.

각 과정에서 생성되는 파일들

finite state machine

수식변환기 BNF

  • 바로 C언어를 입력으로 받는 부분을 구현하는 것보다 NFA -> DFA -> 코드로의 변환 과정을 보기 위해 수식을 입력으로 받아 AST를 생성하는 변환기를 구현해보는 것부터 시작.