이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
최원태
가입: 2006년 9월 16일 올린 글: 369
|
올려짐: 2006년11월26일 12:39 주제: M 언어의 malloc에 대해서 질문이 있습니다. |
|
|
수업시간에 배운 M에서는 loc이 주소값 이외에도 type 값을 가지고 있다고 배웠는데, 과제로 주어진 M에서는 type을 가리지 않는 것 같네요.
malloc이 exp 하나를 인자로 받고 있는데 M의 실행상에서는 아무런 역할도 하지 못하는군요. 이번 과제에서는 malloc으로 할당받은 메모리에 어떤 값이 흘러들어가는지 체크할 필요는 없나요 |
|
위로 |
|
|
이광근
가입: 2005년 8월 29일 올린 글: 68
|
올려짐: 2006년11월27일 8:58 주제: |
|
|
우리언어에서 타입은 실행중에 보관되고 계산되는 데이타가 아닙니다.
실행전에 타입 검증에서 사용되는 개념일 뿐입니다.
타입과 데이타가 완전히 별개입니다.
(타입이 프로그램 실행중에 계산되고 보관되고 함수에 인자로 전달되는
언어도 있습니다. 이러한 언어의 한 모델로 System F라는 게 있습니다.)
그건 그렇고.
실행중에 메모리는
다른 타입의 값을
보관하게 되도
문제는 없겠지요
메모리가 보관하는
현재 값의 타입에 맞는
연산만 사용된다면.
하지만, 이렇게
시간의 흐름에 따른
타입의 변화를
실행전에 미리하는
타입 검증이
정확히 따라가기는...
그래서
단순 타입 시스템은
단순하게 갑니다.
한 가지로 정해진 타입의 값만
메모리에 저장하는
프로그램만 받아들이기로.
제대로 도는
아래와 같은 프로그램이
거부될 수 있겠지요.
let
val x = malloc 1
in
write (!x+1); x := true; write (!x and true)
마음에 들지 않지요? 도전거리입니다. |
|
위로 |
|
|
|