[방통대] 프로그래밍언어론 기말시험(온라인평가) 과제물 (2020/2학기)
- 최초 등록일
- 2021.01.14
- 최종 저작일
- 2020.11
- 5페이지/ 한컴오피스
- 가격 4,000원
목차
1. 모호한 문법의 의미를 설명하고, 교재/강의에서 다루지 않은 예를 제시하시오. (20점)
2. 다음 변수의 정의를 배런의 표기법으로 나타내시오. (10점)
3. 비지역변수와 자유변수를 공통점과 차이점 중심으로 설명하시오. (20점)
4. 추상화의 의미를 설명하고, 제어 추상화와 자료 추상화의 개념을 교재/강의에서 다루지 않은 예를 사용하여 설명하시오. (20점)
본문내용
* 모호한 문법
프로그램은 어휘 분석과 구문 분석으로 나누어집니다. 어휘 분석이 완료 되면 구문 분석을 진행하는데, 구문 분석 과정에서 유도는 문법의 생성 규칙에 따라 특정 문자열을 도출하고 규칙을 이용하여 주어진 프로그램을 만들어가는 과정입니다. 유도가 가능하면 프로그램이 유효함을 나타냅니다. 유도를 트리 형태로 나타내면 파스트리가 되는데 주어진 표현에 파스 트리가 존재한다면 구문론 관점에서 구문에 부합하는 표현임을 알 수 있습니다.
그런데 두 개 이상의 파스트리가 존재하는 경우가 있습니다. 구문론 관점에서 어쨌든 파스트리는 존재하기에 문제가 없는 표현이지만 의미론적 관점에서 봤을 때 여러 개의 파스트리가 존재한다는 것은 값이 유일하지 않음을 나타냅니다.
이처럼 동일한 표현에 다른 형태로 여러 개의 파스트리가 만들어지는 문법을 모호한 문법이라고 합니다. 의미론적 관점에서 주어진 하나의 표현이 서로 다른 의미로 해석 될 수 있기 때문에 하나의 프로그램이 서로 다른 결과를 도출할 수 있는 문제점이 생길 수 있으며 프로그래머의 의도와는 다른 방향으로 해석되어 잘 못 된 결과를 도출 할 수 있는 문제점이 생깁니다.
사칙연산의 수식에서 발생하는 모호성을 해결하는 방법은 연산자 우선순위를 통해 해결 할 수 있으며 우선순위가 동일할 경우 좌결합 연산자부터 계산하여 해결 할 수 있습니다.
조건문인 if문이 중첩된 경우 else에서도 모호성이 발생할 수 있는데 이 경우 else를 가장 가까운 if문에 연결되도록 하는 것으로 해결합니다.
참고 자료
없음