일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- study
- 오답풀이
- 홈서버
- 220821
- 개발
- 개발공부
- 자격증
- React
- Java
- 프로그래밍언어론
- WPF
- CSS
- windows
- Developer
- php
- 외부접속
- cording
- bootcamp
- 방화벽
- C
- CodeIgniter
- knockon
- html
- git
- 매크로
- Mac
- 개인서버
- 프로그래밍 언어론
- plan
- 정보처리기능사
- Today
- Total
bunta의 보조기억장치
[프로그래밍 언어론] 4-3 의미의 표현 본문
의미론
→ 프로그램의 내용적인 효과를 정의
→ 프로그램 실행 시 어떤 일이 일어나는지 그 의미를 기술
→ 구문으로 표현하기 어려운 제약사항을 기술하기도 함
의미의 표현
→ 일반적으로 자연어 문장으로 표현하나 명확성이 부족
→ 의미의 엄밀한 표현을 위한 다양한 기법 개발(형식 의미론)
형식 의미론
정적 의미론
→ 프로그램을 수행하기 전 의미가 맞는지 파악하는 방법
→ 주로 타입 검사 수행에 활용
→ 대표적인 방법: 속성 문법
동적 의미론
→ 프로그램 수행 시 나타나게 될 의미를 표현하는 방법
→ 대표적인 방법: 기능적 의미론, 표기적 의미론, 공리적 의미론 등
* 속성 문법
→ 비단말 기호마다 타입 속성이 있다고 가정하고 이에 대한 규칙을 정의
기능적 의미론
→ 추상기계의 상태를 바꾸는 것으로 수행 의미를 표현
→ 프로그램이 수행(기능)되면 컴퓨터의 상태가 바뀜
→ 상태: <수행할 명령어, 메모리 상태>
ex) < z=x; x=y; y=z; , [x→5, y→7, z→0] > 실행 전
→ < x=y; y=z; , [x→5, y→7, z→5] > 1단계 실행 후
→ < y=z; , [x→7, y→7, z→5] > 2단계 실행 후
→ < , [x→7, y→5, z→5] > 실행 완료
최종적으로 x와 y의 값이 바뀌는 과정
표기적 의미론
→ 구문 요소를 수학적 표기에 대응시켜 수행 의미를 표현
→ 의미함수: 대응시키는 함수
공리적 의미론
→ 프로그램의 효과로 수행 의미를 표현
→ 효과: 프로그램 S가 실행됨으로써 사전조건 P를 사후조건 Q로 변화시킴, {P} S {Q}
의미론의 한계 및 효과
한계
→ 프로그래밍 언어 전체에 대한 의미 표현은 너무 복잡
효과
→ 프로그램의 구현 및 분석 등에 유용하게 사용됨
→ 속성 방법: 인터프리터 및 컴파일러 구현 시 트리 생성, 타입 검사, 코드 생성 등을 할 때
→ 수학적 표기: 언어의 특성을 명확하게 정의해야 할 때
→ 공리적 의미론: 프로그램의 특정 조건 만족 여부를 확인할 때
한국방송통신대학 [프로그래밍 언어론] 강의 필기입니다.
'Study > 필기' 카테고리의 다른 글
[프로그래밍 언어론] 4-2 구문의 표현 (0) | 2022.10.05 |
---|---|
[프로그래밍 언어론] 4-1 구문론과 의미론 (0) | 2022.10.05 |
[프로그래밍 언어론] 3-4 프로그래밍 언어와 프로그래밍 패러다임 (0) | 2022.10.05 |
[프로그래밍 언어론] 3-3 여러 패러다임의 프로그램 예 (0) | 2022.10.05 |
[프로그래밍 언어론] 3-2 프로그래밍 언어의 패러다임 (0) | 2022.10.05 |