게시판 인덱스

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

SM5에서 unbind에 대한 질문입니다.

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



가입: 2006년 9월 18일
올린 글: 43

올리기올려짐: 2006년10월25일 15:56    주제: SM5에서 unbind에 대한 질문입니다. 인용과 함께 답변

CALLV를 번역하려면 LETF에서 bind시킨 프로시져를 얻어와서 스택에 넣어주어야 하는데요,
환경에 bind된 것을 얻어오는 방법이 unbind시킨 후 unbox하는 방법밖에 없는 것 같습니다.

이렇게 하면, unbind된 프로시져를 다시 불러오는 일은 불가능해지지 않나요? unbind하면서
환경에 바인딩된 정보가 사라지기 때문에 K--에서 시퀀스로 다른 명령을 추가로 수행하거나 할때
같은 함수를 여러 번 호출하거나, 또는 recursion을 이용할 수가 없게 될것 같은데요...

변수의 값을 읽어오거나 할때도 같은 방법을 써서 로케이션을 얻어와야 할것 같은데 이 경우도
마찬가지 문제가 발생할 것 같아서 고개가 갸웃해집니다. Confused

제가 잘못 이해하고 있는 것인지, 판단이 서질 않네요. Crying or Very sad
_________________
...
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
이준희



가입: 2006년 9월 18일
올린 글: 43

올리기올려짐: 2006년10월25일 16:15    주제: 인용과 함께 답변

아, 착각한것 같네요. unbind하지 않고도 얻어올 수 있었군요. OTL

........unbox운운한건 더 심한 삽질이고...-_-;
_________________
...
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
송수현



가입: 2006년 9월 4일
올린 글: 25

올리기올려짐: 2006년10월25일 17:23    주제: 인용과 함께 답변

그런데 LETF의 과정을 살펴보면

push (x, C') 와 bind로 이루어져야 할 듯 합니다만,

push (x, C')를 하면 (x, C', E)가 스택에 들어간다
(여기서 E는 당연히 함수의 bind는 되어 있지 않다)
이를 bind로 지금의 E에 추가한다.
즉, 지금의 E에 bind되어있는 함수의 E에는 그 자신은 포함되어 있지 않다

라는 것이 되어서..

추후 call을 하게 되면 일단은 함수를 불러 올 수 있습니다만, 그 뒤에 현재의 환경 E(함수 bind 포함)가 함수의 E(함수 bind 없음)로 바꿔치기가 된 뒤 함수의 명령들인 C' 를 실행하게 됩니다. 그렇다면 recursion의 경우 C'안에 또 자신을 call하게 되는데, 현재 환경 E에는 자신이 bind되어 있지 않으므로 문제가 발생하게 됩니다.

하여, recursion이 안 될 것이라고 생각합니다..

이게 맞다면 SM5의 차원에서 무언가 더 필요할 듯 한데요, 다른분들의 의견은 어떠신지?
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
이준



가입: 2006년 9월 7일
올린 글: 30

올리기올려짐: 2006년10월27일 3:44    주제: 인용과 함께 답변

송수현님 말씀대로인것 같습니다.
애초에 sm5가 정의된것을 보면 E'에는 procedure가 bind되지 않고 있습니다.
제 생각에도 그동안 배워온 function call과 다른것 같네요.

강의록에 recursive call을 하기에 문제가 있는 방식이라고 적혀있는 방식대로
구현이 되어있다고 생각됩니다. 역시나 sm5를 바꿔야하지 않을까 싶은데요...;;
위로
사용자 정보 보기 비밀 메시지 보내기
박대준



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

올리기올려짐: 2006년10월27일 16:06    주제: 인용과 함께 답변

원론적으로 특정 언어로 짜여진 프로그램을 동일한 일을 하는 다른 언어로 바꾸는 것은 가능합니다.
문제는, 복잡도의 문제이겠지요.

이번 SM5문제에서도, K-로 짜여진 프로그램을 SM5언어로 바꾸는 것 역시 가능합니다.
단지, 얼핏 보기에 K-와 SM5가 일대일 대응이 되지 않기때문에, 어려워 보이는 것 뿐입니다.
질문하신 일련의 사항들을 잘 해결하시는 것이 숙제의 의도입니다.
변환 과정은 여러분들의 실력이라면 충분히 가능하니, 잘 고민해서 해결하시길 바랍니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2006) 시간대: GMT + 9 시간(한국)
페이지 11

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


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