게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

3-1 메모리 allocation 구현 코드 중 이상한 부분

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2006)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년10월12일 11:08    주제: 3-1 메모리 allocation 구현 코드 중 이상한 부분 인용과 함께 답변

나눠주신 소스에 이미 구현된 코드 중 이해가 안 되는 부분이 있습니다.

코드:
fun allocate s (base, mem) =
        let
          fun range f t = if f < t then f :: (range (f + 1) t) else []

          val base' = Loc.Base.succ base
          val l = Loc.loc_of_base base'
        in
          (l, (base', List.fold_left
                        (fn m o => Map.add (Loc.addi l o) None m)
                        mem
                        (range 0 s)))
        end


이 코드에서
코드:
val l = Loc.loc_of_base base'

이 부분은
코드:
val l = Loc.loc_of_base base


이렇게 되어야 하는 게 아닌가요? initialize 되지 않은 fresh한 location을 반환해야하니까요. base'은 allocate되지 않은 가장 작은 location 아닙니까?
위로
사용자 정보 보기 비밀 메시지 보내기
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년10월12일 11:22    주제: 인용과 함께 답변

음..생각해보니 어떻게 해도 결과적으론 차이가 없군요. 해석 상의 차이가 있을 뿐이네요.

코드:
val l = Loc.loc_of_base base'


1. 이런 식으로 구현한 경우에는 단지 메모리의 정의가 (할당된 것 중 가장 큰 로케이션의 베이스, 바인딩 테이블)이 되는 것이군요.


2. 처음에 제가 주장한 식으로 구현을 하면 메모리가 (할당되지 않은 것 중 가장 작은 로케이션의 베이스, 바인딩 테이블)이 되는 것이고요.

그런데 숙제 2의 구현은 2.와 유사하게 되어있었던 것 같습니다. 그래서 좀 헷갈렸네요.

코드:
fun allocate (n, m) = (n, (n + 1, Map.add n None m))


제가 이해한 것이 맞나요?
위로
사용자 정보 보기 비밀 메시지 보내기
박대준



가입: 2005년 10월 7일
올린 글: 245

올리기올려짐: 2006년10월13일 18:32    주제: 인용과 함께 답변

일단 내부 구현에 대해서 살펴보실 필요는 없지만, 크게 문제될 것이 없는 것 같습니다. 적절히 이해하시고 있는 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2006) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay