게시판 인덱스

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

2-4 envrionment 질문입니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2013)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김남현



가입: 2012년 9월 14일
올린 글: 19

올리기올려짐: 2013년9월22일 17:25    주제: 2-4 envrionment 질문입니다. 인용과 함께 답변

현재 주어진 스펙으로는 environment 타입의 변수는 오로지 emptyEnv 밖에 만들 수 없는 것 같습니다.
따라서 환경을 정의한 후 expr을 eval하는 것은 불가능할 것 같습니다.

그렇다면 environment는 어떻게 사용되기에 구현해야하는 것인가요?

만약 다음의 expr을 실행하고 나면 environment가 "x=5"라는 식의 환경이 구성되어있어야 하는 것인가요?
코드:
LET("x", 1,
PLUS (LET("x", 2, PLUS(VAR "x", VAR "x")),
VAR "x")
)

empty밖에 만들 수 없는 environment가 본 숙제에서 왜 필요한 것인지 잘 모르겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
최준원



가입: 2007년 3월 30일
올린 글: 149

올리기올려짐: 2013년9월22일 20:16    주제: 인용과 함께 답변

인용:
그렇다면 environment는 어떻게 사용되기에 구현해야하는 것인가요?

사실 environment가 어떻게 사용되는지 사용자는 알 수 없습니다.
시그니처로 추상화된 모듈을 사용하는 입장에서 알 수 있는 것은,
1) emptyEnv 값이 존재한다.
2) eval 함수를 실행시키기 위해 environment type 의 값이 필요하다.
정도가 되겠죠.

인용:
만약 다음의 expr을 실행하고 나면 environment가 "x=5"라는 식의 환경이 구성되어있어야 하는 것인가요?

꼭 그렇지는 않습니다.
하지만 프로그래밍 언어 강의에서 배운 내용을 공부하는 입장에서 이번 숙제를 하고 계시다면
environment 타입의 어떤 값이 이름과 값에 해당하는 어떤 자료형을 가지고 있겠죠.
위에서 말씀드렸듯이 environment 타입의 값이 eval 할 때 어떻게 쓰이는지 사용자는 모릅니다.

참고로, 만들어주신 예제에서는 (환경의 의미에 맞게 구현되었다면) "x=5" 의 환경이 구성되지 않습니다.
다시 한 번 확인해 주시고요.

결론적으로, 채점시에는 eval 이 리턴하는 값이 올바른지만 확인합니다.
하지만 강의 내용을 배우고 익히는 입장이라면 environment의 의미를 올바르게 이해하시고 구현하시는 것이 좋습니다 Smile
위로
사용자 정보 보기 비밀 메시지 보내기
유경인



가입: 2013년 9월 9일
올린 글: 29

올리기올려짐: 2013년9월25일 23:56    주제: 인용과 함께 답변

설명이 조금 헷갈려서 그러는데요

let 안에서 환경이 x=1 -> x=2 -> x=1이었다가

let 빠져나가면서 emptyEnv로 바뀌는거 맞나요?
위로
사용자 정보 보기 비밀 메시지 보내기
최준원



가입: 2007년 3월 30일
올린 글: 149

올리기올려짐: 2013년9월26일 0:51    주제: 인용과 함께 답변

인용:
let 안에서 환경이 x=1 -> x=2 -> x=1이었다가

let 빠져나가면서 emptyEnv로 바뀌는거 맞나요?

환경이 말씀하신 순서로 바뀐다고 말할 수는 없고요,
가장 바깥 let clause 에 의해 x->1 로 묶이고,
PLUS 의 왼쪽 식에서는 다시 let clause 에 의해 x->2 로 묶입니다.
PLUS 의 오른쪽 식에서는 가장 바깥쪽 let 에 의해 묶인 x->1 을 환경에서 찾을 수 있어야겠죠 Smile
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2013) 시간대: GMT + 9 시간(한국)
페이지 11

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


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