이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
이수지
가입: 2011년 9월 7일 올린 글: 8
|
올려짐: 2012년10월20일 13:11 주제: 숙제 4-2 숙제 파일의 write 1+2 질문합니다. |
|
|
안녕하세요, 조교님
k-- command의 return 값을 어떻게 처리해야 할지 고민하다 질문올립니다.
숙제 스펙에 보면,
push 1 :: push 2 :: add :: put :: empty
가
write 1+2
와 같은 일을 한다고 나와있는데요,
k-- semantics를 보면 write는 그 결과값을 출력하고 또 리턴합니다.
그러면 add (write 1+2, write 1+2) 따위의 식이 가능해져야 할 것 같은데,
위와 같이 SM5로 짰을 때는 리턴하는 부분이 없어서 이러한 식이 가능해지지 않아서요
어떻게 해석해야하죠? |
|
위로 |
|
|
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2012년10월20일 17:01 주제: |
|
|
write 1+2와 push 1::push 2::add::put::empty는
그 이후에 결과 값을 사용하는 부분이 없기 때문에 화면 출력 관점에서 보면 같은 일을 한다고 볼 수 있습니다.
변환기를 짜는 입장에서는 결과값을 사용하는 명령어가 있는 경우를 고려해야 되기때문에 수지님 이야기 처럼 값을 남겨둬야 할 것 같습니다.
값을 남기는 방법은 여러 방식이 있을 수 있겠는데요..
예를 들면 write 명령어를 해석할때 스택 맨 위의 값을 임시 변수에 넣어두고
임시 변수 값을 두번 push 한다음 put을 해주면 하나만 남을 겁니다. |
|
위로 |
|
|
이수지
가입: 2011년 9월 7일 올린 글: 8
|
올려짐: 2012년10월20일 23:49 주제: |
|
|
넵, 감사드립니다! |
|
위로 |
|
|
|