4강. 구문론과 의미론

학습개요

프로그래밍 언어의 두 가지 측면으로 프로그램 형태에 관한 이론인 구문론과 프로그램 수행 의미에 관한 이론인 의미론이 있음을 앞에서 배웠습니다. 이번 강의에서는 프로그래밍 언어의 형식적 정의를 위한 구문론과 의미론에 대해 본격적으로 알아봅니다. 우선 구문론과 의미론의 개념을 살펴본 후, 구문을 표현하는 방법과 의미를 표현하는 방법에 대해 학습합니다. 특히 구문의 표현법인 BNF, EBNF, 구문 도표에 대해서는 자세히 알아봅니다.

학습목표

  1. 프로그래밍 언어의 형식적 정의를 위한 구문론과 의미론의 개념을 설명할 수 있다.
  2. 구문의 표현에 이용되는 BNF, EBNF, 구문 도표를 설명할 수 있다
  3. 의미의 표현에 이용되는 다양한 방법을 설명할 수 있다.

정리하기

  1. 프로그래밍 언어는 문장을 정확하게 이해할 수 있도록 명확한 구문과 그 의미가 정의되어야 한다. 이를 프로그래밍 언어의 형식적 정의라 하며 이는 다시 구문론과 의미론으로 나눌 수 있다.
  2. 구문론은 프로그램의 표면적인 구조를 정의하는 것으로, 프로그램 작성 시 어떤 형태로 작성해야 하는지를 기술한다.
  3. 의미론은 프로그램의 내용적인 효과를 정의하는 것으로, 프로그램 실행 시 어떤 일이 일어나는지 그 의미를 기술한다.
  4. 프로그래밍 언어에서 구문은 문맥 자유 문법으로 표현된다. 문맥 자유 문법이란 문맥에 영향을 받지 않는 문법을 의미한다.
  5. 문맥 자유 문법을 표현하는 방법으로 BNF, EBNF, 구문 도표가 있다.
  6. 프로그래밍 언어에서 의미는 자연어로 표현되는 경우가 많지만, 엄밀한 표현을 위한 형식 의미론도 존재한다.
  7. 형식 의미론에서 다루는 표현 방법으로는 속성 문법, 기능적 의미론, 표기적 의미론, 공리적 의미론이 있다.

Leave a Comment