게시판 인덱스

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

eo_test5.k 질문입니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2016)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
강동현



가입: 2011년 9월 26일
올린 글: 19

올리기올려짐: 2016년6월13일 5:52    주제: eo_test5.k 질문입니다. 인용과 함께 답변

/* x is even */
/* quiz */
a := 1;
b := 2;

x := readInt;
if (x) (p := &a) (p := 10);
if (x) (p := &b) (p := p + 1);
c := *p /* p must point to {b}, not {a, b}. Why? */

에서, x가 0이 들어올 경우 c:= *p에서 에러가 날 수 있으므로 잘못된 코드 아닌가요?
위로
사용자 정보 보기 비밀 메시지 보내기
최재승



가입: 2012년 9월 10일
올린 글: 211

올리기올려짐: 2016년6월13일 10:16    주제: 인용과 함께 답변

안녕하세요,

말씀하신대로 입력이 0이 들어오면 에러가 발생할 수 있습니다. Quiz3에서 분석기는 잘 도는 프로그램만 입력으로 받는다고 가정한 것을 깜박했네요.

해당 예제는 아래와 같이 수정하도록 하겠습니다.
예제의 핵심은 그대로이므로 (두번째 if문을 실행 후에 p가 a의 주소를 가리키지 않음) 이 수정 때문에 특별히 분석기를 고치실 일은 없을 것입니다.
코드:

a := 1;
b := 2;

x := readInt;
if (x) (p := &a) (p := 10);
if (x) (p := &b) (p := p + 1);
/* p must be (odd, {b}) here, not (odd, {a, b}). Why? */
if (x) (c := *p) (c := 4)


조교 드림
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2016) 시간대: GMT + 9 시간(한국)
페이지 11

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


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