기타/방송대 정리

프로그래밍언어론

푸쿠이 2023. 12. 7. 22:02

서론

시험에 나올 것 같은 헷갈리는 개념들만 메모해본다.

 

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이다.

순서도처럼 그림으로 구문을 표현하는 방식이다.

 

ㅁ 네모 모양은 비단말 기호

ㅇ 동그라미 모양은 단말 기호

-> 화살표 모양은 연결