게시판 인덱스

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

Project 3번, 무한루프 등과 관련.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
javelinsman



가입: 2014년 9월 3일
올린 글: 7

올리기올려짐: 2014년12월13일 10:30    주제: Project 3번, 무한루프 등과 관련. 인용과 함께 답변

아이디가 실명이 아닌 점 죄송합니다.
2013-11434 최길웅입니다.


스펙을 더 자세히 알아보려고 지난 학기 게시판을 참조해 보았는데,
아래와 같이 상반된 두 정보가 있었습니다.

2012년 게시판 (조교님이 직접 올려주신 테스트케이스)
코드:
(*분석은 유한시간이어야함, 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


2013년 게시판
인용:
true를 반환하는 것이 더 좋은 분석이겠지만, 프로그램의 종료를 분석해야 하므로 문제의 난이도가 급상승하게 됩니다. 문제의 난이도를 생각했을 때 이와 같은 예제에서 false를 반환해도 옳은 답변이라고 채점할 예정입니다.

인용:
https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4180 에서도 이야기했지만 "실행이 되는지 아닌지"를 분석하는 것은 문제의 난이도를 급상승시킵니다. 실행되지 않는 goto문에 딸린 tag라고 해서 true를 리턴하는 것이 더 좋은 답변이지만, 이러한 경우에 false를 리턴하여도 옳다고 채점할 예정입니다.


즉, 매년 스펙의 일부 사항이 수정되고 있는 것 같은데 올해의 경우에는 어떻게 되나요?

1. invalid statement가 있지만 무한루프를 돌아서 판별이 되지 않는 경우는 고려하지 않아도 만점을 받을 수 있나요?

2. if문에서 실행 여부는 어느정도로 자세히 구현해야하나요? 저는 지금 read가 아닌 정확한 숫자로만 되어 있어서 숫자를 판별할 수 있는 케이스에 한해서 분기 여부를 판정하고, 그렇지 않으면 무조건 true라고 구현해 놓았는데, 혹시 read의 범위가 [-100,100]임을 고려해서 x has read; y has 101; y has -y; x has x+y ; goto ? on x 같은 케이스도 정확하게 판별해야 할까요?
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



가입: 2014년 9월 1일
올린 글: 452
위치: 302동 312-2호

올리기올려짐: 2014년12월13일 15:17    주제: 인용과 함께 답변

2012년의 코드는 w가 정의되지도 않았는데 사용되어서 문제가 되는거죠?

엄밀하게는 문제의 스펙이 바뀌었다기보단 채점기준이 완화된 것입니다. 그리고 이번 숙제도 작년과 같은 기준을 따를 것입니다.

이 코드에 대한 정답은 원래는 true가 맞습니다.

하지만 언제나 true를 내야 하는 경우에서 true를 내는 분석기를 만드는 것은 불가능합니다. 그래서 이런 경우 false를 리턴하게 해도 감점하지 않겠다는 것입니다.

즉, 이 문제에 대해서는 100% 완전한 정답은 존재하지 않습니다.

분석 시간과 정확도 사이에 trade-off가 있으므로 기준을 잘 설정하는 게 이 문제의 핵심입니다.

극단적으로 보면,

모든 코드에 대해 false를 내는 것도 올바른 분석기입니다. (점수를 잘 받을 수는 없습니다.)

모든 코드에 true를 내는 건 틀린 분석기입니다. (false를 내야 할 때 true를 내는 건 틀린 분석입니다.)

여기까지는 배경 설명이고,

1. 무한루프를 돌아서 판별이 안 되는 경우라는 것이 무엇인지 모르겠습니다. 무한루프를 도는 코드는 당연히 테스트할 수 있습니다. 주어진 코드가 무한루프를 도는지 안 도는 지에 관계없이 우리가 찾으려는 특성만 찾으면 됩니다. 조금이라도 그런 특성을 가질 가능성이 있으면 false를 리턴하는 것입니다.

2. 지금 하시는 분석도 맞는 방향이지만, 무조건 false라고 구현해야하지 않나요?
그건 그렇고, read 범위를 고려해서 분석하면 더 좋은 분석이 되어 더 좋은 점수를 받을 수 있을 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

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


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