게시판 인덱스

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

Side Effect에 대해서

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



가입: 2005년 9월 20일
올린 글: 91
위치: SNUCSE OPT. lab.

올리기올려짐: 2005년10월6일 19:06    주제: Side Effect에 대해서 인용과 함께 답변

주어진 E들 중에서, E1 과 E2 를 품고있는 경우에, E1과 E2가 계산해내는 값의 타입이 중요한 경우가 있습니다.

(FOR, LESS 등)

이 경우 두 가지의 구현이 있으리라 생각합니다.

* E1 을 실행하고, 그 값의 타입을 살핀 후, 타입이 맞는 경우 E2 실행

* E! 을 실행하고, E2를 실행한 후, 각각 타입이 맞는지 살피기

물론 올바른 프로그램의 경우에는 두 경우 모두 별 문제가 없습니다.

하지만 E1 으로 얻어지는 메모리 M1 으로 E2를 실행하는 경우라면 문제가 됩니다.

E1을 실행했을 때, 타입이 맞지 않는 값이 계산되고,

M1 을 잘못 건드려 E2 에서 타입 외의 Exception을 발생시킬 수 있습니다.

어차피 익셉션이 발생되겠지만, 다른 익셉션이 발생할 수 있습니다.

예를 들어,

let x = 1 in FOR(x, SEQ( x:= 0, true), 2/x, something)

과 같은 프로그램이 그렇습니다.

E1, E2 를 모두 실행한 후 타입을 살펴본다고 하면,

2/x 를 계산하는 과정에서 0으로 나누는 익셉션이 발생합니다.

하지만 E1을 먼저 계산한 후 타입을 생각하면,

FOR 안에서 int 아닌 값이 있다는 익셉션이 발생합니다.

(그리고 E2를 실행하지 않을 수도 있겠지요)

프로그램이 멎는다는 점은 같지만, 그 멎는 이유가 조금 다른데,

이런 경우도 문제가 될 수 있는지 궁금합니다.
_________________
The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
김덕환



가입: 2005년 8월 29일
올린 글: 190

올리기올려짐: 2005년10월6일 20:55    주제: Re: Side Effect에 대해서 인용과 함께 답변

김진현 씀:
주어진 E들 중에서, E1 과 E2 를 품고있는 경우에, E1과 E2가 계산해내는 값의 타입이 중요한 경우가 있습니다.

(FOR, LESS 등)

이 경우 두 가지의 구현이 있으리라 생각합니다.

* E1 을 실행하고, 그 값의 타입을 살핀 후, 타입이 맞는 경우 E2 실행

* E! 을 실행하고, E2를 실행한 후, 각각 타입이 맞는지 살피기


FOR의 경우에는 E1을 실행하고 타입이 맞는지 검사합니다. 정의에 보면 E1을 계산한 결과값이 n1(정수)이 되어야 한다고 나와있습니다. n1이 만들어지지 못한다면 M1도 만들어지지 못하는 것으로, E2를 계산한다는 것은 말이 되지 않습니다.

LESS의 경우에는 모든 E1의 값의 타입에 대해 LESS가 정의되어 있습니다. 따라서, E1의 값의 타입만으로는 에러가 나는 경우는 없습니다.

의미를 정의할 때 n, b, v 변수는 매우 조심스럽게 사용하였습니다. 타입과 관련된 의문 사항은 그 변수들을 잘 들여다 보면 쉽게 해결되실 수 있을 거라고 봅니다.

@ 마감까지 세 시간 남았습니다. Twisted Evil
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
김진현



가입: 2005년 9월 20일
올린 글: 91
위치: SNUCSE OPT. lab.

올리기올려짐: 2005년10월6일 21:01    주제: 인용과 함께 답변

역시 n, b 와 같은 것들은 타입을 의미하는 거였네요 ^^;

이런 부분이 문제가 되는 건, FOR 부분 뿐이겠죠?

(확인중)

확인하였습니다 Embarassed
_________________
The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
김덕환



가입: 2005년 8월 29일
올린 글: 190

올리기올려짐: 2005년10월6일 21:07    주제: 인용과 함께 답변

김진현 씀:

역시 n, b 와 같은 것들은 타입을 의미하는 거였네요 ^^;


문서 제일 처음 부분에 각 변수가 어떤 집합의 원소인지(즉, 어떤 타입의 값들을 나타내는 변수인지)를 적어놓았습니다 꼼꼼히 봐주세요. Cool
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
김진현



가입: 2005년 9월 20일
올린 글: 91
위치: SNUCSE OPT. lab.

올리기올려짐: 2005년10월6일 21:09    주제: 인용과 함께 답변

처음 부분에 주어진 건 n, b 입니다.

n1, n2, b1, b2 가 아니라요 ^^;;

그래서 혹시나 하는 생각을 했던 거구요 Smile
_________________
The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
서상원



가입: 2005년 9월 27일
올린 글: 33

올리기올려짐: 2005년10월6일 21:43    주제: 인용과 함께 답변

김진현 씀:
역시 n, b 와 같은 것들은 타입을 의미하는 거였네요 ^^;

이런 부분이 문제가 되는 건, FOR 부분 뿐이겠죠?

(확인중)

확인하였습니다 Embarassed

FOR 부분 만은 아니지 않나요?
INF_LOOP을 무한 루프를 도는 식이라고 가정하면
"ADD (TRUE, INF_LOOP)"만 하더라도 결과가 달라지지 않나요?

덕분에 열심히 고치는 중입니다만... (계산 순서와 타입 체크 순서는 상관없겠지라고 생각했었는데.. 너무 안일한 생각이었던 모양입니다. Sad)
위로
사용자 정보 보기 비밀 메시지 보내기
이기석



가입: 2005년 10월 3일
올린 글: 33

올리기올려짐: 2005년10월6일 22:07    주제: 인용과 함께 답변

semantic을 엄밀히 따르자면

고쳐야 할 부분이 많은것 같네요 ㅎㅎ
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
김진현



가입: 2005년 9월 20일
올린 글: 91
위치: SNUCSE OPT. lab.

올리기올려짐: 2005년10월6일 22:11    주제: 인용과 함께 답변

binary operation 만 고치면 되지 않나요?

binary relation 두 개는 타입 덕택에 어차피 둘 다 계산해봐야 할테고..

그 외에는 별 문제 없을 듯 한데.... 제가 놓치고 있는 부분이 있나요?
_________________
The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
서상원



가입: 2005년 9월 27일
올린 글: 33

올리기올려짐: 2005년10월6일 23:02    주제: 인용과 함께 답변

E1, E2 문제는 FOR, binary operation이 다 인것 같습니다.
(이제와서 더 있다고 해도 곤란하죠. -_-;; )
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005) 시간대: GMT + 9 시간(한국)
페이지 11

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


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