게시판 인덱스

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

숙제 2-2 에서 질문입니다.

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





올리기올려짐: 2005년10월5일 6:19    주제: 숙제 2-2 에서 질문입니다. 인용과 함께 답변

과제를 하다보니 타입체크하는 함수하고 인터프리터 함수하고 별도로 구현 되었는데 이렇게 해도 괜찮을까요..

돌렷 실행시 타입체크함수에 프로그램하고 타입용빈환경을 넣어 타입을 체크한후 에러가 없으면 인터프리터 함수를 실행하도록 되어있습니다.

지금보니 이렇게 할 필요가 별로 없었던 것 같긴 한데, Crying or Very sad 어쩌다 보니 이렇게 되었네요 ㅡ_ㅡ;;
위로
김덕환



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

올리기올려짐: 2005년10월5일 12:36    주제: Re: 숙제 2-2 에서 질문입니다. 인용과 함께 답변

정민재 씀:
과제를 하다보니 타입체크하는 함수하고 인터프리터 함수하고 별도로 구현 되었는데 이렇게 해도 괜찮을까요..

돌렷 실행시 타입체크함수에 프로그램하고 타입용빈환경을 넣어 타입을 체크한후 에러가 없으면 인터프리터 함수를 실행하도록 되어있습니다.


정확히 어떻게 구현하셨는지 모르겠습니다만 곤란하지 않을까 싶습니다. 요약적으로 타입을 검사하신다면(즉, 정적 타입 시스템을 구현하셨다면), 의미 정의에 따르면 돌아가야하는 프로그램 중에 타입 검사를 통과하지 못하는 프로그램이 있을 겁니다. 그렇지 않고 실제 실행의 흐름을 다 따라가면서 타입을 검사하신다면, 무한루프가 있는 프로그램의 경우에는 타입 검사 단계에서 실제 실행 단계로 못 넘어갈 듯합니다. 순수한 값만 계산하는 경우라면 실제 실행도 끝나지 않으니까 타입 검사 단계가 끝나지 않아도 된다고 볼 수도 있겠지만, K-에는 외부 입출력 같은 사이드 이펙트가 있기 때문에 그렇게 보기는 어렵겠습니다.

좀더 질문이 있으시면 구현을 봐야 제대로 답할 수 있을 듯하므로 연구실로 찾아오시는 게 좋겠습니다.
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
정민재
손님





올리기올려짐: 2005년10월5일 16:32    주제: Re: 숙제 2-2 에서 질문입니다. 인용과 함께 답변

김덕환 씀:
요약적으로 타입을 검사하신다면(즉, 정적 타입 시스템을 구현하셨다면), 의미 정의에 따르면 돌아가야하는 프로그램 중에 타입 검사를 통과하지 못하는 프로그램이 있을 겁니다.

요약적으로 타입을 검사한다는 것이 정확히 어떤 뜻인지는 모르겠지만, 프로그램을 구성하는 각 exp가 정확히 하나의 리턴 타입을 갖고, 각 exp 내부에서 허용되는 exp 의 타입이 이미 결정되어 있다고 한다면 exp의 타입을 리턴하는 체크함수를 통해 실행하지 않고도 그 프로그램의 타입검사가 가능할 것이라는 생각에서였습니다. 이번 K- 에서 의미 정의에 따르면 돌아가야하는 프로그램 중에 타입 검사를 통과하지 못하는 프로그램이 어떤 것이 있을 수 있는지 모르겠습니다.

개념적인 이해가 부족해서 좀 엉뚱한 질문을 하는 것 같기도 하네요. Embarassed
연구실로 찾아뵙고 질문드리지 못해 죄송합니다.
위로
김덕환



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

올리기올려짐: 2005년10월5일 19:08    주제: Re: 숙제 2-2 에서 질문입니다. 인용과 함께 답변

정민재 씀:

요약적으로 타입을 검사한다는 것이 정확히 어떤 뜻인지는 모르겠지만, 프로그램을 구성하는 각 exp가 정확히 하나의 리턴 타입을 갖고, 각 exp 내부에서 허용되는 exp 의 타입이 이미 결정되어 있다고 한다면 exp의 타입을 리턴하는 체크함수를 통해 실행하지 않고도 그 프로그램의 타입검사가 가능할 것이라는 생각에서였습니다. 이번 K- 에서 의미 정의에 따르면 돌아가야하는 프로그램 중에 타입 검사를 통과하지 못하는 프로그램이 어떤 것이 있을 수 있는지 모르겠습니다.

돌아가야하는 프로그램 중에 타입 검사를 통과하지 못하는 프로그램은 민재 님의 타입 시스템 설계를 봐야지만 정확하게 알 수 있습니다. 아래는 추측성 답안입니다.

일단 민재 님 타입 시스템이 임의의 프로그램에 대해 항상 끝나는지요?

끝난다면 다음과 같은 코드는 타입 시스템에 대해 어떻게 동작하는지요?
코드:

let x := 0 in
  (read x ; if x = 0 then x:= 0 else x:= true ; x + 1)

현실적인 예는 아닙니다만, 표준 입력으로 0을 입력하면 우리의 정의에 따라 의미가 정의될 수 있으므로 프로그램이 실행되어야 합니다.

@ 문법이 정확하지 않을 수 있습니다만 의미는 충분히 전달되었을 거라고 봅니다.
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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