한국방송통신대-2020기말-프로그래밍언어론
- 최초 등록일
- 2021.11.26
- 최종 저작일
- 2020.11
- 7페이지/ MS 워드
- 가격 5,000원
소개글
"한국방송통신대_2020기말_프로그래밍언어론"에 대한 내용입니다.
목차
1. 모호한 문법의 의미를 설명하고, 교재/강의에서 다루지 않은 예를 제시하시오. (20점)
2. 다음 변수의 정의를 배런의 표기법으로 나타내시오. (10점)
3. 비지역변수와 자유변수를 공통점과 차이점 중심으로 설명하시오. (20점)
4. 추상화의 의미를 설명하고, 제어 추상화와 자료 추상화의 개념을 교재/강의에서 다루지 않은 예를 사용하여 설명하시오. (20점)
본문내용
1. 모호한 문법의 의미를 설명하고, 교재/강의에서 다루지 않은 예를 제시하시오. (20점)
모호한 문법은 동일한 표현에 대해 서로 다른 파스 트리가 만들어지는 문법으로, 모호한 문법으로 인해 하나의 프로그램이 서로 다른 결과를 도출할 수 있으며, 프로그래머의 의도와는 다르게 해석되어 잘못된 결과를 도출할 수 있는 위험을 내포하고 있다.
1+5*2라는 하나의 수식에 대해 어떤 파스 트리가 사용되는지에 따라 계산 결과가 11이 될 수도 있고 12가 될 수도 있다.
모호성을 제거하기 위해서는 문법의 명확화가 필요하다. 즉, 작성된 프로그램이 의도하지 않은 의미로 해석되지 않도록 모호한 문법을 명확하게 변경해야 한다. 일반적으로 새로운 비단말 기호와 새로운 구문 규칙을 추가하여 모호한 문법을 명확하게 변경한다.
대표적인 예로 연산자 우선순위, 좌결합 연산자, 중첩된 if문의 else
예1) 다음은 연산자 우선순위가 반영되지 않은 모호한 문법이다.
<exp> ::= <exp>*<digit> | <exp>-<digit> | <digit>
모호성을 제거하면 다음과 같다.
<exp> ::= <exp>-<term> | <term>
<term> ::= <term>*<digit> | <digit>
연산자 우선순위를 고려하기 위해서 <exp>를 정의하는 하나의 구문 규칙을 뺄셈, 그리고 곱셈을 표현하는 2개의 구문 규칙으로 나눈다. 이때 우선순위가 낮은 뺼셈이 <exp>의 구문 규칙에 직접 표현되도록 해야한다.
예2) 덧셈과 뺄셈을 왼쪽부터 차례대로 계산하기 위해서
<exp> ::= <exp>+<exp> | <exp>-<exp> | <digit>
➜ <exp> ::= <exp>+<digit> | <exp>-<digit> | <digit>
예3) if x<4 then if x>2 then y=0 else y=1은 다음 구문으로 생성하면 서로 다른 파스트리가 존재한다. (교재 외 예시를 제시하기 위해 작성함)
참고 자료
없음