게시판 인덱스

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

HW 5-1 에관한 질문입니다.

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



가입: 2005년 10월 3일
올린 글: 33

올리기올려짐: 2005년11월4일 16:22    주제: HW 5-1 에관한 질문입니다. 인용과 함께 답변

조교님 안녕하세요 Smile

Sm5의 semantic을 보면 ADD는 정수끼리의 덧셈만 할 수 있도록 돼있습니다.

이에 반해 K--의 경우 Location과 정수의 덧셈, Location끼리의 덧셈, Location
과 정수의 뺄셈, Location끼리의 뺄셈, Location끼리의 비교(=)등을 할 수 있도
록 돼있습니다.

잘 돌아가는 K--프로그램에서 프로그램상의 K.ADD(e1, e2)만 보고 e1 또는 e2
가 Location의 값으로 evaluate될지는 알 수 없습니다. e1 또는 e2가 Location
인지 정수인지를 evaluate해서 이에 적합한 덧셈을 수행한 값을 내놓는 것은
K-- 인터프리터의 몫입니다.


trans함수의 목적은 잘 돌아가는 K--프로그램을 입력받아서 잘 돌아가는 Sm5프
로그램을 만드는 것이라고 나와있습니다.

잘 돌아가는 K--프로그램 중 Location과 정수를 더하는 것과 같이 Sm5인터프리
터가 처리할 수 없는 부분을 처리할수 있는 Sm5프로그램을 만들기 위해선
trans함수상에서 복잡한 추가 처리가 필요합니다. 이 때 trans함수상에서는
K.ADD(e1, e2)에서 e1이나 e2가 Location으로 evaluate될 지와 같은 사항들
을 알아야만 합니다.

이는 trans함수가 인터프리터의 영역을 침범하는 일이라고 생각합니다.

단순히 어떻게 해석될지 모르는(K.ADD(e1, e2)에서 e1이나 e2가 어떤 값으로
evaluate될지 모르는) K--프로그램을 받아서 어떻게 해석될지는 모르지만 K--
프로그램과 동일한 일을 수행하는 Sm5프로그램을 만드는 것이 trans함수의 목
적이라고 생각합니다.


따라서 제 생각에는 정수와 Location의 덧셈과 같은 부분을 trans함수에서 처리
하도록 하는 것보다 Sm5인터프리터가 처리하도록 해주는 것이 옳은 것 같습니
다.


처음에는 Sm5모듈을 수정할 수 있다고 나와있어서 당연히 Sm5모듈을 수정해
서 해결하려고 했는데 HW 5-1의 경우 trans함수를 정의한 1.n만 제출하도록 돼
있고 더군다나 Sm5인터프리터가 정수와 Location의 덧셈을 할 수 있도록 수정
하는것은 숙제에 제시돼있는 Sm5의 semantic을 수정하는 것이기 때문에 마음
대로 할 수 있는 사항이 아니기 때문에 게시판에 제 의견을 올려봅니다.


혹시나 해서 이광근 교수님의 예전 강의 홈페이지를 돌아다니며 찾아본 결과
이번 Sm5숙제가 예전에도 나왔던 걸 발견할 수 있었습니다.

http://ropas.snu.ac.kr/~kwang/520/02/hw5.pdf

그런데 예전의 Sm5숙제같은 경우 Sm5의 semantic은 우리의 HW5-1의
sematic과 동일한 반면 우리의 K--에 해당하는 예전 숙제의 언어 정의에서
malloc, ASSIGNG등이 빠져있는 것을 확인할 수 있었습니다.

즉 당시에는 Location과 정수를 더하고, MALLOC을 통해 연속된 여러 메모리를
할당하는 등의 현재 Sm5 인터프리터가 수행할 수 없는 K--의 feature들이 빠져있었기 때문에 현재 Sm5 인터프리터와 동일한 semantic을 가지고도 구현하기 충분했던것 같습니다.


