김진산
가입: 2006년 9월 13일 올린 글: 45
|
올려짐: 2007년10월24일 14:27 주제: 5.1 SM5 "스펙" 과 "box/unbox"에 관련된 질문입니다. |
|
|
1.
" SM5의 Cmd Set으로는 for, while 와 같은 iterative statement를
구현하기 상당히 까다롭습니다.
(S, M, E, C, K) 에서 C를 변화 시킬수 있는 Cmd는 jtr, call 두가지밖에 없습니다.
jtr을 이용하여서 for나 while을 구현하려면 'jtr(C1, C2)'에서 C1이나 C2가
무한히 정의되어야 하므로 jtr을 사용할 수 없을 것 같습니다.
따라서, call을 고려해 볼 수 밖에 없는데요 그렇다면 argment x에 대한 처리,
(argument x가 없는 변수처럼 처리 해야 겠죠?)
Malloc, K push/pop, 'while/for 구문에 해당하는 unique한 함수명 생성' 등의
소모적이라고 생각되는 작업을 처리해 주어야 할 것 같습니다.
Stack 에 있는 값을 C에 push 할수 있는 Cmd (Jump의 의미)를 제공해 주시거나,
for/while을 스펙에서 제거하는게 맞다고 생각합니다. "
---
라고 생각하면서도, 제가 잘 못 생각하고 있는 부분이 있을거라고 믿고
몇시간을 고생해서 구현해 보고 있었습니다.
이건 너무 소모적인 것 같아서 혹시 작년 문제 중에 같은 문제가 있나 하고 봤더니
아래와 같은 조건이 붙어 있더군요.
인용: |
[2006 Homework4 Exercise2 SM5 인용]
K--는 K-에서 for문과 while문, 그리고 주소로 호출하기(call-by-reference)가 없는 언어이다.
|
스펙에서 for/while을 제거하거나 추가 Cmd를 제공해 주시면 어떨까요?
Cmd를 추가할 수 있는 조건도 좋습니다. (<= 이건 좀 힘들겠죠?)
2.
box/unbox 사용 필요성이 안보입니다.
왠지 주어진 Cmd를 사용 안하게 되니 무엇인가를 놓친듯한 느낌이군요.
혹시, box/unbox 사용에 대해서 힌트를 주실 수 있을까요?
(이 질문은 답변이 곤란하시면 안해 주셔도 됩니다.!) |
|