게시판 인덱스

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

이번 숙제의 value의 타입중에, Bot 타입은 무언가요?

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





올리기올려짐: 2007년10월4일 16:49    주제: 이번 숙제의 value의 타입중에, Bot 타입은 무언가요? 인용과 함께 답변

수업시간에는 Z,B,Addr, Unit 을 배운거 같았는데,
value의 구성요소 중에 Bot 이라는게 있네요. 무언지 몰라서 질문합니다. Smile
위로
정영범



가입: 2005년 9월 5일
올린 글: 167

올리기올려짐: 2007년10월5일 0:31    주제: 인용과 함께 답변

Bot(Bottom) 말 그대로는 가장 아래에 있다는 뜻입니다.
어디에서 아래에 있는 것인가 하면 값들이 돌아다니는 공간에서 제일 아래에 있다라는 거죠.

정의되지 않은 값/ 잘못된 값/끝나지 않는 함수의 값을 나타내기 위해 사용됩니다.

우리가 프로그램 식의 값을 정의할 때
whlie(e1){e2};
의 값을 e1의 값이 거짓일때 e2의 마지막 subexpression이라고 정의할 수 있겠지요.
그렇게 정의했을때 만약 아래와 같은 프로그램에서 y의 값이 무엇이겠는가 할 때
x=1;
y=while(x>0){x++;}
y의 값을 정의 할 수 없으니까 편하게 쓰려고 정의한 값이 bottom입니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
한재화
손님





올리기올려짐: 2007년10월5일 18:04    주제: 그럼, while문의 실행값은 마지막실행된 문장의 값인가요? 인용과 함께 답변

코드:

while E1 do E2

가 결국에는, E1이 거짓일때 마지막으로 계산된 E2 값을 내놔야 한다는건가요..
교재에는 unit 값을 내놔야 한다고 써있습니다. 그리고 Unit 과 Bot 의 차이점도 명확히 모르겠네요.. Embarassed
위로
정영범



가입: 2005년 9월 5일
올린 글: 167

올리기올려짐: 2007년10월5일 18:23    주제: 인용과 함께 답변

인용:
결국에는, E1이 거짓일때 마지막으로 계산된 E2 값을 내놔야 한다는건가요..

교재에 나와있다고 꼭 그래야 한다는 보장은 없습니다. 언어의 의미는 정의하기 나름입니다.
x:=1; y:= x + 1;
를 실행하면 y값이 2가 된다는 것은 언어의 의미를 정의할 때 보장 받는 것이지 절대적인 것이 아닙니다. 숙제에서 인터프리터를 짜면 느끼겠지만 우리가 어떻게 해석하냐에 따라서 언어의 의미가 결정됩니다. 식 x:=n; 의 의미를 n이 정수일때 x-> n+1로 메모리를 변화시키는 것이라고 해석할 수도 있습니다. 어거지일 뿐이지만요. 인터프리터를 맘대로 짜면 프로그램을 몇번 짜보는 것으로는 도저히 이해할 수 없는 언어도 만들 수 있겠지요. 항상 직관적인 것이 승리하는 것 같습니다.

제가 위에서 whlie문의 return 값을 예로 든 것은 프로그램이 무한히 돌 경우에 return 값은 정의가 안된다는 의미었습니다.

unit 값은 값입니다. 값에 다른 정보가 없는 값이죠.
그런데, 무한히 도는 프로그램은 아무런 값도 내지 않습니다. 정의할 수 없는 것이죠.
print_string () : unit -> unit
f(int x){ f(x)}; int -> ???
???은 unit 타입이 될 수 없습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2007) 시간대: GMT + 9 시간(한국)
페이지 11

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


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