More actions
imported>rabierre No edit summary |
(Repair batch-0002 pages from live compare) |
||
| (21 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
== 결정 사항 == | |||
시간 : 3시 ~ 6시 | |||
== | 저녘은 절대 시켜먹지 않는다!(일찍 퇴근을 위해서!) | ||
source language : c | |||
target language : javascript | |||
code language : java, to try | |||
== 오리엔테이션 == | |||
source -> scanner -> tokenize -> parser -> AST -> semantic analysis -> decorated AST -> Intermediate representation(중간 코드) -> code optimize -> target code | |||
IR 코드를 기준으로 frontend와 backend가 나뉨, backend는 컴퓨터 구조와 밀접한 내용이라 frontend쪽을 주로 다룰 것. | |||
컴파일러마다 AST 형태는 다름 | |||
== DRAFT 언어 형식 정의 == | |||
BNF는 복잡하므로 일단 정규표현식을 사용함 | |||
* number := integer | double | |||
* integer := decimal integer | |||
* decimal integer := 0 | [ 1-9 ][ 0-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 | |||
Latest revision as of 00:16, 27 March 2026
결정 사항
시간 : 3시 ~ 6시 저녘은 절대 시켜먹지 않는다!(일찍 퇴근을 위해서!) source language : c target language : javascript code language : java, to try
오리엔테이션
source -> scanner -> tokenize -> parser -> AST -> semantic analysis -> decorated AST -> Intermediate representation(중간 코드) -> code optimize -> target code
IR 코드를 기준으로 frontend와 backend가 나뉨, backend는 컴퓨터 구조와 밀접한 내용이라 frontend쪽을 주로 다룰 것. 컴파일러마다 AST 형태는 다름
DRAFT 언어 형식 정의
BNF는 복잡하므로 일단 정규표현식을 사용함 * number := integer | double * integer := decimal integer * decimal integer := 0 | [ 1-9 ][ 0-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