배커스-나우르 표기법(Backus–Naur form), 약칭 BNF는 문맥 자유 문법을 나타내기 위해 만들어진 표기법이다. 여기에서 기호는 말단 기호가 될 수 없고, 표현식은 다른 기호의 조합, 또는 여러 가지의 표현식 중 하나를 사용한다는 의미로 |를 사용한다. 다른 표현식으로 정의되지 않은 기호는 자동적으로 말단 기호가 된다. 또한, 기호가 아닌 상수에는 따옴표를 붙여서 구별한다.
Assembly 언어는 Label, OP, Operand 이렇게 3가지로 구성되어 있다.
① Label : 데이터를 기억할 기억장소, 또는 분기할 위치, 기호 상수 등에 대한 기호(Symbol)를 기술하는 부분으로 생략할 수 있다.
② OP : 명령어(OP-code)를 기술하는 부분
③ Operand : OP-code가 연산을 수행하기 위한 연산의 대상이 되는 Literal(상수, 데이터)이나 주소, Register 번호 등을 기술하는 부분
첫 번째 패스에서는 어셈블리 코드를 가지고 기호표를 작성한다.
'3-2 > 기초컴파일러' 카테고리의 다른 글
NFA->DFA, State Minimization (0) | 2021.09.18 |
---|---|
Finite Automata (0) | 2021.09.18 |
Chomsky hierarchy (0) | 2021.09.10 |
Formal language, Formal grammar (0) | 2021.09.09 |
컴파일러 구조 개요 (0) | 2021.09.05 |