게시판 인덱스

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

마지막 숙제에 대해서.. 그리고 감사합니다

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



가입: 2008년 10월 7일
올린 글: 13

올리기올려짐: 2008년12월7일 21:00    주제: 마지막 숙제에 대해서.. 그리고 감사합니다 인용과 함께 답변

5일 자정으로 마지막 숙제의 due는 종료되었고,
약 3시간 15분 뒤면 딜레이 듀 조차도 종료되는 상황에서,
....이제서야 1차적인 구현을 마친 학생입니다 ㅠㅠ

대충 답이 나오기는 하는데,
eq와 write를 구현하는 데 있어서 완전히 polymorphic하지 않은 변수를 완전하게 generalize 시켜버리는 오류를 끝내 해결하지 못하였습니다.

해결하지 못한 부분에 대하여 설명을 해보고자 합니다.. 구현이 사람마다 워낙 달라서 이해 하기 힘드시겠지만 ㅠ 최선을 다해보겠습니다..

무슨말인가 하면,
write 함수의 인자로는 int, bool, string 밖에 들어가지를 못하는데,
이를 그냥 generalize 시켜버린다, 이런 이야기입니다..
그렇기 때문에 constraint list에, write 함수에 딸려 들어가는 타입변수를 write 함수를 처음 정의할 때 넣어도, 나중에 그 write 함수를 application 할 때 쯤 되면, constraint list에 들어가있는 타입변수는 온데간데 없고, generalize 되면서 바뀌어 버린 넘만 gamma (혹은 substitution)에 남게 된다는 것이지요..
그러다 보니 나중에 막판에 가서 constraint list를 이용하여 그와 같은 사례들을 걸러주려고 보면 그 리스트안에 들어있는건 갈길을 잃은 타입변수...

이 문제를 해결하기 위해선 generalize를 하면서 그 새로이 generalize된 타입변수와 옛날 타입변수를 서로 바인딩 시켜줘야 한다고 생각했습니다. 그래서 바인딩을 하려고 보니.... 이미 구현상 불가능하게 되어버렸습니다.. (저의 경우 바인딩을 함수로 처리하였는데, 함수의 인자값이나 리턴값으로 substitution 을 돌려주지 않게 설계가 되어 있어, 바인딩을 고친다 하더라도 그 바인딩을 실질적으로 계속하여 가지고 갈 방도가 없게 된 것이었습니다..)


어차피 이제 제출도 3시간밖에 안남아서 뭔가 실질적인 해결방도를 찾기는 포기한 상태입니다만, 혹시라도 이 길고 지리한 글을 읽는 분이 계시면 (그리고 이 말도 안되는 설명을 이해하는 분이 계시면 ㅠㅠ ㅋㅋ), 그리하여 '아 이 문제, 나도 겪었던 문제인데!' 라고 생각되는 분이 계시면 댓글 꼭 부탁드립니다..

한 사흘 이 문제에 매달리고 나니 설령 제출에 포함을 못시킨다 하더라도 정말 궁금하네요...





저에게만 그랬던 것인지는 모르겠지만,
사실 프로그래밍 언어라는 과목은 저에게는 정말 '과분한' 과목이었던 것 같습니다.. 저에게는, 수업 자체를 따라가는 것은 물론, 과제 하나하나를 할 때마다 정말 뼈를 깎는 노력과 인내를 필요로 했던 것 같습니다.. 그러다보니 이 과목 점수 자체는 아주 안좋게 나오겠지만 (ㅋㅋ 6번 숙제까지 점수를 합산해보았더니 제출하지 않은 것이 하나도 없음에도 점수가 참으로 가관이더군요...) 오랫동안 기억에 남을 것 같습니다.

질문만 하면 될 것을 이렇게 지리하게 소감을 밝히는 것은,
이 게시판을 보실 교수님, 조교님, 그리고 여러 다른 수강생분들께 감사의 표시를 하고 싶어서였습니다..
너무나도 어렵고 고생스러운 수업이었음에도, 정말 그만큼 남는 것이 많은 수업이었다는 점에서, 그리고 그렇게 된 것에는 교수님과 조교님의 노고가 있었다는 점에서, 교수님과 조교님께 감사의 말씀 드리고 싶고,
무엇보다도 다른 수강생분들께는, 저는 그토록 어려워했던 숙제를, 그래서 저는 정말 주변 사람들을 고문하는 정도로 질문에 질문을 거듭해가며 했던 숙제를, 게시판에 질문글 몇개 없이 (그나마 올라오는 질문글들은 너무나 높은 수준의 것들이어서 저같은 저급한 학생들은 질문조차 이해하기 어려웠다는 ㅠㅠ) 척척 해나가시는 것 같아서 감탄을 금할 수 없었다는 말씀을 드리고 싶었습니다..

피엘만 한 12시간 넘게 잡고 있다 보니, 쓸데없이 말이 길어지고 두서가 없네요.. (두괄식으로 써야하는데!ㅋㅋ)

한학기동안 다른 수강생 여러분들, 그리고 교수님과 조교님, 정말 감사했습니다.
(위의 질문, 답할 수 있는 분 답해주시면 정말 정말 더욱 감사드리겠습니다 ㅋㅋ)
위로
사용자 정보 보기 비밀 메시지 보내기
김학봉



가입: 2008년 9월 5일
올린 글: 70

올리기올려짐: 2008년12월8일 1:01    주제: 저도... 인용과 함께 답변

인용:
수업 자체를 따라가는 것은 물론, 과제 하나하나를 할 때마다 정말 뼈를 깎는 노력과 인내를 필요로 했던 것 같습니다..


공감 제대로네요ㅋㅋ
싸이처럼 추천있었으면 추천했을텐데
위로
사용자 정보 보기 비밀 메시지 보내기
윤용호



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

올리기올려짐: 2008년12월8일 11:13    주제: 저도 마지막으로 부딪혔던게 그 문제였어요 인용과 함께 답변

write랑 eq에서 constraint list...

그래서 저는 TypeScheme에 기존의 타입변수와 함께 기존의 타입변수에 대한 constraint list까지 포함시켜버렸습니다

그리고 VAR에 의해 instanciate 될 때 새로운 타입변수들을 생성하고 맵핑 하면서 constraint list까지 새로운 맵핑으로 대체해서 함께 리턴..

했더니 제대로 되더라구요. - 정말 제대로 된건진 채점결과가 나와봐야 알겠지만


지금 생각해보면 이제 보물섬 문제를 풀수 있을것같은 기분이 들지만 그땐 어찌나 어려웠던지..허허허허허

저도 이번학기에 전공 20학점을 듣는데도 나머지 17학점 다 합친것보다 PL에 더 많은 시간을 쓴것 같네요. 그만큼 남는것도 많았던 수업이에요~
위로
사용자 정보 보기 비밀 메시지 보내기
이광근



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

올리기올려짐: 2008년12월15일 21:04    주제: Re: 마지막 숙제에 대해서.. 그리고 감사합니다 인용과 함께 답변

1학년
법학도가
310강의를
끝까지견딘것
인상적입니다.

복수전공의
불씨를310이
꺼버렸다면
날욕하시길.

그리고
꾸준히
그불씨를
살리기를.

-K
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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