교수님이 숙제를 내실 때 의도적으로 trans함수에서 이러한 Sm5모듈이 처리할 수 없는 K-- feature를 처리하도록 한 것이라면 더 이상 할말이 없겠지만 Sad
그런것이 아니라면 제 생각에는 이러한 feature들을 처리할 수 있도록 Sm5모듈을 수정해야 할 것 같습니다.


조교님의 답변 부탁드립니다.
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
오학주



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

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

안녕하세요

K-의 포인터 연산때문에 trans함수를 구현 하시는데 많은 어려움이 있을 것으로 생각됩니다. Crying or Very sad

링크해 주신 예전 숙제에서는 포인터 연산이 없어서 이번 숙제보다 쉬운 문제였던것도 사실입니다. 그래서 실제 Sm5 인터프리터가 실제로 어떻게 구현되었는가와는 상관없이 숙제 문서에 있는 의미정의만 보고 어렵지 않게 trans 함수를 구현할 수 있었습니다. 또한 교수님께서 숙제를 내신 의도도 이와 같은 것이었을테구요.

하지만 이번 숙제에서도 교수님께서는 문서에 정의된 K-와 Sm5 의미구조만 아는 상태에서 문제를 해결하기를 바라십니다.

예년 숙제에 비해 난이도가 올라갔다고 생각하셔야 할 듯 합니다. Embarassed
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이기석



가입: 2005년 10월 3일
올린 글: 33

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

글쎄요;;

단적으로

Sm5의 semantic을 보면 심지어는 Memory에 Sm5.malloc을 통해 생성된
Location을 담을 수 조차 없습니다.

K--의 구문 중 x := malloc(3); 이럴 경우 x에 bind된 location에는
location 값을 담아야 하는데 우리의 Sm5를 가지고는 이런 것 조차
할 수 없습니다.

즉 위와같은 K-- 프로그램을 표현하기 위해선 결국 Location을 Sm5가
제공하는 Location이 아닌 다른 것으로 표현해야만 하는데 이게 옳은건지요;

(밑에서 윤상필님께서 말씀하신것처럼 정수를 이용하는게 한 방법이겠지요; )

거기다가 Sm5 모듈을 살펴보면 Sm5의 signature에는 Location 타입이
명시되어있지도 않습니다. 결국 Location타입은 Sm5의 내부 구현용이라는
얘긴데 사실 원칙적으로 보면 Sm5모듈을 밖에서 바라보는 저희들의 입장에선
Location타입이 있는지 조차 모르는 상황입니다.(semantic에 있으니 있겠거니
할 수는 있지만요; )

예전 숙제같은 경우 K--에 해당하는 언어에 malloc이 없었기 때문에
Location 값을 메모리에 담을 필요가 없었고 Location은 내부 구현에서만
사용되기 때문에 거기에 맞춰진 Sm5 구현이라서 이런 현상이 생긴 것 같다는 생각이 드네요 Sad
이런한 예전 숙제의 상황에서는 Location이 그야말로 내부 구현에서만 사용되므
로 조교님이 공지하신대로 Sm5의 semantic과 주어진 언어의 semantic만 보고
도 당연히 쉽게 구현을 할수 있습니다
만 현재 우리의 상황으로선... Sm5모
듈의 수정없이 구현하게 될 경우 trans함수의 정체성이 의심이 될 정도네요-
Sm5 메모리에 들어갈 새로운 타입을 창조해내기까지 하는...
(그 타입은 Sm5 모듈에 정의된 Value중 하나이어야 하겠지만요)

Location과 정수의 덧셈등을 구별해내기 위해서 trans함수가 인터프리터의
역할까지 해야한다는 점도 그렇구요...

뭔가 좀 이상하단 생각이 계속 드네요.... Crying or Very sad
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
오학주



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

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

이번 문제가 쉽진 않지만, 이상한 것은 아닙니다.
한 예로, K-프로그램을 JVM과 같은 가상머신에서 돌리려면 이번 숙제와 같은 변환이 필요할 것입니다.

주어진 Sm5 의미정의 그대로 변환하는 방법을 찾는데 노력해 주세요. Smile
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이기석



가입: 2005년 10월 3일
올린 글: 33

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

정 그렇게 하라면 해야지요 Crying or Very sad
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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