게시판 인덱스

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

5-2 테스트케이스

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2015)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
신동진



가입: 2015년 9월 10일
올린 글: 8

올리기올려짐: 2015년11월11일 11:57    주제: 5-2 테스트케이스 인용과 함께 답변

조교님이 올려주신 테스트케이스에 약간 추가했습니다.
gc_test.ml에 추가해서 실행하면 됩니다.

코드:
let cmds6 =
    let cmds = [] in

    let cmds = append 126 (fun i ->
        let v = Printf.sprintf "x%d" i in [
            MALLOC;
            BIND v;
            PUSH (Val (Z 5));
            PUSH (Id v);
            STORE;
        ]) cmds in

    let cmds = cmds @ [
        MALLOC;
        BIND "TARGET";
        PUSH (Val (Z 1234));
        PUSH (Id "TARGET");
        STORE;
        UNBIND;

        PUSH (Val (Z 10));
        MALLOC;
        STORE;
        (* Trigger GC *)
        PUSH (Val (Z 10));
        MALLOC;
        STORE;
        BOX 1;
        UNBOX "TARGET";
        LOAD;
    ] in

    (* Check if allocated memory location's values are not affected by GC() *)
    let cmds =
      append 126
        (fun i ->
          let v = Printf.sprintf "x%d" i in
            [PUSH (Id v);
            LOAD;
            POP]
        ) (cmds) in

    let cmds = cmds @ [PUT] in
    cmds

let _ = run cmds6 (* 1234 *)

코드:
let cmds7 =
    let cmds = [
        MALLOC;
        BIND "val";
        PUSH (Val (Z 1234));
        PUSH (Id "val");
        STORE;
        UNBIND;
    ] in

    let cmds = append 126 (fun i ->
        let v = Printf.sprintf "x%d" i in [
            BOX 1;
            MALLOC;
            BIND v;
            PUSH (Id v);
            STORE;
            UNBIND;
        ]) cmds in

    let cmds = cmds @ [
        BOX 1;
        MALLOC;
        POP;

        (* Trigger GC *)
        MALLOC;
        POP;
    ] in

    (* Check if allocated memory location's values are not affected by GC() *)
    let cmds =
      append 126
        (fun i ->
          let v = Printf.sprintf "x%d" (125 - i) in
            [UNBOX v;
            LOAD;]
        ) (cmds) in

    let cmds = cmds @ [UNBOX "val"; LOAD; PUT] in
    cmds

let _ = run cmds7 (* 1234 *)
위로
사용자 정보 보기 비밀 메시지 보내기
강동호



가입: 2015년 9월 3일
올린 글: 17

올리기올려짐: 2015년11월11일 14:04    주제: 감사합니다! 인용과 함께 답변

감사합니다! 다 잘나오네요
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2015) 시간대: GMT + 9 시간(한국)
페이지 11

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


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