게시판 인덱스

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

문제 설명에 문제가 있는 것 같습니다.

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



가입: 2008년 9월 23일
올린 글: 257

올리기올려짐: 2008년10월30일 0:01    주제: 문제 설명에 문제가 있는 것 같습니다. 인용과 함께 답변

예를 들어,
push 1::push 2::add:put::empty
는 K-- 프로그램 write 1+2와 같은 일을 하게 된다.

라는 문구가 있는데요.
위의 Sm5 프로그램의 결과는 화면에 3을 찍은 후 unit조차 아닌 완전히 '아무 값도 없는 상태'가 되고,
write 1+2의 의미정의에 따르면 화면에 3을 찍은 후 '값 3'을 가져야 합니다. 따라서 둘이 겉으로 보기에는 같은 일을 한다고 해도 의미가 다른 것 같습니다.

예를 들어 K--의 의미 정의 그대로라면 let x:=(write 1+2) in ... 이런 구문이 가능해야 하는데 문제의 예시에서는 이미 put 하는 시점에서 1+2의 값이 어디론가 사라져버렸으므로 이것이 불가능 하고,
따라서 주어진 Sm5 머신으로 write에 대한 semantic을 완벽하게 구현할 수 없
는 듯 합니다.
Sm5의 put instruction이 스택의 값을 제거하지 않아야 한다는 생각이 드는데...

제가 잘못 생각하고 있는건가요..?



덧 // Loop 어떻게 만들어야될지 머리가 아프네요 코드가 무한대로 만들어지는 사태... 힌트좀 굾굾 ㅠㅠ
위로
사용자 정보 보기 비밀 메시지 보내기
이현민



가입: 2008년 9월 4일
올린 글: 18

올리기올려짐: 2008년10월30일 1:00    주제: . 인용과 함께 답변

저는 그래서 출력 후에 다시 값을 스택에 집어넣는 찝찝한 방식을 택했는데,

다른 방법이 있는지는 모르겠네요.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 MSN 메신저
최원태



가입: 2006년 9월 16일
올린 글: 369

올리기올려짐: 2008년10월30일 1:24    주제: 인용과 함께 답변

Sm5로 K--의 semantics를 완벽하게 구현 가능해요.
심지어, K-도 Sm5위에 얹을 수 있습니다.

애초에 기계에 맞춰서 만들어진 언어가 아니면,
어떤 언어라도 컴파일러가 깔금하게 구현되지 않습니다.
구현에 다소의 트릭이 있는 편이 오히려 당연한 일이지요.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
윤용호



가입: 2008년 9월 23일
올린 글: 257

올리기올려짐: 2008년10월30일 8:41    주제: 저도... 인용과 함께 답변

저도 출력 후에 다시 값을 스택에 집어넣는 찝찝한 방식을 택하려고 했는데

그것조차 단순하지가 않더군요. 스택 맨 위의 값을 두개로 뻥튀기하는 instruction이 없으니

다시 집어넣자면 메모리에 저장을 해두거나 write의 대상을 다시 수행해야 하는데

write(x:=x+1) 과 같은 프로그램을 그런식으로 두번 수행하도록 해버리면

x값이 의도보다 1 더 증가하는 현상이 발생하고...
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2008) 시간대: GMT + 9 시간(한국)
페이지 11

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


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