게시판 인덱스

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

숙제 8 관련 질문

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2021)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김선준



가입: 2021년 3월 8일
올린 글: 9

올리기올려짐: 2021년6월9일 19:31    주제: 숙제 8 관련 질문 인용과 함께 답변

안녕하세요.

let-polymorphic type system 관련 수업 슬라이드에서는
input으로 expression을 받고 그 expression을 실행하는 도중에 memory를 할당할 여부를
conservative하게 판단해서 bool을 output으로 내보내는 "expansive"라는 함수를 정의하여
let x = E in E' 의 expression에서 (expansive E) 가 true인 경우 generalize를 하지 않도록 하는 방식을 소개하고 있습니다.

한편 이와 같이 구현할 경우 safe하긴 하지만, public test case로 주어진 다음과 같은 경우에서도 type error를 내보내는 incomplete한 모습을 보이게 됩니다. (test23.m)
인용:

let rec f = fn x => malloc (fn x => x) in (* This does not invoke malloc *)
write ((!(f 10)) true); write ((!(f true)) "hello")
end


숙제 8에서는 어느 정도로 완전한 type checker를 구현해야 하는 것인지 궁금합니다. public test case에 대해서 올바른 결과를 내는 정도면 되는 것인가요?
위로
사용자 정보 보기 비밀 메시지 보내기
김선준



가입: 2021년 3월 8일
올린 글: 9

올리기올려짐: 2021년6월9일 22:14    주제: . 인용과 함께 답변

추가로, 다음과 같은 경우에 대해서는 어떤 type checking 결과를 내는 것이 이번 과제에서 요구하는 스펙인가요?

인용:

let val f = malloc (fn x => x) in
f := (fn x => (x, x));
(!f) true
end
위로
사용자 정보 보기 비밀 메시지 보내기
shkim



가입: 2019년 7월 30일
올린 글: 86

올리기올려짐: 2021년6월10일 18:05    주제: 인용과 함께 답변

test23.m의 경우가 E에서 실행중 메모리 주소를 할당받는 경우인지 확인해보시기 바랍니다.
코드 주석으로 달려있듯, 메모리를 할당하는 함수의 선언 그 자체로 메모리 할당이 일어나지는 않습니다.
교재 191p를 참고하시면 도움이 될 것 같습니다.
(추가로 질문해주신 내용 또한 답변이 되었을 것 같습니다)

숙제8의 구현은 수업시간에 배운 let-다형 타입 시스템을 충실히 구현해 주세요.
그러면 제공된 테스트 케이스 및 채점 테스트 케이스 통과에 문제가 없을 것입니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김선준



가입: 2021년 3월 8일
올린 글: 9

올리기올려짐: 2021년6월10일 18:45    주제: . 인용과 함께 답변

답변 감사합니다!
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2021) 시간대: GMT + 9 시간(한국)
페이지 11

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


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