최준원
가입: 2007년 3월 30일 올린 글: 149
|
올려짐: 2013년10월15일 13:34 주제: 숙제 4 변경사항 및 스펙 정리 (10/25 19:55 기준) |
|
|
Exercise 1. "논술 에세이"
--------------------------------------------------
Exercise 2. "SM5"
- hw4_1.ml 을 제출합니다.
- 뼈대코드에 버그가 있습니다.
sm5.ml 의 143번째 줄
코드: | (M m::s) -> box (m::b) (z-1) s |
부분을
코드: | (M m::s) -> box (m::b) (i-1) s |
로 수정하신 후 사용하시면 됩니다.
수정된 뼈대 코드를 다시 업로드 하겠지만, 꼭 확인하신 후 숙제 진행해 주세요.
- "같은 일을 하는" 은 다음과 같이 정의됩니다.
"같은 일을 한다" = "같은 조건에서 실행했을 때 모든 side-effect 의 결과가 같다"
+ "같은 조건" : K-- 에서의 빈 메모리, 빈 환경 / SM5 에서의 "C 만 가지고 있는 빈 기계상태"
+ "모든 side-effect" : K-- 에서의 read/write, SM5 에서의 get/put
간단한 예를 들면,
K-- 에서 read 로 3을 받아 write 로 4 를 내놓았다면,
SM5 에서도 get 으로 3 을 받아 put 으로 4 를 내놓아야 한다는 것입니다.
그 도중에 일어나는 환경, 메모리의 변화는 "같은 일을 한다" 와 무관합니다.
--------------------------------------------------
Exercise 3. "SM5 Limited"
- sm5.ml 을 제출합니다.
- 버그가 수정된 상태의 코드에서 작업하시고 제출하시면 됩니다.
- Sm5 모듈이 SM5 시그니처를 따르기만 하면, gc를 구현하기 위해서 어떠한 변경을 가해도 괜찮습니다.
- gc 는 문제에서와 같이 8K 의 주소를 모두 사용하여 malloc 할 것이 더 이상 없을 때 동작해야 합니다.
- 주소를 모두 사용한 상태에서 메모리 할당을 시도할 때,
gc 를 실행하였음에도 불구하고 malloc 할 수 없다면 예외를 내야 합니다.
채점의 일관성을 위한 스펙 결정이니 꼭 지켜주세요.
- 크게 아래와 같은 두 경우에 대해서 여러가지 시나리오를 만들어 채점이 이루어질 예정입니다.
1) 8192 개를 유효하게 할당
-> 8193 번째 할당 시도시 정상적으로 예외가 일어나는지.
2) 8192 개를 할당하였으나 GC 가 가능
-> 8193 번째 할당 시도시 정상적으로 할당 되는지. 그리고 유효한 메모리 엔트리의 값이 변하지 않았는지.
--------------------------------------------------
Exercise 4. "탐사 준비"
- 탐험이 불가능할 때는 예외를 내 주시면 됩니다.
- Guide ("x", e) 가 있을 때는 e 안에 반드시 x 가 존재한다고 가정하셔도 됩니다.
-------------------------------------------------- |
|