프로그래밍을 명시할 때는 specification과 implementation을 담아내야 한다. specification에는 defenition, syntax, semantics를 명시해야 한다 implementation은 실행 방법에 대한 가이드라인(자바는 컴파일이 아닌 VM 기반에서)을 명시한다 syntax(formal grammer) : 프로그램의 구조와 형태 - token, expression, statement, Digit ... 문법의 작동방식 parse tree를 설계하여 문법의 규칙을 정한다 : 명사, : 동사, :sentence => -> Context Free Grammer (CFG) 문맥자유문법 왼쪽에 심볼 하나, 오른쪽에 심볼 하나 이상 terminal symbol = token, ..