게시판 인덱스

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

[숙제 8] 구현된 simple_type_checker.ml의 안전하지 않은 작동

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



가입: 2026년 3월 4일
올린 글: 14
위치: 대한민국 서울

올리기올려짐: 2026년6월5일 18:33    주제: [숙제 8] 구현된 simple_type_checker.ml의 안전하지 않은 작동 인용과 함께 답변

안녕하세요,

뼈대 코드로 제공된 simple_type_checker에 오류가 있어 문의 드립니다.

1. 안전하지 않습니다.
코드:
let val x = (1, 1) in
    x = x
end

와 같은 경우 pair끼리는 비교할 수 없으므로 TypeError를 내야 하나, 여기서는 bool을 반환합니다.

2. 완전하지 않습니다.
같은 이름의 타입 변수를 unify하는 부분에 오류가 있어,
코드:
let val f = fn x => (x = x) in
    f 1
end

의 경우에는 bool 타입으로 추론되어야 하지만,
type error: Type variable 'a5 occurs in 'a5/eq
와 같이 에러를 냅니다.

코드:
let rec f = fn x =>
    if false then f x else x
in
f 3
end

도 int가 되지만 type error: Type variable 'a4 occurs in 'a4 에러를 냅니다.

3. 한편,
코드:
(1, 1) = 2

에서는 TypeError 대신 "Indeterminate"라는 다른 예외를 반환하는 문제도 있습니다.
_________________
감사합니다.

이상규 올림
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
안중원
Site Admin


가입: 2023년 3월 13일
올린 글: 97

올리기올려짐: 2026년6월6일 11:00    주제: 인용과 함께 답변

안녕하세요, 프로그래밍 언어 조교 안중원입니다.

우선 오류에 대해 제보해주신 점 감사합니다.
다만 simple_type_checker.ml에 오류가 있더라도 숙제 수행에는 문제가 없기에, 뼈대 코드 수정은 없을 예정입니다.

simple_type_checker를 제공해드린 것은 숙제 7에서 어려움을 느끼셨더라도 숙제 8을 원활하게 수행할 수 있는 출발선을 마련해드리기 위함입니다.
해당 코드를 그대로 사용하기보다는, 숙제 8의 코드 구조나 대략적인 알고리즘을 설계할 때에 참고자료로 활용하시기 바랍니다.

감사합니다.

_________________
TA 안중원
e-mail: jwahn@ropas.snu.ac.kr
위로
사용자 정보 보기 비밀 메시지 보내기
안중원
Site Admin


가입: 2023년 3월 13일
올린 글: 97

올리기올려짐: 2026년6월7일 15:00    주제: 인용과 함께 답변

안녕하세요,

해당 오류에 대해서는 수정하여 뼈대코드를 다시 올리기로 결정하였습니다.
발견된 오류들에 대해서는 안전한 타입검사가 이루어지도록 시정하되, 기존에 업로드한 뼈대코드를 그대로 쓰더라도 숙제 수행 자체에는 영향이 없도록 신경쓸 것입니다.
혼란을 드린 점 사과드립니다.

감사합니다.
_________________
TA 안중원
e-mail: jwahn@ropas.snu.ac.kr
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2026) 시간대: GMT + 9 시간(한국)
페이지 11

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


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