이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
서석준
가입: 2012년 9월 13일 올린 글: 59
|
올려짐: 2013년10월19일 16:44 주제: 4-2 질문입니다. |
|
|
뼈대 코드를 읽어보니 K언어의 value에 해당하는 부분이 S 스택 최상위에 오는거 같습니다. 혹여 이것이 틀렸다면 지적해주시면 감사하겠습니다.
그런데 저희 K스팩의 assign의 경우 어떤 값을 돌려주도록 구성되어있습니다.
헌데 SM5의 store를 보면 S스택에 어떤 값도 넣지 않도 단순히 M에만 손을 댑니다.
이경우 두 동작이 완전히 같다고 볼 수 없을 것 같습니다.
제가 구성한 assign(x, e)의 수도코드는 (trans e)::(push x)::(store) 입니다.
저처럼 구성하면 return값이 S에 저장되지 않습니다.
사실 assign의 리턴은 정의하기 나름이라고 생각되는데, assign의 리턴을 위해 추가적인 코드를 삽입해야 하는지, 아니면 그냥 저대로 두어도 상관없는지 답변해주시면 감사하겠습니다. |
|
위로 |
|
|
박준호
가입: 2012년 9월 15일 올린 글: 71
|
올려짐: 2013년10월19일 17:24 주제: |
|
|
저것에 덧붙여, write같은 경우도 semantics상,
write (add ((write 1+2), write 1)) 같은게 가능해야하는데,
문서상 write 1 + 2가 push1::push2::add::put 이라면 스택 탑에 출력결과(3)이 없습니다. 이는 스펙에 위배되는것이 아닌가요??
p.s.)(trans e)@((push x)::store::[]) 로 해야할듯? 저것도 되나? |
|
위로 |
|
|
최준원
가입: 2007년 3월 30일 올린 글: 149
|
올려짐: 2013년10월19일 18:50 주제: |
|
|
다른 게시글에 4-2 관련 질문 올리셨던 두 분이시군요.
제가 댓글 달았던 내용이 이 이슈에 대해서도 적용되리라 생각합니다.
맞나요? |
|
위로 |
|
|
|