박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년11월21일 5:03 주제: 숙제 6 & 뼈대 공지 |
|
|
숙제 6과 뼈대가 올라왔습니다.
다음 페이지에서 뼈대를 확인하실 수 있습니다.
http://ropas.snu.ac.kr/~ta/4190.310/06/hw6.shtml
이번 숙제는 총 3가지를 구현하는 것입니다.
1. 바닐라 M (1.n)
2. 타입체커 (2.n)
3. 저지방 M (2.n)
이 중, 1번과 3번은 M 인터프리터인데,
여러분이 빈칸만 채우면 되도록, 구현이 거의 완성되어 있습니다.
채점은 제출하신 1.n 과 2.n 을 묶어서 진행할 예정입니다.
특히 타입체커의 안정성에 초점을 맞출 것입니다.
즉, 타입체커를 통과한 프로그램은 실행 중 절대 에러를 내지 않아야 합니다.
또한 숙제 문서에 제공된 M 문법외에, let/in/end 문에서 여러개의 변수를 한꺼번에 선언할 수 있는 설탕구조를 추가하였습니다.
다음과 같은 프로그램이 가능합니다.
코드: | let
val x = 1
val y = 2
in
x+y
end
|
또한, 이번 뼈대의 파서는 파싱 에러시, 줄 번호를 출력합니다.
제공된 뼈대내에 첨부된 README 파일을 읽으시고, 다음 주의사항을 꼭 지키시길 바랍니다.
인용: | M.RuntimeError는 M_Vanilla.run과 M_LowFat.run에서만,
M.TypeError는 M_Checker.check에서만 내야 합니다. |
|
|