게시판 인덱스

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

BIND 정의와 뼈대코드 구현 차이

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



가입: 2010년 9월 8일
올린 글: 21

올리기올려짐: 2015년11월10일 23:11    주제: BIND 정의와 뼈대코드 구현 차이 인용과 함께 답변

안녕하세요, 수강생 최영진입니다.

(w :: S, M, E, bind x :: C, K)
⇒ (S, M, (x, w) :: E, C, K)

에서 w는 Value + Proc + (Var × Loc) + (Var × Proc) 이고
Value = Integer + Bool + {·} + Record + Loc 입니다.

그런데 Value를 bind하려다가 계속 에러가 나서 뼈대코드 sm5.ml을 살펴보니 연산이 Val(Loc)과 Proc밖에 받지 않는 것 같습니다.

코드:

......
 242     | (V (L l) :: s, m, e, BIND x :: c, k) -> (s, m, (x, Loc l) :: e, c, k)
 243     | (P p :: s, m, e, BIND x :: c, k) -> (s, m, (x, Proc p) :: e, c, k)
 244     | (s, m, (x, ev) :: e, UNBIND :: c, k) -> (M (x, ev) :: s, m, e, c, k)
......


대충 생각하기로는 GC문제를 위해 함수가 아니면 무조건 malloc 하라는 것 같기도 한데,
스펙이 맞지 않는 것 아닌지요?
위로
사용자 정보 보기 비밀 메시지 보내기
최재승



가입: 2012년 9월 10일
올린 글: 211

올리기올려짐: 2015년11월11일 0:47    주제: 인용과 함께 답변

안녕하세요,

hw5.pdf 문서에 따르면, Environment 부품의 정의가
인용:
Environment = (Var × (Loc + Proc)) list

로 되어 있기 때문에 Bind는 Loc과 Proc만 환경에 묶을 수 있는 것이 맞습니다.

문서에 있는 다음의 실행 규칙이 혼란을 드리는 것 같은데,
인용:

(w :: S, M, E, bind x :: C, K)
⇒ (S, M, (x, w) :: E, C, K)

여기서 w는 임의의 Svalue가 아닌, (x,w) :: E로 Environment에 묶을 수 있는 Loc이나 Proc 중 하나라고 이해하시기 바랍니다

(같은 질문 : https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=5138)

조교 드림
위로
사용자 정보 보기 비밀 메시지 보내기
최영진09



가입: 2010년 9월 8일
올린 글: 21

올리기올려짐: 2015년11월11일 0:53    주제: 인용과 함께 답변

아, 넵. 감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2015) 시간대: GMT + 9 시간(한국)
페이지 11

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


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