문동영
가입: 2017년 9월 11일 올린 글: 2
|
올려짐: 2017년11월14일 15:56 주제: 5-1 과제 설명의 write에 대한 질문 |
|
|
hw5.pdf의 5페이지 맨 위에 다음과 같이 적혀있습니다.
인용: | 예를들어,
push 1::push 2::add::put::empty
는 K-- 프로그램 write 1+2와 같은 일을 하게 된다. |
그렇다면 K-- 프로그램
write (write 1+2)+3
은 sm5로 다음과 같이 표현됩니다.
push 1::push 2::add::put::push 3::add::put::empty
그런데 두 프로그램을 돌려보면 K--는 의도대로 3\n6\n을 출력하는 반면 sm5는 두 번째 add에서 스택에 3 하나밖에 없기 때문에 오류가 발생합니다.
이는 K--의 write는 write 1+2의 결과로 3을 출력하고 3과 메모리를 반환하지만, sm5의 put은 3을 출력하고 3을 스택에서 빼버리기 때문인 것으로 보입니다.
혹시 제가 이해를 잘못한 부분이 있는 건가요? 아니면 write (write 1+2)+3과 같은 코드는 테스트하지 않는 건가요? |
|