강지훈
가입: 2008년 9월 2일 올린 글: 291 위치: 302동 312-2호
|
올려짐: 2013년6월3일 11:00 주제: [HW5] module type을 지우셔도 됩니다. |
|
|
안녕하세요? 강지훈입니다.
analyzer를 구현하기 위해 충분한 기능을 domain.ml이 제공하지 못한다는 지적이 있었습니다.
그럴때 module type을 지우셔도 됩니다.
--
domain.ml seems not capable of supporting full functionalities what analyzer requires.
In this case, you may remove module type restriction as follows:
--
예를 들어,
module FlatDomain (A: SET) : FLAT_DOMAIN
with type atom = A.elt =
struct
type elt = BOT | TOP | ELT of A.elt
type atom = A.elt
let bot = BOT
let top = TOP
let join x y = match (x, y)
with (BOT, _) -> y
| (_, BOT) -> x
| (TOP, _) -> TOP
| (_, TOP) -> TOP
| (x, y) -> if x=y then x else TOP
let leq x y = match (x, y)
with (BOT, _) -> true
| (_, TOP) -> true
| (ELT a, ELT b) -> a=b
| _ -> false
let make a = ELT a
end
=>
module FlatDomain (A: SET) =
struct
type elt = BOT | TOP | ELT of A.elt
type atom = A.elt
let bot = BOT
let top = TOP
let join x y = match (x, y)
with (BOT, _) -> y
| (_, BOT) -> x
| (TOP, _) -> TOP
| (_, TOP) -> TOP
| (x, y) -> if x=y then x else TOP
let leq x y = match (x, y)
with (BOT, _) -> true
| (_, TOP) -> true
| (ELT a, ELT b) -> a=b
| _ -> false
let make a = ELT a
end
와 같이 변환하셔도 좋습니다.
불편을 드려 죄송합니다.[/img] _________________ 강지훈
프로그래밍의 원리 조교
Jeehoon Kang
TA, Principles of Programming |
|