게시판 인덱스

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

check cmd 질문

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



가입: 2014년 9월 11일
올린 글: 37

올리기올려짐: 2014년12월19일 18:51    주제: check cmd 질문 인용과 함께 답변

1)만약 cmd 프로그램 중

변수의 선언부를 실행하지 않고 변수를 사용하게 될 경우는 어떻게 해야하나요?

예를 들어

x has 1;
goto L on x;
y has 2;
L : z has x-y;
say z

위와 같은 프로그램의 경우, y의 정의를 실행하다보면 뛰어넘게 되어서 오류가 나게 됩니다. 하지만 check_cmd가 이를 거를 수 있어야 하나요? 아니면,

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


와 마찬가지로 실행 여부를 논하지 않고, free variable만 잡아내면 되나요?

2) 또한

x has 1;
y has 0;
goto L on x;
Z : k has k-x;
say k;
L : z has x-y;
k has 3;
goto Z on z

위 프로그램은 k를 코드상에서는 마지막에서 두 번째 줄에서 선언하지만,
실행과정을 보면 처음 -> L -> Z로 가게 되어 실행에는 문제가 없게 됩니다.
이경우 check cmd도 코드를 실행 순서대로 추적해서 true를 리턴해줘야하나요?
단순히 코드만 살펴서 변수가 선언되기 앞서 쓰인다고 판정을 내리면 false가 되겠지만요.
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



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

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

1)의 경우는 잡아야 합니다. 문제의 의도가 저런 것을 잡는 것입니다.
실행 여부를 분석한다는 뜻은, 반대로 변수가 정의가 안 된 채로 사용되지만 그 명령 자체가 실행이 안 될 때는 true이지만 굳이 true를 리턴할 필요는 없다는 뜻입니다.
즉, 2)같은 경우에는 false를 리턴해도 된다는 뜻입니다.

어떤 실행에서도 잘못될 가능성이 있다면 무조건 false를 리턴해야 합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 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