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 1: Line 1:
오리엔테이션
== 오리엔테이션 ==
source -> scanner -> tokenize -> parser -> AST -> semantic analysis -> decorated AST -> Intermediate representation(중간 코드) -> code optimize -> target code
 
IR 코드를 기준으로 frontend와 backend가 나뉨, backend는 컴퓨터 구조와 밀접한 내용이라 frontend쪽을 주로 다룰 것.
 
 
== 결정 사항 ==
== 결정 사항 ==
source language : c
source language : c

Revision as of 07:47, 3 May 2014

오리엔테이션

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

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


결정 사항

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