게시판 인덱스

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

5-1 문제 질문

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



가입: 2005년 9월 25일
올린 글: 14
위치: 아스트랄계

올리기올려짐: 2005년11월2일 23:42    주제: 5-1 문제 질문 인용과 함께 답변

K--에는 MALLOC과 ASSIGNG가 있고 MALLOC은 가변 길이의 연속된 메모리 셀을 할당할 수 있으며 value 타입 중에 Location이 있어서 Location과 Num의 ADD, SUB가 가능합니다만...
이걸 SM5로 옮길려다 보니, SM5에서 메모리를 할당하는 인스트럭션은 MALLOC밖에 없고 MALLOC은 location 타입을 스택에 올리는데, ADD는 정수가 아니면 에러를 냅니다. K--가 정적 타입 시스템을 사용하는 언어가 아니기에 K--의 ADD는 SM5의 ADD로 대응될 수밖에 없는데 Location과 Num의 덧셈을 나타낼 방법이 SM5에는 없습니다. 한가지 방법은 주소값을 int로 나타내는 것인데, SM5.MALLOC이 만들어내는 location 타입을 int로 변환할 방법이 없고, 스펙만 가지고는 연속된 SM5.MALLOC 인스트럭션이 연속된 location을 만드는지도 알 수 없으므로 이 방법으로는 구현이 불가능해 보입니다.
어떻게 하면 될까요?
위로
사용자 정보 보기 비밀 메시지 보내기
윤상필



가입: 2005년 9월 25일
올린 글: 14
위치: 아스트랄계

올리기올려짐: 2005년11월2일 23:53    주제: 인용과 함께 답변

지금 보니 스펙의 Value에는 Location이 포함이 안되는군요. 이것의 의미는 역시 Location 타입을 Integer로 구현하라는 말인 건가요?
위로
사용자 정보 보기 비밀 메시지 보내기
오학주



가입: 2005년 9월 5일
올린 글: 118

올리기올려짐: 2005년11월3일 14:13    주제: 인용과 함께 답변

K- 프로그램을 SM5의 instruction으로 변환하기 위해서는 두 언어의 sematics를 아셔야 합니다.
K-의 의미정의는 이전 숙제를 통해서, 조교페이지의 문서를 통해서 충분히 아실것이라 생각됩니다.
SM5의 semantics를 정리한 문서는 제공되지 않았지만 sm5.n에 인터프리터가 구현되어 있습니다.

K-의 배열과 포인터 연산때문에 변환이 쉽지는 않겠지만 나름대로의 아이디어를 내셔서 문제를 해결해 보시기 바랍니다. Smile


오학주 가 2005년11월4일 12:29에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
윤상필



가입: 2005년 9월 25일
올린 글: 14
위치: 아스트랄계

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

뭔가 빡세군요 -_-
결국 int를 location 대용으로 써야 되는 분위기인데.. int의 공간을 나눠서 특정 영역을 location용으로 써도 됩니까? 다시 말해, 특정 영역의 값은 일반 정수 계산으로는 나오지 않는다고 가정해도 됩니까?
또 한가지, int를 location으로 쓰기 시작하면 K--에서는 의미 없는 프로그램이라도 SM5에서는 우연의 일치에 의해 돌아가는 경우도 생길 것 같은데, 이건 허용되는 것입니까?
위로
사용자 정보 보기 비밀 메시지 보내기
서성현



가입: 2005년 9월 29일
올린 글: 54

올리기올려짐: 2005년11월3일 22:47    주제: 제가 조교님은 아니지만.. 인용과 함께 답변

윤상필 씀:
뭔가 빡세군요 -_-
결국 int를 location 대용으로 써야 되는 분위기인데.. int의 공간을 나눠서 특정 영역을 location용으로 써도 됩니까? 다시 말해, 특정 영역의 값은 일반 정수 계산으로는 나오지 않는다고 가정해도 됩니까?

음.. 예를 들어 2^20보다 큰 정수는
무조건 location 타입으로 가정한다는 것인가요?

하지만 굳이 그렇게 하지 않아도
다른 방법으로 깔끔하게(?) 구현하는 친구가 있더군요.
(전 아직 구현 못했지만..)

게다가, 잘 도는 K--프로그램을 잘 돌지 않도록 trans한다면
감점이 좀 되지 않을까요? ^^;

윤상필 씀:
또 한가지, int를 location으로 쓰기 시작하면 K--에서는 의미 없는 프로그램이라도 SM5에서는 우연의 일치에 의해 돌아가는 경우도 생길 것 같은데, 이건 허용되는 것입니까?

숙제 문서에 보면
인용:
여러분이 할 것은, 잘 돌아가는 K-- 프로그램을 입력으로 받아서 같은일을 하는 SM5 프로그램으로 변환하는 함수를 작성하는 것이다.

라고 되어 있군요.
잘 돌아가지 않는 K-- 프로그램이 입력으로 들어오는 경우는
생각하지 않아도 된다는 것 같네요.
_________________
http://snupl.wo.to
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
오학주



가입: 2005년 9월 5일
올린 글: 118

올리기올려짐: 2005년11월4일 12:05    주제: 인용과 함께 답변

오학주 씀:

SM5의 semantics를 정리한 문서는 제공되지 않았지만


이 부분을 정정합니다.
SM5의 semantics는 숙제문서에 정의되어 있지요.
교수님께서 더 이상 자세한 내용을 알지 않아도 된다고 하셨습니다.^^;
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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