의미론 (Semantics)이란?
- 프로그래밍을 배우기 어렵게 만드는 용어 중 하나이다. 영어로는 semantics 로 불린다.
- 어떤 요소를 어떠한 위치에 두어야 하는가가 아니라 어떤 요소를 어떠한 위치에 두면 어떤 의미를 갖는지를 말한다.
의미론 (Semantics)의 사전적 정의
출처: 네이버 사전
정보·통신 구문론에 따른 문자 나열로부터 어떤 의미를 결정하는 규칙. 언어는 일반적으로 구문론과 의미론의 두 가지 측면을 가지고 있으며, 프로그램 언어도 마찬가지로 두 개의 측면에서 규정된다. 프로그램이 컴퓨터상에서 어떤 처리를 해야 하는가를 정하는 것이다.
- 위의 설명처럼 언어는 구문론과 의미론 두가지 측면을 가진다고 한다. 그렇다면 구문론이란 무엇일까?
구문론 (Pronunciation) 이란?
출처: 네이버 사전
언어 문장을 기본 대상으로 하여 문장의 구조나 기능, 문장의 구성 요소 따위를 연구하는 학문. 언어학의 한 분야이다.
다시 의미론이란?
- 문법적인 측면보다 '의미'를 해석하는데 중점을 두는 것을 말한다.
- 코드의 데이터 구조나 형식보다 코드가 어떤 목적으로 수행되는지에 관한 것이다.
프로그래밍 언어 의미론 (Programming Language Semantics)
- 특정 언어로 프로그램을 실행할 때 따르는 프로세스를 말한다.
- 프로그램 입출력 간의 관계나 특정 플랫폼에서 프로그램이 어떻게 실행되는지를 말한다.
- 해당 언어를 사용한 프로그램이 어떻게 동작해야 하는지에 대한 공식 스펙(표준)에 의해 결정하는 것을 말한다.
- 명령문, 표현식, 타입, 제어 흐름과 같은 프로그래밍 언어 구조의 의미를 말한다.
데이터 의미론 (Data Semantics)
- 프로그래밍 언어에서 데이터가 사용되는 방식을 의미한다.
- 변수의 의미에는
타입
,스코프
,라이프사이클
,값
등이 있을 수 있다.- 표현식이나 문에서 변수가 사용되는 방식도 포함될 수 있다.
웹 의미론 (Web Semantics)
- 웹에서 데이터를 기술하고 교환하기 위한 표준화된 형식과 프로토콜을 사용하는 것을 말한다.
XML
,RDF
,OWL
과 같은 기술을 말한다.- 기계가 읽을 수 있게 데이터를 표현하고 추론한다.
정리하자면
- 의미론은 요소가 특정 위치에 있거나 특정 구조를 띌 때 어떤 의미를 갖냐를 말하는 것이다.
- 한 프로그래밍 언어의 의미론에 해박해지면, 프로그램은 더욱 정확하게 의도된대로 작동한다.
- 의미론에 해박한 프로그래머는 더 유지보수하기 좋고 믿을 수 있는 소프트웨어를 만들 수 있다.
반응형
'용어 (개발용어)' 카테고리의 다른 글
증분 컴파일 (incremental compile) 이란? (0) | 2023.10.08 |
---|---|
프로그래밍에서 말하는 애드혹 (ad-hoc, adhoc) 이란? (2) | 2023.04.12 |
빅 엔디언 (big endian) 과 리틀 엔디언 (little endian) 이란? (0) | 2023.03.18 |
2의 보수란? (0) | 2023.03.18 |
IEEE 754 부동소수점이란? (0) | 2023.03.17 |