EXERCISES Section 5.1
Problem 1 ~ Problem 4
5.1.1 그림 5.2의 문법에 따라 다음 <id-list>들에 대한 파스 트리를 그리시오.
a) ALPHA
5.1.2 그림 5.2의 문법에 따라 다음 <exp>들에 대한 파스 트리를 그리시오.
a) ALPHA + BETA
b) ALPHA - BETA * GAMMA
c) ALPHA DIV (BETA + GAMMA) - DELTA
5.1.3 그림 5.2의 문법에서 규칙 10과 11이 다음과 같이 수정되었다고 가정하자.
<exp> ::= <term> | <exp> * <term> | <exp> DIV <term>
<term> ::= <factor> | <term> + <factor> | <term> - <factor>
수정된 문법에 따라 문제 2의 <exp>들에 대한 파스 트리를 그리시오.
문법의 수정이 산술 연산자의 우선순위의 어떤 영향을 끼치는가?
answer :
a) ALPHA + BETA
b) ALPHA - BETA * GAMMA
c) ALPHA DIV (BETA + GAMMA) - DELTA
규칙 10과 11이 변경되면서 사칙연산의 중 *,DIV 연산과정의 접근 속도가 느려짐으로써
+,-가 *,DIV보다 계산속도가 빠르게 변경되었다.
사칙연산의 우선순위에는 영향을 끼치지 않았다.
5.1.4 그림 5.2의 문법에서 규칙10과 11이 삭제되고 다음의 단일한 규칙으로 변경되었다고 가정하자.
<exp> ::= <factor> | <exp> + <factor> | <exp> - <factor> | <exp> * <factor>
| <exp> DIV <factor>
수정된 문법에 따라 문제 2의 <exp>들에 대한 파스 트리를 그리시오.
문법의 수정이 산술 연산자의 우선순위에 어떤 영향을 끼치는가?
answer :
a) ALPHA + BETA
b) ALPHA - BETA * GAMMA
c) ALPHA DIV (BETA + GAMMA) - DELTA
규칙10,11을 단일한 규칙으로 변경하여서 <exp>,<factor>만으로 <id>에 접근할 수 있게 되었으며, <term>을 거치는 과정이 생략되었다.
위의 변경으로도 사칙연산의 우선순위에는 영향을 끼치지 않는다.
'Department > System software' 카테고리의 다른 글
시스템 소프트웨어 과제#7 (0) | 2020.07.14 |
---|---|
시스템 소프트웨어 과제#6 (0) | 2020.07.14 |
시스템 소프트웨어 과제#5 (0) | 2020.07.14 |
시스템 소프트웨어 과제#4 (0) | 2020.07.14 |
시스템 소프트웨어 과제#3 (0) | 2020.07.14 |