이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
심우철
가입: 2009년 10월 4일 올린 글: 23
|
올려짐: 2010년10월5일 16:30 주제: 숙제 3-2 에서 CALLV에 대해 질문있습니다. |
|
|
스펙 문서의 semantic을 보다가 의문이 생겨서 질문합니다.
저는 CALLV의 semantic을 프로시져에 안에서 사용되는 흔히 말하는 지역 변수들이 프로시져콜 이후에도 해지되지 않고 메모리에 남는다는 뜻으로 이해했습니다.
(CALLR 도 비슷하게 이해했습니다.)
제가 제대로 이해한건가요?
그리고 제가 이해한게 맞다면 바인딩 하지 않은 변수에 대해 어사인을 할 수 있거나
이전에 env에 정의된 변수에 의도치 않게 덮어쓰는 등등
여러 문제가 발생할 것 같은데 이것에 대해서는 어떻게 처리해야 하나요? |
|
위로 |
|
 |
신기정
가입: 2009년 9월 15일 올린 글: 83
|
올려짐: 2010년10월5일 18:27 주제: 흐므므 |
|
|
인용: | 저는 CALLV의 semantic을 프로시져에 안에서 사용되는 흔히 말하는 지역 변수들이 프로시져콜 이후에도 해지되지 않고 메모리에 남는다는 뜻으로 이해했습니다.
(CALLR 도 비슷하게 이해했습니다.)
제가 제대로 이해한건가요? |
-> 강의 교재를 읽고 제가 이해한 것에 따르면 프로그래밍 언어의 semantic은 무한한 메모리의 머신을 가정하기 때문에 메모리 해제와 관련된 사항은 따로 명시하지 않는다고 합니다.
인용: | 그리고 제가 이해한게 맞다면 바인딩 하지 않은 변수에 대해 어사인을 할 수 있거나
이전에 env에 정의된 변수에 의도치 않게 덮어쓰는 등등
여러 문제가 발생할 것 같은데 이것에 대해서는 어떻게 처리해야 하나요? |
-> CALLV, CALLR semantic을 충실히 따를 경우 이런 문제는 발생하지 않는 것같습니다. 메모리의 경우는 연산이 끝나면 반환을 하므로 덮어쓰면 안되지만 환경의 경우는 덮어쓰더라도 반환을 하지 않기때문에 덮어쓰임을 당한 변수를 접근하는 시점의 환경에는 영향을 미치지 않습니다. |
|
위로 |
|
 |
심우철
가입: 2009년 10월 4일 올린 글: 23
|
올려짐: 2010년10월5일 21:42 주제: |
|
|
아아 이해했습니다. 제가 생각을 덜했네요.
알려주셔서 고맙습니다 ^^ |
|
위로 |
|
 |
|