이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월19일 9:10 주제: 프로젝트3 check_cmd 테스트셋 |
|
|
==(12/20)어제인가 두개 올려드렸는데 혹시 못보신분 있을까봐 공지로 올립니다.
==두가지 예를 더 추가했습니다.
==아래같은 어려운 케이스만 검사하겠다는 것이 아니라 챌린지한 케이스 몇개를 보여드린 것입니다.
프로젝트 하시는데 도움이 되도록 몇가지 테스트케이스를 드리겠습니다.
여러분도 테스트케이스를 공유하며 서로 도전을 주었으면 좋겠습니다.
아래는 실재 실행해보면 unbound variable로 인해 에러가 나지 않는 프로그램들입니다.
아래정도를 처리할수 있다면 프로젝트3을 잘 진행한 것입니다.
(쉬운 테스트도 여러개 할것이니 아래를 처리하지 못한다고 좌절하지는 않아도 됩니다.)
코드: |
(*분석은 유한시간이어야함, true*)
x has read ;
lp: say x;
goto lp on x;
say x
|
코드: |
(* pruning example, true*)
zx has read ;
x2 has zx ;
goto x6 on x2 ;
z has 2 ; (* attention : z *)
x4 has z ;
x1 has x4 ;
x5 has 1 ;
goto x7 on x5 ;
x6: y has 1 ;
goto l on x2 ;
x7: x1 has x1 ;
y has z ;
l: y1 has 1 ;
y has y+y1 ;
say y
|
두가지를 짬뽕한 예제에 대해서도 잘 처리한다면 이 프로젝트에서는 최상입니다.
아래는 새로운 케이스 추가
코드: | (*분석은 유한시간이어야함, true*)
x has read ;
t has 101;
y has x+t;
lp: say y;
s has 1;
y has y+s;
goto lp on y;
x has z+w;
say x |
코드: | (*분석은 유한시간이어야함, false*)
x has read ;
t has 1000000000;
y has x-t;
lp: say y;
s has 1;
y has y+s;
goto lp on y;
x has z+w;
say x |
강동옥 가 2012년12월22일 10:08에 수정함, 총 5 번 수정됨 |
|
위로 |
|
|
천세린
가입: 2012년 9월 17일 올린 글: 14
|
올려짐: 2012년12월19일 11:26 주제: |
|
|
이 예시의 명령문들을 Seq를 어떻게 써서 묶어줘야 하나요? |
|
위로 |
|
|
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월19일 11:27 주제: |
|
|
Seq를 어떻게 묶는지는 상관 없습니다.
세미콜론에 대해 right associative로 묶든 left associative로 묶든
실행순서에 영향을 주지 않습니다.
단지 메모리 사용량이 달라질수는 있겠지요.
강동옥 가 2012년12월19일 11:31에 수정함, 총 2 번 수정됨 |
|
위로 |
|
|
천세린
가입: 2012년 9월 17일 올린 글: 14
|
올려짐: 2012년12월19일 11:30 주제: |
|
|
그럼
여기에 대해서
Seq (x has read ,Seq (lp: say x, Seq (goto lp on x, say x)))이나
Seq (Seq (x has read,lp:say x), Seq (goto lp on x, say x))이
둘 다 허용되나요? |
|
위로 |
|
|
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월19일 11:30 주제: |
|
|
예 모두 상관 없습니다. |
|
위로 |
|
|
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월19일 11:33 주제: |
|
|
제공해드린 인터프리터 사용해보면 모두 동일한 실행을 하는것을 알 수 있을것입니다. |
|
위로 |
|
|
구해모
가입: 2011년 3월 9일 올린 글: 7
|
올려짐: 2012년12월21일 3:17 주제: Re: 프로젝트3 check_cmd 테스트셋 |
|
|
코드: |
(*분석은 유한시간이어야함, true*)
x has read ;
lp: say x;
goto lp on x;
say x
|
위에 올려주신 코드의 경우 x(즉, 입력)의 값이 0이 아닐 경우
무한 루프로 빠지는 것이 아닌가 하는데요.
이럴 때도 문제가 없다고 판단하는 건가요? |
|
위로 |
|
|
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월21일 7:12 주제: |
|
|
네 무한루프가
저장하지 않은 변수를 접근하거나
중복된 레이블에 점프하는것은 아니니까요.
(데몬 프로그램이 정상프로그램인것과 같습니다.) |
|
위로 |
|
|
|