게시판 인덱스

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

과제 7-1번 질문입니다

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



가입: 2015년 9월 1일
올린 글: 19

올리기올려짐: 2015년11월25일 19:30    주제: 과제 7-1번 질문입니다 인용과 함께 답변

코드:

(
  raise 3
)
handle 3 (
  raise 3
)


이런 프로그램은 무한루프를 도는게 맞나요?
만약 무한루프를 도는 것이 맞다면, 이런 프로그램도 입력으로 들어올 수 있는 건가요?
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
조상우15



가입: 2015년 9월 7일
올린 글: 27

올리기올려짐: 2015년11월25일 21:35    주제: 인용과 함께 답변

무한루프가 아니라 두 번째의 raise 3이 호출되면 이 예외를 받아줄 handle 문이 없어서 Unhandled Exception 내고 종료될 것 같네요.
실제로 돌려봐도 그렇네요..

저런 프로그램이 입력으로 들어올 수 있을진 잘 모르겠네요.. 일단 주어진 테스트케이스는 전부 온전하게 종료되는 프로그램들(최종적으로 결과값을 내어 놓는 프로그램들)이라서.. 예외를 뱉고 죽는 프로그램이 되려면 raise를 desugar 하는 과제의 목표랑 맞지 않을 것 같은데 이 부분은 조교님께서 설명해 주실 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
박성원



가입: 2015년 9월 1일
올린 글: 19

올리기올려짐: 2015년11월25일 22:08    주제: 인용과 함께 답변

인용:
현재의 예외상황 처리식을 실행 순으로 감싸고 있는 바로 이전의 예외상황 처리식으로 다시 껑충 점프해서 위의 과정을 반복한다

에 따르면
두번째 raise 3이 실행되면 그걸 감싸고있는 handle 3이 다시 처리하게 되는게 아닌가요? ㅠ
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
조상우15



가입: 2015년 9월 7일
올린 글: 27

올리기올려짐: 2015년11월25일 23:21    주제: 인용과 함께 답변

xexp semantics를 보면
코드:

Handle of xexp * int * xexp

이고 패턴매칭으로 쪼갠다고 생각했을 때
코드:

...
| Handle(e1, n, e2) -> ...

형식이 될텐데,
말씀하신 '현재의 예외상황 처리식을 실행 순으로 감싸고 있는 바로 이전의 예외상황 처리식으로 다시 껑충 점프해서 위의 과정을 반복한다' 라는 말을 저는
'e1을 계산하다가 예외상황이 발생했고 그 예외 값이 n 일때 e2를 실행한다'는 의미로 해석했습니다..
따라서 올린 코드는
코드:

e1 -> (raise 3)
n -> 3
e2 -> (raise 3)

인 Handle( e1, n, e2 ) 가 되고
e1을 실행하면 무조건 예외 값이 raise 되고, 그 예외값이 n이랑 같으면 e2식으로 처리하는데, 처리식 e2에서도 예외 값을 raise 하고, 이걸 받아줄 바깥 Handle 식이 없기 때문에 최종적으로 Unhandled Exception을 내어 종료되는 것으로 이해했습니다.


조상우15 가 2015년11월26일 0:17에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
박성원



가입: 2015년 9월 1일
올린 글: 19

올리기올려짐: 2015년11월25일 23:41    주제: 인용과 함께 답변

아하..
제가 handle 식의 의미 해석을 완전 잘못 하고 있었어요
죄송합니다 ㅠㅠ
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
최재승



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

올리기올려짐: 2015년11월25일 23:58    주제: 인용과 함께 답변

안녕하세요,

조상우 님이 잘 답변해 주셨습니다.

- 예제로 드신 프로그램은 처리되지 않은 (unhandled) 예외가 발생했으므로 비정상적으로 종료됩니다.

- Handle(e1, n, e2) 의 실행의미 : e1에서 예외 n이 발생하면 e2의 계산결과가 전체 Handle (...) 식의 결과가 됩니다. 즉 e2가 예외 핸들러에 해당합니다.

- hw7.pdf 스펙 파일에 명시되어 있듯이, 입력은 (처리되지 않은 예외나 에러 발생 없이) 정수로 계산되는 프로그램으로 제한합니다.

조교 드림
위로
사용자 정보 보기 비밀 메시지 보내기
조상우15



가입: 2015년 9월 7일
올린 글: 27

올리기올려짐: 2015년12월3일 15:34    주제: 인용과 함께 답변

현재 과제 스펙이 바뀌어 입력으로 예외를 출력하는 프로그램 역시 들어옵니다.

자세한 사항은 업데이트된 과제 7 스펙을 보시면 되고 혹시 몰라 여기 추가로 남겨봅니다..
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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