게시판 인덱스

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

7-4 타입 검사 관련 질문입니다.

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



가입: 2024년 3월 20일
올린 글: 4

올리기올려짐: 2024년5월30일 4:53    주제: 7-4 타입 검사 관련 질문입니다. 인용과 함께 답변

안녕하세요. 과제를 해결하던 중 함수의 타입 추론과 관련해서 의문점이 생겨 질문드립니다.

1. unification 알고리즘에서 타입 변수 a와 다른 타입 t가 주어졌을 때 t 속에 a 가 없을 때만 substitution을 반환하는 것으로 알고 있습니다.
그렇다면
코드:

let val f = fn x => x in (f f) 1

와 같은 경우에는 오류를 뱉는 것이 맞는 건가요?

2. 동일하게 함수 타입 검사와 관련한 질문입니다. simple type system 이므로 polymorphic type 은 추론하지 못하는 것으로 알고 있습니다.
그렇다면
코드:

let val f = fn x => x in f 1 ; f true

의 경우에도 오류를 뱉는 것이 맞나요, 아니면 그냥 bool로 추론하는 것이 맞는 건가요?

항상 수고해주셔서 감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이재호
Site Admin


가입: 2022년 3월 6일
올린 글: 209

올리기올려짐: 2024년5월30일 14:03    주제: 인용과 함께 답변

안녕하세요 davidbaby님,
우선 실명을 알려주시면 아이디를 변경해드리겠습니다.

오류를 뱉는 것은 알고리즘이 할 일은 맞지만, 언제 정확히 오류인지를 나타내는 것은 바로 타입 시스템의 타입 결정 규칙들입니다.
Unification 알고리즘은 이러한 타입 규칙을 충실히 따른 "구현"입니다.
따라서 언제 오류를 뱉어야하는지 판단하는 것은 M 문서의 규칙을 보셔야 하는 것이지, 알고리즘의 구현 방식을 보고 판단하시는 것이 아닙니다. (선후 관계가 뒤바뀐 것입니다.)

보여주신 첫 예시 코드의 경우 문서의 [Let], [App], [Num], [Fun], 그리고 문서에는 없지만 (가칭 [Var]) Γ ⊢ x : Γ(x) 규칙을 조합하여 판단을 내리시면 됩니다.
두 번째 예시 코드의 경우 [Let], [App], [Num], [Fun], [Var], [Bool], [Seq] (빈 규칙으로 완성하셔야 합니다)을 조합하여 판단하셔야 합니다.

이러한 규칙을 통해 무엇이 문제인지를 파악하는 것이 더 직관적일 것입니다.
그리고 이 규칙들을 잘 따르도록 (안전하고sound & 빠짐없이complete) 만들고 구현한 것이 수업에서 설명한 세 가지 타입 추론/확인 알고리즘입니다.
이 사실을 믿고 (혹은 증명을 하시고, 아마 교수님께서 출제하실 챌린지에 제출하시면 됩니다) 구현하시면 됩니다.

감사합니다.

조교 드림


TA 이재호
e-mail: jhlee@ropas.snu.ac.kr
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이영훈24



가입: 2024년 3월 20일
올린 글: 4

올리기올려짐: 2024년5월30일 15:04    주제: 인용과 함께 답변

답변 감사합니다.
저는 이영훈입니다!
알려주신 바에 따라 잘 해결해보겠습니다 ◡̈
위로
사용자 정보 보기 비밀 메시지 보내기
이재호
Site Admin


가입: 2022년 3월 6일
올린 글: 209

올리기올려짐: 2024년5월30일 16:05    주제: 인용과 함께 답변

넵 아이디 이영훈24로 변경해드렸습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이영훈24



가입: 2024년 3월 20일
올린 글: 4

올리기올려짐: 2024년5월30일 17:01    주제: 인용과 함께 답변

넵 감사합니다!
강의노트를 보니 이 부분에 대한 설명이 있었군요 Smile
감사합니다~
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2024) 시간대: GMT + 9 시간(한국)
페이지 11

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


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