게시판 인덱스

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

프로젝트 3 check_cmd 질문

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



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

올리기올려짐: 2014년12월21일 2:22    주제: 프로젝트 3 check_cmd 질문 인용과 함께 답변

https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4728 에서
인용:

어떤 문장이 실행이 되는지 안 되는지까지 고려를 안 해도 만점을 드릴 예정입니다.

라고 하셨는데요,
그러면 그냥 cmd의 '모든 line이 실행된다'고 가정해도 무방한 것인가요?
아니면 cmd의 '첫 say를 만나기 전까지의 모든 line이 실행된다'고 생각하는게 맞나요?
또, https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4781 에서
인용:

그건 그렇고, read 범위를 고려해서 분석하면 더 좋은 분석이 되어 더 좋은 점수를 받을 수 있을 것 같습니다.

라고 하셨는데, 최길웅 학우분이 제시한 케이스는 goto에 의한 jump를 고려한 케이스라서 이해가 잘 되지 않습니다.

그래서 추가로 몇 가지 케이스와 제가 생각한 결과를 적어보았는데, 스펙대로는 어떻게 되는지 답변해주시면 정말 감사하겠습니다.
(저는 say 이전까지 모두 실행된다고 생각하였습니다.)
코드:

(*1*)
x has 1;
say x;
y has x-z;
say y
(* true *)

(*2*)
x has read;
y has 200;
z has x+y;
goto l on z;
w has 1;
l : say w
(* false *)

(*3*)
x has 1;
goto l on x;
w has 1;
l : say w
(* 실제로는 false이지만 true를 출력해도 상관없음 *)

(*4*)
x has read;
goto l on x;
w has 1;
l : say w
(* 실제로는 true 혹은 false인데 false를 출력해야함(?)*)

(*5*)
x has -5;
m : y has 1;
m : y has 2;
goto l on x;
l : say x
(* true *)

위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
김윤승



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

올리기올려짐: 2014년12월21일 2:54    주제: 인용과 함께 답변

모든 라인이 실행된다고 해도 무방합니다.

테스트는 언제나 say가 맨 아래에 하나만 있는 것으로만 할 것입니다.

예제 코드들을 보면,

true와 false가 뒤바뀐 것처럼 보이는데요? true는 테스트를 통과했다는 뜻이고 false는 테스트에서 오류가 검출되었다는 뜻이니까요.

1은 완전한 false이고, 2도 false로 보입니다.
1은 z가 정의 없이 사용되었고, 2에서는 w가 역시 정의 없이 사용되는 것 같네요.

3을 보면 역시 w가 정의 없이 say에서 사용되므로 false이고,

4 역시 3과 마찬가지 이유로 false이고,

5는 같은 label이 2번 쓰였는데 막상 그 label을 쓰는 곳은 없으므로 "런타임 에러"가 발생하지 않을 것이므로 true가 맞네요. (하지만 같은 label이 2번 나오는 것만으로 false를 리턴하게 하셔도 감점은 안 하겠습니다.)

어떤 실행이라도 변수가 정의되기 전에 쓰일 가능성이 있다면 무조건 false입니다. 이 예제들은 적절한 예제는 아닌 것 같은데, 혹시 제가 착각한 부분이 있나요?
위로
사용자 정보 보기 비밀 메시지 보내기
선동성



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

올리기올려짐: 2014년12월21일 3:03    주제: 그렇군요 인용과 함께 답변

감사합니다. 그러면 결국 goto에 의한 jump를 고려해야 하는 것이군요?(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