이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
박성준
가입: 2009년 9월 14일 올린 글: 7
|
올려짐: 2009년10월2일 3:51 주제: 조교님 이번 숙제에서 이해안되는 것이 있어서 여쭈어 봅니다. |
|
|
일단 Loc, Mem, Env 모두 sig로 선언된 모듈에 맞게
완성해야 하는거죠?
그리고 메모리는 링크드 리스트처럼 계속 이어지는 것인가요?
즉
mem ( x, y, mem (.........))) 이런식 인가요?
만약 이런 자료구조형이 아니라면 어떻게 메모리에 여러 값을 집어넣고
찾아오고 하는거죠?
혹시 구현은 마음대로 하면 되는 것인가요?
어렵네요.... |
|
위로 |
|
 |
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년10월2일 11:58 주제: |
|
|
뼈대 보시면 Loc, Mem, Env 모두 정의되어 있습니다.
여러분은 숙제 하시면서 메모리와 환경을 다루실 때 저기에 선언된 함수를 사용하시기만 하면됩니다.
모듈 추상화에 대해서 1번 숙제에서도 잠시 이야기 했지만
현재 뼈대는 추상화가 잘 되어 있어서
모듈 타입에 적혀있는 타입과 주석 설명만 보고 사용하시면 아무 무리 없습니다.
내부 구현이 어떻게 되어있는지 여러분들은 신경쓰시지 않아도 됩니다.
여러분은 run함수만 작성하시면 됩니다. |
|
위로 |
|
 |
손님
|
올려짐: 2009년10월4일 11:14 주제: |
|
|
조교님 그런데 제금 KMMINUS 모듈 안에 type memory, type env가 있는데
이것을 예로 들어서 type memory = Mem 이렇게 하는 것인가요?
모듈이 타입이 될 수 있나요? 흠 .....
자바라면 모듈이 클래스 일 것이고 객체를 생성해서 하든지 할텐데요
갑자기 모듈을 사용해야 하니 어렵네요.... 이런 것은 어디서 알 수 있는건지... |
|
위로 |
|
 |
박성준
가입: 2009년 9월 14일 올린 글: 7
|
올려짐: 2009년10월4일 11:16 주제: |
|
|
바로 위에 박성준 입니다. 깜박하고 로그인 안하고 올렸더니 손님이라고 나오네요
아~! 그리고 뼈대에 module Mem : MEM , module Env : ENV 이런식으로만 되어 있고 모듈의 몸체가 없던데 어디에 모듈이 정의되어있다는 거죠? |
|
위로 |
|
 |
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년10월4일 18:27 주제: |
|
|
여러분은 지난 숙제에서 큐를 구현할 때 이미 모듈을 맛보셨습니다.
hw3.ml파일 윗부분에 보면
module type sig ~ end 와
module struct ~ end가 있지요?
module type sig ~ end는 껍데기 입니다. (자바의 인터페이스와 비슷합니다.)
사용자 정의 타입, 예외, 값의 겉모습을 선언해둡니다.
module struct ~ end는 알맹이 입니다.
사용자 정의 타입, 예외, 값의 실제 구현이 들어갑니다.
지난번 큐 숙제를 떠올려보세요.
교수님께서 껍데기를 주시고 여러분이 알맹이를 채웠습니다.
조교는 여러분이 만든 알맹이를 사용해서 채점했습니다.
어떻게 사용하는지는 2번 숙제 pdf에 적혀있죠.
이렇게 모듈명.값이름으로 사용했습니다.
이번 숙제를 예로 들어보죠.
메모리 모듈을 사용해야합니다.
껍데기는
module type MEM 에 선언되어 있습니다.
알맹이는
module Mem : MEM 에 정의되어 있습니다. ( : MEM 은 MEM 껍데기를 따르겠다는 말입니다.)
숙제하실 때 Mem에 있는 함수를 사용해야합니다.
새 메모리를 할당하려고 보니 alloc 함수가 적당해 보이네요.
알맹이를 살펴보니 뭔가 복잡해 보입니다.
어차피 사용만 하면 되는 우리는 껍데기에 적혀있는 타입만 맞춰주면 됩니다.
module type MEM을 보니 alloc의 타입이 있네요. (* 주석에 설명도 있네요 *)
그러면 사용합시다. 사용할 때는 예를 들어 다음처럼
코드: | let (l, m) = Mem.alloc mem in ... |
잘 이해가 안되시면 월요일에 찾아오세요. |
|
위로 |
|
 |
박성준
가입: 2009년 9월 14일 올린 글: 7
|
올려짐: 2009년10월4일 20:37 주제: |
|
|
이럴수가.......!!!
혹시나 해서 리눅스에서 뼈대 코드를 열어보니
모듈이 정의되어 있군요...
윈도우에서 열면 모듈이 정의되어 있지 않거니와
주석도 없고 뭔가 이상한 코드가 나오거든요...
음~~~! 이 문제로 아무것도 못하고 무려 4일이나 고민하다니.....
감사합니다. 내일 뵐께요 |
|
위로 |
|
 |
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년10월4일 20:54 주제: |
|
|
이럴수가
윈도우에서는 그런가요?
윈도우에서 프로그래밍을 안해서.... 미처 확인을 못했네요.
알아보고 조치하겠습니다. |
|
위로 |
|
 |
김우열
가입: 2009년 10월 4일 올린 글: 13
|
올려짐: 2009년10월4일 20:57 주제: |
|
|
음 전 윈도에서 잘 열렸는데;; |
|
위로 |
|
 |
허기홍
가입: 2007년 9월 27일 올린 글: 231
|
올려짐: 2009년10월4일 21:26 주제: |
|
|
방금 확인해보니
저는 윈도우에서도 잘 보이네요. 이상합니다.
뼈대를 다시 받아서 해보세요. |
|
위로 |
|
 |
박성준
가입: 2009년 9월 14일 올린 글: 7
|
올려짐: 2009년10월4일 21:40 주제: |
|
|
아~! 제 실수네요
왜인지는 모르겠지만
ocaml 인터프리터 설정이 바뀌어서
그걸로 열면 무조건 인터프리트 결과만 나오게 되었네요
예전에는 결과가 아니라 코드 내용이 나왔었는데
암튼 죄송합니다. |
|
위로 |
|
 |
|