게시판 인덱스

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

5-1. For문 질문입니다

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2015)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
홍선기



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

올리기올려짐: 2015년11월9일 22:48    주제: 5-1. For문 질문입니다 인용과 함께 답변

let i := 3 in
for i := 2 to 1 do (
i := i - 1
);
write i

위 코드를 k-- 인터프리터로 돌린 결과 3이 출력되었습니다.


let i := 3 in
for k:= 1 to 2 do (
i := i - 1
);
write i

포문에서 처음 보는 변수를 쓰더래도 3이 출력되었습니다.
.
let i := 3 in
for k:= 1 to 2 do (
write k
);
write i
하지만 포문안에서 처음보는 변수에 접근하려고 하면 오류가 났습니다.


k-- 인터프리터가 어떻게 구현되었는지 자세히는 모르지만 아마 포문 변수에 아무거나
주어져도 무시하고 새로운 변수를 할당해서 독자적으로 쓰는 것 같습니다.

하지만 직관적으로 생각할때에는 당연히 포문에 주어진 "k"라는 변수명은 기존에 선언된 변수와 어떤 상호작용 (예를 들면 대입)을 하여야할 것 같습니다

(C같은 언어처럼
int i=3;
for (i=2; 0; );
printf("%d",i); -> 2가 출력됨

그래서 질문은 sm5를 구현할때 포문에서 초기문에 들어온 변수가 어떤 변수던지 간에 무시하고 새로운 이름의 변수하나를 할당하는 식으로 구현하여도 괜찮을까요?
위로
사용자 정보 보기 비밀 메시지 보내기
최재승



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

올리기올려짐: 2015년11월10일 1:07    주제: 인용과 함께 답변

코드:
let i := 3 in
for k:= 1 to 2 do (
i := i - 1
);
write i


인용:
포문에서 처음 보는 변수를 쓰더래도 3이 출력되었습니다.


해당 코드를 뼈대코드에서 직접 k-- 실행기로 실행해 봤는데, Unbound 에러가 발생합니다. K-- 문서의 스펙이나 K--실행기 코드를 봐도 그렇게 되는 것이 맞고요. 어딘가 착오가 있으셨던게 아닌지 다시 확인해 주시기 바랍니다.

인용:

sm5를 구현할때 포문에서 초기문에 들어온 변수가 어떤 변수던지 간에 무시하고 새로운 이름의 변수하나를 할당하는 식으로 구현하여도 괜찮을까요?

어떤 식으로 구현해도 된다 안된다를 결정하는 원칙은 없습니다. 유일한 조건은, 주어진 K-- 프로그램과 번역한 SM5 프로그램은 같은 일을(같은 입/출력 행동을) 해야 한다는 것 뿐입니다. 이 조건만 만족하는 범위 내에서 어떤 식으로든ㄷ 구현해도 좋습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2015) 시간대: GMT + 9 시간(한국)
페이지 11

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


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