게시판 인덱스

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

[숙제 8] let-다형 타입 시스템이 받아들일 식의 범위

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



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

올리기올려짐: 2026년6월5일 23:31    주제: [숙제 8] let-다형 타입 시스템이 받아들일 식의 범위 인용과 함께 답변

안녕하세요,

let-다형 타입 시스템에서 로 일반화하는 값의 범위에 관해 질문 드립니다

숙제 pdf에는 어떤 식에서 일반화해야 하는지가 나와있지 않고,
강의 자료 https://ropas.snu.ac.kr/~kwang/4190.310/26/5-1poly-type.pdf에는 아래와 같이 일부만 나와 있습니다

코드:
expansive(n) = false
expansive(x) = false
expansive(fn x => e) = false
expansive(e1 e2) = true
expansive(let x = e1 in e2 end) = expansive(e1) or expansive(e2)


expansive(malloc e) = true를 해야 하는 것은 명확하나, 아래와 같은 경우
코드:
if e1 then e2 else e3
e op e
read
write e
e := e
!e
e; e
(e, e)
e.1
e.2

에는 이를 함수 호출로 보아 일반화를 제한해야 할지, let x = e1 in e2 end 처럼 문법 요소로 보아 부분 식이 expansive한지 판단해야 할지가 애매합니다.

특히 write e나 e = e를 expansive하지 않다고 보면 수업시간에 소개된 let-다형 타입이 아니라 임기응변 다형(ad-hoc polymorphic) 타입을 만들어야 하는데, 문제에서 임기응변 다형 타입을 구현하기를 요구하는 것인가요?

아니면 M의 실행 의미에서 안전하고 과제 문서에 나온 4가지 코드 예제를 받아들이기만 한다면 expansive를 어떤 형태로 만드는지는 자유롭게 정해도 되는 것일까요?

(6/6 수정) test18.m 예제를 보니 e = e에 대해 다형 타입을 허용해야 하는 것으로 보입니다.
_________________
감사합니다.

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


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

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

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

expansive의 판단은 주어진 식이 메모리를 할당할 가능성이 있냐 없냐의 여부를 기준으로 구현하시면 됩니다.
말씀하신 식들은 각 자식 식의 expansive 여부를 조합하여 부모 식의 expansive 여부를 판단할 수 있습니다.

또, 말씀하신대로 숙제 8에서 요구하는 타입 시스템은 대체로 let-다형 타입을 따르지만 e=e와 write e로 인하여 임기응변 다형 타입 시스템의 성질도 갖게 됩니다.
이 점에 유의하시어 안전한 타입 검사기를 구현해주세요.

감사합니다.
_________________
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