프로그래밍 언어는 정확한 형식이 기술되어야 한다.
다음을 참고하여 프로그래밍 언어 정확한 형식 정의가 필요한 이유를 알아보자.
- 언어의 구조와 의미의 정확한 기술 없이는 프로그래밍이 불가능
- 언어가 모호함이 없이 구현되기 위함
- 프로그래밍 과정에서 프로그램이 어떻게 동작할 것인가에 대한 문제 발생 시 유용
- 프로그램 설계 과정을 규격화하는 방법에 필요
언어의 정의는 두 가지 부분으로 나눌 수 있는데 하나는 구문론(syntax)에 관한 것이고
다른 하나는 의미론(semantic)에 관한 것이다.
언어 구문론
- 언어 구문에 관한 정의는 형식화가 많이 되어 있음
- 대부분의 언어가 문맥 자유 문법을 만족하며 BNF로 정의
- 구문에 밀접히 관련되어 있는 것이 어휘 구조(lexical structure)인데 자연어의 맞춤법과
유사하다. - 예) Pascal의 if문
<if문> ::= if <조건> then <문> [ else <문> ]
언어 의미론
언어 구문은 표면적인 구조만을 정의한다. 다만 언어의 의미론은 이보다 훨씬 복잡하다.
- 의미론은 프로그램의 실행 시 어떤 일이 발생하는가를 기술
예)위의 if문에서 조건문이 거짓으로 판명 되었을 때,
else문 이하가 존재하지 않을 경우 - 형식화가 미비
- 의미론의 형식적 정의 방법으로는
디노테이셔널 의미론(denotational semantics)과
액시어매틱 의미론(axiomatic semantics)이 있다.
'공부 > 프로그래밍언어론' 카테고리의 다른 글
1950년대: 최초의 프로그래밍 언어 (0) | 2020.04.25 |
---|---|
디지털 컴퓨터 이전의 언어 (0) | 2020.04.25 |
계산 전형 (computational paradigm) (0) | 2020.03.29 |
프로그래밍 언어에서의 추상화 (0) | 2020.03.28 |
프로그래밍 언어란? (0) | 2020.03.22 |