게시판 인덱스

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

LET 에 관한 질문입니다.

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



가입: 2006년 9월 4일
올린 글: 25

올리기올려짐: 2006년9월27일 23:29    주제: LET 에 관한 질문입니다. 인용과 함께 답변

LET의 형식을 보면
코드:
LET(id, exp, exp)

입니다..

일종의 binding이라고 알고 있습니다. 즉
코드:
let x = 4 in write x+3

이런식으로 쓰일 텐데요,

그렇다면 이것은
코드:
SEQ(ASSIGN(id, exp), exp)

와는 어떤 차이가 나는지요?
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
송정효



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

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

제 생각엔 Sequence로 된 후자의 경우는 미리 선언한 변수를 쓰는 것이라 메모리 할당이 일어나지는 않는 게 차이라고 봅니다.
위로
사용자 정보 보기 비밀 메시지 보내기
송수현



가입: 2006년 9월 4일
올린 글: 25

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

헉.. 그렇다면 ASSIGN의 경우는 할당되었을 때 새로운 값 넣기와 새로 할당하며 값 넣기가 아닌, 새로운 값 넣기만 해당된다는 말씀인가요?
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
송정효



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

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

정의하기 나름인 것 같습니다. 그렇지만 선언자가 없이 assignment 오퍼레이터만 있는 경우 새로운 변수를 선언하는 의미는 빠진다고 보는게 낫다고 제 나름대로 판단했습니다. let ... in 이 K-에서 이 그 역할을 하는 것 같고요.
위로
사용자 정보 보기 비밀 메시지 보내기
박대준



가입: 2005년 10월 7일
올린 글: 245

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

코드:
let x=4 in write x


코드:
x=4; write x

는 의미가 전혀 다른 프로그램입니다.
게다가 후자의 프로그램은 stand-alone프로그램으로써는 의미(semantics)가 없습니다.

강의시간에 정의한 의미구조에서는,(강의자료 3.ppt의 27번 슬라이드)
x라는 식의 값을, 환경에서 x에 바인딩된 주소에 해당하는 메모리 값으로 정의하고 있습니다.
그리고 어떤 변수를 환경에 바인딩시킬 수 있는 유일한 방법은 let-바인딩 입니다.
따라서 전자에서는 x라는 변수가 어떤 l이라는 주소에 바인딩되고, 메모리에서 l이 가리키는 곳에 4라는 값을 넣게됩니다.

하지만 후자에서는(만약 이 프로그램이 단독으로 존재할경우)
x에 4를 assign하기위해서 x가 바인딩된 주소를 가져와야 하는데,
현재 환경에서는 어떠한 변수도 바인딩이 되어 있지 않기때문에,
4라는 값을 넣을 수가 없습니다.

따라서 후자의 프로그램은 다음과 같은 let-바인딩 안에서 사용되지 않는 이상 의미가 없습니다.
코드:
let x=0 in
  x=4;write x
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 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