게시판 인덱스

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

숙제 8 공지 및 스펙 보충 (12/14 업데이트)

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



가입: 2012년 9월 10일
올린 글: 211

올리기올려짐: 2015년12월6일 1:08    주제: 숙제 8 공지 및 스펙 보충 (12/14 업데이트) 인용과 함께 답변

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

숙제 8이 올라왔음을 알려드립니다.

내용 : http://ropas.snu.ac.kr/~kwang/4190.310/15/hw8.pdf
제출 : http://ropas.snu.ac.kr/~ta/4190.310/15/submit/index.pl
기한 : 프로그래밍 - 12/15 (화) 밤 12시, 보고서 - 12/16 (수) 오전 10시

* 과제 관련 주의 사항
과제를 하고 제출하기에 앞서 꼭 https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4922 글의 주의사항을 확인해 주세요.

* 숙제 스펙 보충사항
(질문은 이 글에 답글로 달지 마시고, 별도의 글로 질문해 주시기 바랍니다)

------------

Exercise 1 "저지방 고단백 M"

- 뼈대코드 : http://ropas.snu.ac.kr/~ta/4190.310/15/document/Type_skel.zip
- M 언어의 스펙 문서 : http://ropas.snu.ac.kr/~kwang/4190.310/14/M.pdf
- 뼈대코드의 poly_checker.ml 파일의 check 함수를 완성하여 제출합니다. check 함수는 입력으로 들어온 프로그램의 타입을 유추하여, m.ml 파일에 정의된 M.typ 타입으로 리턴해야 합니다.
타입 추론에 실패할 경우, m.ml 파일에 정의된 M.TypeError 예외를 발생시켜 주세요. (예외의 인자로 쓸 문자열은 자유롭게 정하시면 됩니다.)
- 뼈대코드에 몇몇 타입 정의와 함수를 제공합니다. 입맛에 따라 자유롭게 수정하여 활용하시기 바랍니다.
- M 언어의 스펙 문서에 나와 있듯이, 입력으로는 "non-function type expression"만 들어옵니다.
- 프로그램을 실행해 보고 결과를 관찰하여 답을 내놓는다거나 하는 방법은 금지입니다.

12/8 19:00 업데이트 : 뼈대코드가 보강되었습니다.
- 뼈대에서 조금 더 많은 함수를 제공해 드립니다. 전반적으로 수강생 여러분이 숙제를 잘 따라오시기에 뼈대 코드를 조금만 제공하려 했습니다만, 뼈대를 조금 더 드려도 좋을 것 같아서 보강하였습니다.
- 타입틀(type scheme)에 치환(substitution)을 적용하는 함수에 오류가 있어 이를 수정하였습니다.
- 19:00에 union_ftv 함수의 오류를 수정한 뼈대코드로 업데이트하였습니다. (관련글 : https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=5203)

12/14 업데이트
M 문서의 static semantics를 보시면 loc의 내용물 타입이 같아야만 비교가 가능한 것으로 되어 있습니다. (즉 int loc 과 bool loc의 비교는 타입 에러가 나도록) 이는 오타가 아니라 문제 의도가 맞습니다.
Dynamic semantics에 따르면 정상적으로 실행되지만 타입 체킹에 실패하므로 타입 체커가 불완전(incomplete)해지기는 하지만, 안전성(soundness)은 해치지 않으므로 괜찮습니다.
관련 질문 : https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=5208

프로그램의 최종 타입이, m.ml 파일에 선언된 typ 타입으로 표현할 수 없는 경우는 입력으로 테스트하지 않을 것입니다. typ 타입에는 함수 타입을 표현하는 constructor가 없으므로, 다음과 같은 프로그램은 입력으로 넣지 않겠습니다.

코드:
let val f = fn x => x + 1 in
  (1, f)
end


참고로, typ 타입에서 함수를 표현하는 constructor를 드리지 않은 것은, "let val f = fn x => writx x; x" 처럼 표현하기 애매한 경우가 발생하기 때문입니다.

------------

Exercise 2 "람다 예보"

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

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


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