 |
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
송수현
가입: 2006년 9월 4일 올린 글: 25
|
올려짐: 2006년10월28일 18:24 주제: 예제의 star.k- 잘 되시나요? |
|
|
저번에 이슈가 되었던, L R 문제에 따르면
요것은 잘 동작하지 않고
이것이 위의 문장을 k-용으로 대체할 수 있는 것이었는데요.
star.k-에는 저 문장이 들어있고, sm5로 실행해 보면
| 인용: | | SM5 evaluation error: unbound loc (1,0). |
라는 에러를 띄우네요.
또 하나의 문제는, x에 malloc을 시켜 줬으니 이제 x의 값은 Location인데, 나중에 write x를 해 버리네요. 이렇게 하면
| 인용: | | SM5 evaluation error: stuck configuration. |
라는 에러를 띄우구요. *x를 (x)로 바꿔 주고, write x 를 write *x로 바꿔 주면 잘 되네요. 이 예제는 올바른 예제인가요?
*x를 하면 x에 값으로 들어있는 메모리주소에 있는 값을 불러오는 것 아닌가요? 그래서 저번에도 문제가 발생했던 걸로 알고 있는데 말이죠. 이번 뼈대의 변경점 중 하나인
| 인용: | | -*x := 1 의 파싱이 올바르게 되지 않던 것을 수정했습니다 |
이 말이 저번에 문제가 되었었던
*x := 1 이 *(x := 1) 로 동작하던 문제
를 수정한건지, 아니면 위의
*x := 5;의 문제
를 수정한 건지 잘 모르겠네요. 후자라면 예제도 잘 돌아가야 할텐데요; |
|
| 위로 |
|
 |
박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년10월28일 21:04 주제: |
|
|
| 송수현 씀: | | *x를 (x)로 바꿔 주고, write x 를 write *x로 바꿔 주면 잘 되네요. 이 예제는 올바른 예제인가요? | 말씀하신 것이 맞습니다. 예제에 들어있는 star.k-는 다음과 같이 바꿔주어야 잘 실행이 될 것입니다.
| 코드: | let
x := 4
in
x := malloc(5);
write 3;
(x) := 5;
write *x
end |
파싱이 올바르게 되지 않는 것을 수정했다는 것은,
*x:=1이 *(x:=1)로 동작하던 것을 (*x):=1로 동작하도록 수정했음을 의미합니다.
위와 같은 내용을 잘 전달드리고자 일부러 star.k-를 넣어둔 것이니, 오해없길 바랍니다. |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|