게시판 인덱스

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

문제 3-1질문입니다.

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



가입: 2018년 9월 18일
올린 글: 12

올리기올려짐: 2018년10월16일 22:54    주제: 문제 3-1질문입니다. 인용과 함께 답변

안녕하세요 조교님 매번 친절한 답변 감사합니다.
이번에 3-1번 뼈대 코드를 보면서 이해가 안가는 부분이 있습니다.
인용:
type memory = value Mem.t
type env = (id, env_entry) Env.t

이부분인데, 여기에 보면 memory라는 type이 value 타입과 Mem.t type이 합쳐진것으로 보여 집니다. 근데 이런 문법이 가능한가요? Mem.t type은 Location(int) type인데 이것을 어떻게 받아들여야할지 잘 모르겠습니다. type env도 마찬가지입니다.

/*추가*/
K-Language semantics에서 While, RECASSIGN, RECT에는 메모리에 '가 아닌 숫자가 붙어있습니다. 이렇게 숫자를 붙인 이유가 있나요???

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
로파스
Site Admin


가입: 2012년 9월 9일
올린 글: 280

올리기올려짐: 2018년10월17일 14:05    주제: 인용과 함께 답변

안녕하세요.

Mem 모듈 구현을 보시면 아래와 같이 Mem.t 를 정의하고있습니다.

코드:

 type 'a t = M of Loc.t * 'a content list


이것은 Mem.t라는 타입을 polymorphic하게 정의한다는 뜻으로,

Mem.t 자체가 하나의 타입을 이룬다기보다는, 타입을 받아서 타입을 내놓는 함수라고 이해하시면 편합니다.

즉 'a라는 임의의 타입을 받아서 M of Loc.t * 'a content list 라는 타입을 내놓는 함수로 작동하는 것이죠.

memory라는 타입을 value Mem.t로 정의했으니, 결국 memory는 M of Loc.t * value content list 라는 타입이 되는 것입니다.
(물론 역할이 그렇다는 것이지 실제로 타입의 함수로 정의되거나 하는 것은 아닙니다. 표기도 함수에 인자를 넘겨줄때와는 순서가 다르고요.)

실제로 숙제 구현하실때는 이부분을 이해하실 필요는 없고, Mem과 Env모듈쪽에 주석으로 함수들 용법을 적어두었으니 그것만 참고하셔도 숙제 수행에는 문제가 없을 것입니다.

메모리 첨자에 '를 붙이는 것이나 숫자를 붙이는것은 말그대로 표기상의 차이일뿐 의미의 차이는 없습니다.

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

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


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