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

NewCompileError/2014 05 03: Difference between revisions

From ZeroWiki
imported>rabierre
No edit summary
imported>rabierre
No edit summary
Line 3: Line 3:


IR 코드를 기준으로 frontend와 backend가 나뉨, backend는 컴퓨터 구조와 밀접한 내용이라 frontend쪽을 주로 다룰 것.
IR 코드를 기준으로 frontend와 backend가 나뉨, backend는 컴퓨터 구조와 밀접한 내용이라 frontend쪽을 주로 다룰 것.
 
컴파일러마다 AST 형태는 다름


== 결정 사항 ==
== 결정 사항 ==

Revision as of 07:48, 3 May 2014

오리엔테이션

source -> scanner -> tokenize -> parser -> AST -> semantic analysis -> decorated AST -> Intermediate representation(중간 코드) -> code optimize -> target code

IR 코드를 기준으로 frontend와 backend가 나뉨, backend는 컴퓨터 구조와 밀접한 내용이라 frontend쪽을 주로 다룰 것. 컴파일러마다 AST 형태는 다름

결정 사항

source language : c target language : javascript code language : java, to try

DRAFT 언어 형식 정의

BNF는 복잡하므로 일단 정규표현식을 사용함

  • number := integer | double
  • integer := decimal integer
  • decimal integer := 0 | -?1-90-9*
  • double := decimal integer . 0-9* |
decimal integer eE decimal integer?
  • factor := term + term |
term / term |
numer |
( term )
  • term := factor + factor |
factor - factor |
factor
  • expression := term