게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

숙제 4에 대해서 알려드립니다. - 기계 상태에 관한 내용이 추가되었습니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년3월28일 10:42    주제: 숙제 4에 대해서 알려드립니다. - 기계 상태에 관한 내용이 추가되었습니다. 인용과 함께 답변

숙제 4가 공지되었습니다.
http://ropas.snu.ac.kr/~kwang/4541.664A/09/hw4.pdf

기한은 4월 8일 수요일 자정까지 입니다.

--------------------------------------------------------------

숙제를 위한 파서를 조교가 작성하고 있습니다.

완료되면 게시판을 통해서 공개하도록 하겠습니다.
_________________
- soon@ropas


공순호 가 2009년4월9일 13:11에 수정함, 총 4 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년3월31일 15:45    주제: 뼈대가 올라왔습니다. 인용과 함께 답변

문제 4-1의 파서를 포함한 뼈대를 공개합니다.

+ http://ropas.snu.ac.kr/~ta/4541.664A/09/4-1.linux.zip
+ http://ropas.snu.ac.kr/~ta/4541.664A/09/4-1.windows.zip

* 컴파일
linux에는 make 파일이, windows에는 batch 파일이 각각 들어있습니다.
이것을 이용하시면 됩니다.

* 실행방법
linux에서는 ./main.native < test.k
windows에서는 main.exe < test.k

라고 하시면 예제 코드인 test.k를 파싱하여서 출력한 것을 확인할 수
있습니다. pretty print는 선물로 간단하게 짜서 넣어두었습니다. 필요에
따라 수정하셔도 좋습니다.

* 여러분의 몫
+ 여러분이 하실 일은 k.ml에 있는 3개의 함수를 완성하시는 것입니다.

+ 문제 pdf에 명시되어 있지 않은 traces, states, pointstates의 타입이
뼈대에 정의되어 있습니다. 이 타입은 기계 상태가 메모리임을
가정
하고 있습니다. 여러분은 메모리를 포함하는 기계 상태를
정의하시고 해당하는 3개의 함수를 구현하시면 됩니다.

+ main.ml을 고치시면 test를 하실 수 있습니다. 현재는 파싱해서 출력하는
일을 수행하고 있습니다.

* 제출하실 것
완성된 k.ml만을 제출하시기 바랍니다.

* Memory 사용법
Memory module의 정의가 memory.ml안에 들어있습니다.

+ Memory.bind x v m : 메모리 m을 받아서 x라는 변수에 v라는 값이 추가된
새로운 메모리를 돌려줍니다.

+ Memory.lookup x m : 메모리 m을 받아서 변수 x에 있는 값을 돌려줍니다.
값이 없는 경우에는 exception이 발생됩니다.

+ Memory.equal m1 m2 : 메모리 m1과 메모리 m2가 같은 메모리인지를
돌려줍니다.

+ Memory.string_of_memory m : 메모리 m의 현재 상태를 string으로
변환해서 돌려줍니다.

* MemorySet의 이용방법
OCaml에 정의된 set library의 이용방법과 동일합니다.

다음을 참조하세요.

http://caml.inria.fr/pub/docs/manual-ocaml/libref/Set.Make.html
_________________
- soon@ropas


공순호 가 2009년4월5일 8:57에 수정함, 총 3 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년3월31일 16:15    주제: 인용과 함께 답변

* K 언어로 프로그래밍을 하실 때에 ( )을 이용하실 수 있습니다.
* cmd와 exp에 대해서 동일하게 ( )를 이용하실 수 있습니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년3월31일 20:23    주제: 인용과 함께 답변

* Memory module의 string_of_memory 함수의 구현에 문제가 있어서 수정하였습니다. 새롭게 다운받으시거나, memory.ml 파일의 해당 부분을

코드:

let string_of_memory m =
   if
      M.is_empty m then "Empty"
   else
      M.fold (fun k v str-> str^k^" : "^(Value.string_of_value v)^"\n") m ""


과 같이 수정하시기 바랍니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년4월5일 9:05    주제: 인용과 함께 답변

