게시판 인덱스

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

숙제 6 변경사항 및 스펙 정리 (11/16 23:00 기준)

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년11월4일 18:32    주제: 숙제 6 변경사항 및 스펙 정리 (11/16 23:00 기준) 인용과 함께 답변

Exercise 1. "SM5 Rozetta"

- rozetta.ml 을 제출합니다.

- 입력으로 들어오는 SM5 프로그램에서 사용하는 변수명은, 특수문자를 포함하지 않는 것으로 하겠습니다. 번역하는 과정에서 변수 이름이 겹치지 않는 것을 보장하기 위해 제공해드리는 스펙입니다.
참고글 : https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=3498

- loc 값과 record 값이 어떻게 생겼는지 알 수 없기 때문에, 입력으로 들어온 Sm5 프로그램은 loc이나 record 상수를 push하려 시도하지 않는다고 가정하겠습니다.
관련 참고글 : https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=2997

예를 들어,
코드:
  Sm5.PUSH(Sm5.Val(Sm5.L location))
  Sm5.PUSH(Sm5.Val(Sm5.R record))
 

이런 명령은 입력으로 들어오지 않습니다. 이러한 경우에 대해서는 자유롭게 예외 처리해 주시기 바랍니다. 채점시 이런 케이스는 테스트하지 않을 것입니다.

물론 이는 push v::C 의 경우에만 해당됩니다. "push x::C" 로 이미 환경에 저장되어있던 무언가를 꺼내오는 것에는 해당되지 않습니다.

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

Exercise 2. "Vanilla Lambda Encoding"

- encode.ml을 제출합니다.

- 숙제 문서의 type mexp 정의에 오타가 있습니다. 우선 mexp로 써야 하는 부분이 exp로 쓰여져 있으며, App constructor가 빠져 있습니다. 뼈대 코드에는 올바르게 정의되어 있으므로 그쪽을 참조해 주세요.

- and (x, y) : 0이 false, 나머지 true로 간주하고 계산하며 true이면 1 false이면 0을 냅니다. x가 먼저 0으로 계산되면 y는 계산하면 안됩니다.

- natural number : 0 이상의 정수로 정의하겠습니다.

- Num of int, Sub of exp * exp 를 계산한 결과가 음수가 나오는 테스트케이스는 사용하지 않도록 하겠습니다.

- 숙제 문서에도 설명되어 있듯이, 숙제 5-3에서 등장한 reduce 함수를 사용하여 여러분이 작성한 encode 함수가 올바른지 확인할 것입니다. 이 reduce 함수는 조교팀이 작성한 모범 답안을 사용하여 채점하겠습니다.

- 과제의 의도는, M_0 언어의 여러 요소를 람다 칼큘러스로 표현해 보는 것이며, 이 의도를 준수해 주시기 바랍니다. M_0 프로그램의 결과 정수값을 계산하고 이를 거꾸로 lexp로 번역하는 방식으로 encode 함수를 작성하시면 0점 처리될 수 있습니다.

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

Exercise 3. "M Interpreter"

- m_vanilla.ml 을 제출합니다.

- Equal의 semantic에 대한 상세한 정의는 M 언어 스펙 문서 http://ropas.snu.ac.kr/~kwang/4190.310/14/M.pdf 를 따라가는 것으로 하겠습니다.
(1) 두 값이 같은 타입일 경우 값이 같으면 true, 다르면 false, 타입이 다르면 TypeError 예외를 발생시키시면 됩니다. 예외의 인자로 사용될 문자열은 자유롭게 정하시면 됩니다.
(2) 단, 두 값이 모두 Pair/Closure 타입일 경우 어떻게 처리하셔도 무방합니다. (True, False, 예외 처리 중 자유롭게 선택). Pair나 Closure 간의 비교는 채점시 테스트케이스로 사용하지 않겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

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


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