서론
시험에 나올 것 같은 헷갈리는 개념들만 메모해본다.
4
구문론
프로그래밍에 실행될 문법을 활용하여 명확하게 표현한다.
의미론 : 의미만 가짐.
문맥 자유 문법
영어로는 CFG(Context-Free Grammer)이다.
<if문> ::= if <논리식> then <문장>
비단말 기호는 정의될 대상을 표현한다. <if문>, <논리식>, <문장>
단말 기호는 언어에서 직접 사용되는 표현이다. if, then
문맥자유 문법의 다양한 표현 방법에는 BNF, EBNF, 구문 도표가 있다.
BNF
영어로는 Backus-Naur Form이다.
<if문> ::= if <논리식> then <문장> else <문장>
| if <논리식> then <문장>
EBNF
영어로는 Extended Backus-Naur Form이다.
BNF에 추가적인 기호를 사용하여 보다 간결하게 표현할 수 있다.
[] 생략 가능
<if문> ::= if <논리식> then <문장> [ else <문장> ]
{} 0번 이상 반복
<unsigned integer> ::= <digit> { <digit> }
() |과 함께 쓰여 한정된 범위의 택일
<수식> ::= <수식> ( + | - | * | / ) <수식>
'' 메타 기호를 단말 기호로 사용
메타 기호를 의미로 사용하는 게 아니라 문자열로 표현하고 싶을 때.
<BNK 규칙> ::= <왼쪽 부분> '::=' <오른쪽 부분>
구문 도표
영어로는 syntax diagram이다.
순서도처럼 그림으로 구문을 표현하는 방식이다.
ㅁ 네모 모양은 비단말 기호
ㅇ 동그라미 모양은 단말 기호
-> 화살표 모양은 연결