More actions
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