윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2011년4월11일 11:14 주제: 숙제3 의 채점이 완료되었습니다. |
|
|
숙제3 의 채점이 완료되었습니다.
조교가 작성한 모범답안은 다음과 같습니다.
http://ropas.snu.ac.kr/~ta/4541.664A/11/score/hw3/hw3_sol.pdf
참고:
1. 모든 Semantics 정의에는 Semantic Domain 정의가 포함되어야 합니다.
2. Semantic Domain에서 '값'을 기존에 존재하는 정수, 실수, 논리값 등이 아닌 새로운 집합으로 정의한 경우, 그 값을 조작하는 모든 연산자의 의미도 새로 정의해야 합니다. 예컨대 1번의 경우 top과 bottom을 값으로 활용하실 경우 +, ×등에 top과 bottom을 넣었을 때 어떤 일이 일어나는지 따로 정의 해주셔야 합니다. (top+top의 결과는?)
top과 bottom을 일종의 command로 보고 이걸 다시 {0,1}이나 {true, false}와 같이 기존에 존재하는 집합으로 보낸 경우에는 각 집합에 해당하는, 수학에서 흔히 쓰이는 연산자들을 그냥 쓰셔도 됩니다. (0+1=1. true ∧ false = false.)
3. Structural Operational Semantics에서는 한 번에 '값'이 나와야 합니다. 즉, C의 계산결과로 또 다른 C가 나오면 안 됩니다.
4. Evaluation Context Semantics에는 실행문맥 K의 정의와 다시쓰기 규칙이 있어야 합니다.
5. Abstraction Machine Semantics로 정의할 경우 기계의 Semantic Domain, 기계의 작동 규칙(Transition), 주어진 C를 기계의 언어로 바꾸는 번역 규칙(Translation), 이렇게 세 가지가 있어야 합니다.
6. Semantic 정의에 Memory(M)가 꼭 필요한 것은 아닙니다. 쓰지 않는 메모리를 Semantic 정의에 포함시키고 놀게 두는 분들이 많았습니다.
숙제3에 대해 더 궁금하신 점이 있으면 조교에게 메일로 질문해주세요.
조성근 : skcho@ropas.snu.ac.kr
윤용호 : yhyoon@ropas.snu.ac.kr |
|