안형찬 손님
|
올려짐: 2005년11월7일 17:52 주제: sm5 semantics에 관한 질문입니다. |
|
|
2페이지를 보면
r ∈ Record = (Var * Loc) list
v ∈ Value
로 되어 있고, 3페이지에는
unbox의 semantics가
([w1,...,wz]::S, M, E, unbox x::C, K)
=>(vk::S, M, E, C, K) where wk = (x,vk) and 1<=k<=z
와 같이 되어 있습니다.
2페이지에서 r이 정의된 뒤에 한번도 사용되지는 않았지만 record를 굳이 정의한 의도로 볼때 혹시 3페이지의 unbox의 semantics는
([w1,...,wz]::S, M, E, unbox x::C, K)
=>(lk::S, M, E, C, K) where wk = (x,lk) and 1<=k<=z
와 같이 정의되어야(v대신 l) 하는 것은 혹시나 아닌지 궁금합니다. 그렇지 않다면 unbox 명령 실행시 stack의 top에 올라와 있는 '리스트'는 record도 아닌 정체 불명의 물건이 될 것 같아서요
*********
물론, 반대로 record의 정의가
r ∈ Record = (Var * Value) list
와 같이 되어야 하는 것이 아닐까도 생각해 보았습니다만, 그래서는 레코드의 필드값 하나를 바꾸기 위해 unbox-box하는 것이 사실상 불가능함(필드명을 일반적으로 알 수 없으므로)을 생각해 보아서는 앞에 서술한 것이 아닐까 생각됩니다만...
*********
확인 부탁드리겠습니다. 감사합니다. |
|