게시판 인덱스

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

semantics가 정의되지 않은 부분이 많습니다.
페이지로 이전  1, 2, 3
 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김덕환



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

올리기올려짐: 2005년10월5일 2:18    주제: 인용과 함께 답변

서상원 씀:

제 눈은
코드:
val x = 1
...
val x = "new" // (1)
...


코드:
var x
...
x := 1
...
x := "new" // (2)
...

를 (거의) 같은 코드로 보고 있습니다. 영역의 헤더를 본다는 말이 정확히 무슨 뜻인지는 모르겠습니다만, (1) 위치에서 x의 타입을 결정하는 것과 (2) 위치에서 x의 타입을 결정하는 것에 별 차이가 없을 것 같습니다.


헤더라는 얘기는 LET (id, E1, E2)에서 id와 E1를 가리키는 말이었습니다. 다른 타입의 값을 ASSIGN하는 것을 허용하지 않는다면 변수 x의 타입을 알려면 가까운 LET (x, E1, E2)의 E1을 들여다 보면 됩니다. 반면, 허용하는 경우에는 영역 내의 어디서든지 타입이 변할 수 있습니다. IF2 (E, x:= 1, x:= "new")같은 분기라든가 그 변수가 call-by-reference 함수 호출의 인자로 쓰인다던가 하면 프로그램의 런타임 실행 흐름을 다 따라가보지 않으면 x의 타입을 알 수가 없습니다.

서상원 씀:

다른 타입의 재할당을 허용하지 않는다면 프로그래머가 변수에 할당할 때마다 "내가 이 변수에 이미 값을 할당했었는지, 했었다면 어떤 타입의 값이었는지"를 확인해야하는 불편함이 있지 않을까요?

뭐, 실상은 선언과 할당을 분리하면서 "처음 할당하는 순간, 변수의 타입을 결정한다"라는 개념이 "싫어서" 그런 겁니다. 선언할 때 타입을 정하던지, 선언과 할당을 동시에 하면 좋을 것 같은데 말입니다. (차라리 선언없이 사용하던지..) Smile


제가 이 부분의 상원 님 말씀을 잘못 이해한 게 아닐까 싶습니다만, K-의 LET이 선언과 할당(초기화?)를 동시에 하는 게 아닐까요?

@ 이렇게 얘기하지만, K- 의미 정의할 때 ASSIGN에서 타입 검사를 하지 않도록 했습니다. 콜록콜록. Embarassed
_________________
TheyAreAsSmartAsYouAre
위로
사용자 정보 보기 비밀 메시지 보내기
서상원



가입: 2005년 9월 27일
올린 글: 33

올리기올려짐: 2005년10월5일 20:21    주제: 인용과 함께 답변

제가 숙제 스펙을 오해하고 있었더군요. "var x"를 "변수 선언"으로 생각했는데 변수 "사용"이더군요.

험험험... 잊어주세요. ㅡ_ㅡ;;
(얼른 뇌세척을 받던지 해야...)
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2005) 시간대: GMT + 9 시간(한국)
페이지로 이전  1, 2, 3
페이지 33

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


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