* 기계 상태는 메모리를 포함하는 것으로 정의하고 숙제하셔도
무방합니다. 다음 글타래에 달린 글들을 읽어보시기 바랍니다.

https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=1605
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
임경영



가입: 2009년 4월 5일
올린 글: 27

올리기올려짐: 2009년4월7일 2:29    주제: 조교님께 질문! 인용과 함께 답변

memory 사용을 해보려고 계속 삽질 중인데 생각보다 어렵네요;;

바로바로 코딩할때는 type이 표시되니까 어렵지 않게 끼워맞출수 있었는데
한꺼번에 코딩해서 결과만 나오는 방식으로 코딩하니
memory를 어떻게 사용하는지도 모르겠네요;

k.ml에서
let test1 = Memory.bind "x" (Value.INT 3) Memory.empty
를 수행해서 x에 3을 넣는 memory를 보고 싶은데

이런식으로 사용하는게 맞는지 궁금합니다.
메모리를 string으로 바꿔서 보면 x:INT(3) 으로 나오는데 이게 맞는지도 궁금하구요 ^^;;
위로
사용자 정보 보기 비밀 메시지 보내기
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년4월7일 10:53    주제: 인용과 함께 답변

임경영 씀:
바로바로 코딩할때는 type이 표시되니까 어렵지 않게 끼워맞출수 있었는데
한꺼번에 코딩해서 결과만 나오는 방식으로 코딩하니
memory를 어떻게 사용하는지도 모르겠네요;


compile 하실 때에 -i 옵션을 주면 정의된 모든 이름들과 그것들의 type을 출력하도록 할 수 있습니다. 따라서 다음과 같이 하면 더 많은 정보를 볼 수 있겠네요.
코드:

ocamlc -c -i k.ml


단, k.cmo를 만들기 위해서는 {value, memory, memoryset} 들이 이미 compile되어 있어야 합니다.

임경영 씀:

ml에서
let test1 = Memory.bind "x" (Value.INT 3) Memory.empty
를 수행해서 x에 3을 넣는 memory를 보고 싶은데

이런식으로 사용하는게 맞는지 궁금합니다.


맞습니다.

임경영 씀:

메모리를 string으로 바꿔서 보면 x:INT(3) 으로 나오는데 이게 맞는지도 궁금하구요 ^^;;


맞습니다. Smile
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
박창규



가입: 2009년 3월 17일
올린 글: 4

올리기올려짐: 2009년4월8일 19:16    주제: 인용과 함께 답변

테스트해보다가 깜짝놀라 글 남겨요^^;;;

기본적으로 제공되는 test.k가 다음과 같은데,,,

인용:
if x x:= 1; x:=2 y := x


제 경우 x는 ASSIGN이 되어있지 않은 변수이므로 Memory상에 없기 때문에 Not_found 예외를 발생시키는데요,,

기본적으로 제공되는 예제가 위와 같다는 것은 ASSIGN되어있지 않은 변수 역시 사용 가능해야 한다는 것을 뜻하는것인가요?
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
고윤석



가입: 2008년 9월 26일
올린 글: 11

올리기올려짐: 2009년4월8일 20:32    주제: 주어진 테스트코드는.. 인용과 함께 답변

아마 의미없는 코드가 아닐까 합니다.

실제로 binding되지 않은 변수를 사용하였으므로 exception처리하시는게
옳을줄로 아뢰옵니다. Smile
_________________
ysko
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년4월8일 23:03    주제: 인용과 함께 답변

박창규 씀:
제 경우 x는 ASSIGN이 되어있지 않은 변수이므로 Memory상에 없기 때문에 Not_found 예외를 발생시키는데요,,

기본적으로 제공되는 예제가 위와 같다는 것은 ASSIGN되어있지 않은 변수 역시 사용 가능해야 한다는 것을 뜻하는것인가요?


인용하신 프로그램은 의미 없는 프로그램입니다.

Not_found 예외를 발생시킨다고 하셨는데,

숙제의 결과 함수들이 발생하는 예외는 k.ml에 정의된 Error 예외만을 사용하시기 바랍니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay