게시판 인덱스

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

hw2-2 Keval.run의 정의에 대한 질문

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



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년9월25일 1:04    주제: hw2-2 Keval.run의 정의에 대한 질문 인용과 함께 답변

숙제 스펙을 보면

인용:
Keval.run (Keval.emptyMem, Keval.emptyEnv, S)는 프로그램 S를 실행시키게 되는데, 성공적으로 끝나면 최후의 값을 내어주게 됩니다.


라고 되어 있는데요. 여기서 "최후의 값"이란 무엇인가요? 그냥 int값 1인가요? 그러니까 run 함수가 제대로 돌면, 돌면서 뭔가 일을 하고, 최종적으로는 그냥 1의 값을 가지게 되는 것인지요?
위로
사용자 정보 보기 비밀 메시지 보내기
이희종



가입: 2006년 3월 7일
올린 글: 50

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

주어진 뼈대에서 무조건 1을 리턴하게 되어있는 것은 단지 컴파일이 되도록

하기 위함입니다. 실제 구현하실 때는 1+1, not true, not false, write 1과 같은

프로그램들도 올바른 리턴값을 가질 수 있도록 value 타입을 확장하셔야 합니다.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년9월25일 16:03    주제: 함수값에 대한 질문 인용과 함께 답변

run 함수 자체가 K-프로그램의 출력값을 함수값으로 가질 필요는 없지 않나요? 예를 들어 write(1+1) 같은 프로그램을 run으로 돌린다고 할 때, run의 함수값이 2가 되는 것은 아니지 않나요?

코드:
run : memory * env * program -> value


이렇게 정의되어 있는데, 왜 run의 함수값의 타입이 value로 정의되어 있는지 모르겠습니다. 아니 정확히 말해 value type이 뭔지 모르겠습니다.

이게 만약 단지 리커시브 콜을 위한 설정이라면 왜 memory와 env는 함수 값에 포함되지 않은 것인지요? (memory, env, value) 튜플을 리턴하는 게 더 자연스러워 보이는데요...
위로
사용자 정보 보기 비밀 메시지 보내기
이희종



가입: 2006년 3월 7일
올린 글: 50

올리기올려짐: 2006년9월25일 18:34    주제: 인용과 함께 답변

프로그램을 실행하고 난 뒤의 값을 뜻합니다. 프로그램의 출력값을 함수값으로 가지는 것이 아니구요.
예로 드신 write(1+1)과 같은 프로그램은 실행하고 난 뒤의 값이 없습니다. 출력되는 값는 2가 되겠지만 run의 리턴 값은 unit이 됩니다. 이에 반해 그냥 1+1과 같은 프로그램은 아무 것도 출력되지 않지만 run의 리턴 값이 2가 되겠죠.
이번 숙제에서 다루는 언어의 경우 command와 expression의 구분이 없이 모두 expression으로 생각합니다. 원래대로라면 command는 unit과 커맨드 실행 후의 메모리를, expression은 계산후의 값과 변함이 없는 메모리를 리턴하는 것이 맞습니다.

뼈대에는 run함수가 무조건 1을 리턴하고 이것을 화면에 표시하지만 실제 구현하실 때는 run함수의 리턴값을 화면에 표시하시면 안됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
조은상



가입: 2006년 9월 8일
올린 글: 17

올리기올려짐: 2006년9월27일 23:01    주제: run의 리턴값과 언어의 정의 인용과 함께 답변

좀 궁금한 점이 생겨서 문의드립니다.
1+1 과 같은 프로그램은 받을 수 없는 것 같습니다.

수업시간에 다룬 언어는 P->S 이고, 2번 문제에는 '강의시간에 정의된 의미 규칙으로는 그 프로그램의 의미가 정의될 수 없는 경우' Error를 내야 한다고 되어 있습니다.

그렇다면 모든 리턴값은 Unit이 되고, E 자체로는 프로그램이 되지 않아야 하지 않습니까?
위로
사용자 정보 보기 비밀 메시지 보내기
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2006년9월28일 4:33    주제: 인용과 함께 답변

강의노트 semantics정의를 보면

___________
Mㅏn⇒n

이라고 되어 있습니다. 따라서 'NUM 3' 같은 걸 프로그램으로 받아도 의미가 정의가 됩니다. 다만 출력을 하지 않을 뿐이죠.
위로
사용자 정보 보기 비밀 메시지 보내기
조은상



가입: 2006년 9월 8일
올린 글: 17

올리기올려짐: 2006년9월28일 9:15    주제: 인용과 함께 답변

제 생각은 조금 다릅니다.

메모리 M에서 프로그램식 n이 값 n을 계산해 내는 해당 의미는 물론 유효합니다.

그런데 이 언어의 syntax가 갖는 의미를 semantics라고 할 때, 이 프로그램식(expression)은 syntax에서 지정된 자리에만 들어갈 수 있다고 생각합니다.

프로그램이 프로그램 명령문으로 구성된다고 정의한(P->S) syntax에 따르면 NUM 3 은 프로그램식일 뿐, 프로그램이 아니라고 판단됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기
장민석



가입: 2006년 9월 5일
올린 글: 165

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

조은상 씀:

프로그램이 프로그램 명령문으로 구성된다고 정의한(P->S) syntax에 따르면 NUM 3 은 프로그램식일 뿐, 프로그램이 아니라고 판단됩니다.


이 부분 말씀이 잘 이해가 안 됩니다. (P->S)syntax가 뭐죠?
위로
사용자 정보 보기 비밀 메시지 보내기
조은상



가입: 2006년 9월 8일
올린 글: 17

올리기올려짐: 2006년9월28일 12:20    주제: 인용과 함께 답변

프로그램이 프로그램 명령문으로 구성된다고 정의한(P->S)
syntax에 따르면 NUM 3 은 프로그램식일 뿐, 프로그램이 아니라고 판단됩니다.

요렇게 내려 적을걸 그랬나요..

다시 말하면, syntax가 P->S로 정의되어 있다는 말이죠..
위로
사용자 정보 보기 비밀 메시지 보내기
이희종



가입: 2006년 3월 7일
올린 글: 50

올리기올려짐: 2006년9월28일 12:27    주제: 인용과 함께 답변

P -> S 라고 정의하면 물론 1+1은 프로그램이 아닙니다. 의미가 없는 것은 둘째치고

타입이 다르기 때문에 run함수에 전달조차 할 수 없습니다.

그러나 이번 숙제에서는 KEVAL에 type program = exp로 정의되어 있기

때문에 expression도 프로그램이라고 가정하시고 구현하시면 됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
조은상



가입: 2006년 9월 8일
올린 글: 17

올리기올려짐: 2006년9월28일 14:04    주제: 인용과 함께 답변

흠.. 그렇게 구현하라고 하시니, 다 뜯어 고쳐야겠네요 ^^

지금은 전부 강의 노트의 syntax에 따라서 에러내고 종료하도록 했는데.. 오늘 저녁 시간이 날아가는 소리가 들리는 듯 하네요.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2006) 시간대: GMT + 9 시간(한국)
페이지 11

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


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