게시판 인덱스

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

example질문입니다

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



가입: 2009년 9월 19일
올린 글: 35

올리기올려짐: 2009년10월6일 23:17    주제: example질문입니다 인용과 함께 답변

제가 만든 인터프리터에서 example/test5.k--를 실행하면 not bound 에러가 납니다

let proc f(x) = x:= 2;
y:=1 in
(f<y>; write y)

실험해보니 저 괄호가 문제인듯 합니다

(let proc f(x) = x:= 2;
y:=1 in
f<y>); (write y)
파서에서 이렇게 묶여버려서 뒤쪽 write y에서 y값이 not bound 된것 같습니다


참고로 제가 만든 인터프리터에서
let proc f(x) = x:= 2;
y:=1 in
write f<y>가 정상적으로 실행됩니다

확인 부탁 드립니다
위로
사용자 정보 보기 비밀 메시지 보내기
이중호



가입: 2009년 9월 19일
올린 글: 35

올리기올려짐: 2009년10월6일 23:21    주제: 추가로 인용과 함께 답변

test6.k--에서



코드:
let x:=0;
    proc inc(n) = x := x+n in
   let x:=1 in
        (inc (1); write x)


이 코드와 괄호를 바꾼 코드

코드:
let x:=0;
    proc inc(n) = x := x+n in
   (let x:=1 in
        inc (1)); (write x)


의 출력결과가 같게 나옵니다

파서 부분에서 이상이 있는듯 합니다
위로
사용자 정보 보기 비밀 메시지 보내기
현철
손님





올리기올려짐: 2009년10월7일 0:09    주제: 음.. 인용과 함께 답변

전 test가 다 제대로 돌아갔었습니다만.. -pp로 파싱된 코드를 갖다붙여놓으시고 디버깅을 해보시는건 어떠신가요?
5번을
-pp 옵션 주고 실행해서 나온 결과를 보니 그다지 이상한 점을 발견하지 못했습니다 ^^;;
위로
노건일



가입: 2009년 9월 26일
올린 글: 50

올리기올려짐: 2009년10월7일 0:16    주제: 인용과 함께 답변

아.. 저도 5번 자꾸 not bound 에러나서..
쪼금 과장해서 10시간째 고생중이에요

뭐가 문제일까요?
위로
사용자 정보 보기 비밀 메시지 보내기
이중호



가입: 2009년 9월 19일
올린 글: 35

올리기올려짐: 2009년10월7일 0:21    주제: ,, 인용과 함께 답변

죄송합니다 제가 잘못 했었군요,,,

테스트셋은 정상인듯 합니다
위로
사용자 정보 보기 비밀 메시지 보내기
노건일



가입: 2009년 9월 26일
올린 글: 50

올리기올려짐: 2009년10월7일 0:22    주제: 인용과 함께 답변

아..............

5번 고치니까 7번이 안되요...
프로그래머들이 존경스러워요..
위로
사용자 정보 보기 비밀 메시지 보내기
tokki7



가입: 2009년 9월 15일
올린 글: 2

올리기올려짐: 2009년10월7일 0:25    주제: pp기능! 인용과 함께 답변

-pp기능을 적극 활용하세요! *ㅁ*

문제가 생기면 저는 파싱되는 중간중간마다 print_string 문을 넣어서 어디까지는 제정신으로 되는지 확인하고 그랬어용
위로
사용자 정보 보기 비밀 메시지 보내기
노건일



가입: 2009년 9월 26일
올린 글: 50

올리기올려짐: 2009년10월7일 0:59    주제: 인용과 함께 답변

-pp 넵!

감사합니다 Smile 그런 방법이 있었군요!
위로
사용자 정보 보기 비밀 메시지 보내기
허기홍



가입: 2007년 9월 27일
올린 글: 231

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

제가 없어도 다들 상부상조.

아름답습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
노건일



가입: 2009년 9월 26일
올린 글: 50

올리기올려짐: 2009년10월7일 1:44    주제: 인용과 함께 답변

조교님의 도움에도...
상부상조에도... 제 앞에는 자꾸만 산이 나타나는군요

Env.bind를 사용할때
예를 들어 e1을 e에 x를 바인딩한 새로운 Env로 놓고
다시 그 e1에 y를 바인당하면 어떻게 되나요?
동시에 두개가 다 바인딩 되는건가요?

아니라면, 어떻게 하면 두개가 바인딩된 환경을 만들 수 있을까요?ㅠ
-------------------------------------------------
바인딩의 순서가 문제였네요 ^^;; 이 문제는 해결했습니다~
위로
사용자 정보 보기 비밀 메시지 보내기
노건일



가입: 2009년 9월 26일
올린 글: 50

올리기올려짐: 2009년10월7일 8:37    주제: 인용과 함께 답변

test6 의 결과값은 어떻게 나와야 하나요?
--test 6--------------------------
let x:=0;
proc inc(n) = x := x+n in
let x:=1 in
(inc (1); write x)
----------------------------------

어찌됐든 1이긴 한데..

제가 위의 x를 2로 바꾸고 해봐도 역시 1이 나오더라고요
그런걸 보면 write x <-- 이놈이 아래에 있는 x값을 반영하는 것 같은데요,
코드를 조금 다르게 바꿔서 실험해보니까 inc(1)은 정상적으로 작동하는 것 같고요.. (위의 x=0을 받아서 1 증가.. 맞죠?)
sequence에 문제가 있는걸까요?
아...
위로
사용자 정보 보기 비밀 메시지 보내기
현철



가입: 2009년 10월 7일
올린 글: 27

올리기올려짐: 2009년10월7일 9:07    주제: 음.. 인용과 함께 답변

1 맞을거예요 아마.. inc는 윗단의 x를 증가시키고 write는 아랫단의 x를 출력하고
위로
사용자 정보 보기 비밀 메시지 보내기
허기홍



가입: 2007년 9월 27일
올린 글: 231

올리기올려짐: 2009년10월7일 9:21    주제: 인용과 함께 답변

맞습니다.

write x 에서 x는

let x :=1 in

여기서 바인딩 되죠.

스코프를 잘 생각해 보시면 됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
노건일



가입: 2009년 9월 26일
올린 글: 50

올리기올려짐: 2009년10월7일 15:36    주제: 인용과 함께 답변

아... 허허허

감사합니다 Smile
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2009) 시간대: GMT + 9 시간(한국)
페이지 11

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


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