게시판 인덱스

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

숙제5에 1번 질문입니다..;;

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2006)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
서보경



가입: 2006년 4월 1일
올린 글: 7

올리기올려짐: 2006년6월3일 0:32    주제: 숙제5에 1번 질문입니다..;; 인용과 함께 답변

1번을 보면 ;;
c1;c2는 c1이 실행된 후 결과 상태를 가지고 c2를 실행한다고 했는데;;
그러면 SEQUENCE (c1,c2) 라면
어떻게 실행 되는건지 잘 모르겠습니다.;;;
c1에서 실행한 결과가 c2에 어떻게 들어가나요?!
(c1에서 실행한 결과는 state니깐 int형인데;;; 그러면
c2에는 cmd 니깐 인자가 exp 아니면 cmd 만 들어가야 하는데;;;
어떻게 그 결과를 넣을 수 있나요?

그리고 CHOICE 는 하나를 선택한다고 해서 실행한다고 했는데;;
그러면 CHOICE 에서 실행한 결과는 둘중 하나만 출력 하는거예요? ;;;

그리고 VAR가 의미하는게 무엇인지 잘 모르겠습니다.;;;
위로
사용자 정보 보기 비밀 메시지 보내기
박대준



가입: 2005년 10월 7일
올린 글: 245

올리기올려짐: 2006년6월3일 1:28    주제: 인용과 함께 답변

서보경 씀:
c1에서 실행한 결과가 c2에 어떻게 들어가나요?!
(c1에서 실행한 결과는 state니깐 int형인데;;; 그러면
c2에는 cmd 니깐 인자가 exp 아니면 cmd 만 들어가야 하는데;;;
어떻게 그 결과를 넣을 수 있나요?

c2에 c1의 결과가 실제로 들어간다는 것이 아니라 개념적으로 그렇다는 것입니다.

서보경 씀:
그러면 SEQUENCE (c1,c2) 라면
어떻게 실행 되는건지 잘 모르겠습니다.;;;

cmd가 만들어지는 문법을 잘 보시면,
항상
코드:
x := e
와 같은 부분이 그 속에 들어가있음을 알 수 있습니다.
즉, cmd가 실행되면, 항상 기계상태를 바꾼다는 의미지요.
여기서 기계상태란 우리가 일반적으로 말하는 메모리를 생각하시면 됩니다.
하지만 프로그램의 변수가 1개밖에 없기 때문에, 우리가 일반적으로 생각하는 큰 메모리가 아니라, 공간이 달랑 한개 있는 메모리를 생각하면 될 겁니다.
(레지스터라고 생각하는 것도 나쁘지 않겠군요.)
즉, 우리가 프로그램을 실행시키기 위해서는 위에서 말한 공간 한개가 필요합니다. 거기다가 매번 커맨드를 실행할때마다 그 공간에 적절한 값을 적어놓겠지요.
적어놓는 이유는 다음계산에 필요할때 한번 쳐다보기(lookup) 위함입니다.
따라서 이러한 공간을 옆에다가 놔두고,
프로그램의 커맨드를 하나씩 실행시켜가면서 계속 그 공간의 값을 바꾸는 것이죠.
코드:
c1; c2
가 바로 그렇게 하는 것입니다.
c1을 실행하고 나면 공간에다 어떤 값을 적어두게 될 것입니다.
그리고 난 후, 그 공간에 적어둔 값을 쳐다보면서 c2 를 실행하게 되는 것이죠.
물론 c2 를 실행할 때 적어둔 값이 필요없을지도 모릅니다. 하지만 만약을 대비해서 적어두는 겁니다.
이렇게 우리가 뭔가를 적어두고, 바꾸고 하는 현상을
"기계상태가 변해간다" 라고 하고,
그렇게 적어둔 것을 가지고 나중에 쳐다보는 것을
"기계상태가 전파된다", "기계상태가 다음 단계로 들어간다" 라고 하는 겁니다.

간단히 말하면, exeval 은 pgm 과 state 두개의 변수를 받아서
pgm의 부분 커맨드를 실행시켜가는 단계단계마다 state를 갱신하여
다음 단계로 같이 넘겨주는 것입니다. 함수의 인자로 넘겨주는 것이죠.


서보경 씀:
그리고 CHOICE 는 하나를 선택한다고 해서 실행한다고 했는데;;
그러면 CHOICE 에서 실행한 결과는 둘중 하나만 출력 하는거예요? ;;;

단순히 실행을 한 다면 둘 중 하나의 결과만 나오겠지만,
이번 숙제는 싹쓸이 실행기 입니다.
말 그대로 가능한 모든 조합을 고려해서 나올 수 있는 모든 결과를 모아서 출력해주는 것입니다.

서보경 씀:
VAR가 의미하는게 무엇인지 잘 모르겠습니다

기계상태에 저장된 값을 쳐다볼때(lookup) 사용하는 것입니다.
즉, 문법 맨 마지막줄에 있는
코드:
x
를 nML 의 물건으로 표현한 것입니다.
예를 들어,
코드:
x := x + 1
이라는 커맨드는 다음과 같이 nML 의 물건으로 표현될 것입니다.
코드:
ASSIGN (ADD (VAR, NUM (1)))
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2006) 시간대: GMT + 9 시간(한국)
페이지 11

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


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