게시판 인덱스

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

C-- 에 대한 질문.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2006)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
손님






올리기올려짐: 2006년5월4일 16:58    주제: C-- 에 대한 질문. 인용과 함께 답변

2번 숙제의 답을 보면

Mㅏ x => M(x)

M ㅏ *x => M(M(x)

그리고

M ㅏ &x => x

라고 되어 있습니다.

일단 질문이

저 시메틱스에 따라

메모리가

addr var val
0 x 0
1 y 7
2 z 8

이 상태일 때

k = &y 라는 구문을 만나면

3 k y
3 k 1 중 무엇이 추가되어야 할까요?

다음 질문에 의해 후자가 적당해 보입니다[...]

만약 전자라면 k = &y + &y 라는 구문을 실행했을 때

val 부분에 2y-_-;;;; 를 넣을 수는 없을 테니
k = 2를 넣으면 되는거겠지요?

그러면, C에서와 마찬가지로 C--에서도 세폴-_-이 발생할 수 있습니다.

addr var val
0 x 0
1 y 7
2 z 8

k = *y <--- 아싸 좋구나 세폴

-_-;;; 어쩔까요?

혼자서 낸 결론으로는

1. val에는 실제 메모리처럼 숫자만 들어가고, x ,y 같은 식으로 주소가 들어가지 않는다(주소끼리 + - 연산이 되므로)
2. 세폴이 나면 적절히 Exception을 발생시키고 끝.
3. 주소값은 적절히 assign되며, free같은건 없다.

이렇게 해도 되겠지요?^_^?
위로
손님






올리기올려짐: 2006년5월4일 17:00    주제: 역시 뱀다리 인용과 함께 답변

아 그리고, 저 말은 메모리 상태를 겉에서 보았을 때 메모리가 갖고 있는 내용 중에 x y 이런건 전혀 없고

그러니까 말하자면

mem (addr->int)

로 구현하겠다는 것입니다.

상관없겠지요^_^?
위로
정찬주(cholonge)
손님





올리기올려짐: 2006년5월4일 17:00    주제: 진짜 뱀다리 인용과 함께 답변

저 위의 두 글을 쓴 건 접니다[..]
위로
진민식



가입: 2006년 3월 21일
올린 글: 67

올리기올려짐: 2006년5월4일 21:55    주제: 인용과 함께 답변

인용:
2번 숙제의 답을 보면

Mㅏ x => M(x)

M ㅏ *x => M(M(x)

그리고

M ㅏ &x => x

라고 되어 있습니다.

일단 질문이

저 시메틱스에 따라

메모리가

addr var val
0 x 0
1 y 7
2 z 8



모법답안으로 올려진 semantics를 보면,
메모리의 상태가
addr val
x 0
y 7
z 8

처럼 만들어 집니다.

인용:
만약 전자라면 k = &y + &y 라는 구문을 실행했을 때

val 부분에 2y-_-;;;; 를 넣을 수는 없을 테니
k = 2를 넣으면 되는거겠지요?

그러면, C에서와 마찬가지로 C--에서도 세폴-_-이 발생할 수 있습니다.

k = &y + &y 란 문장은 모법담안에서 정의한 semantics에서는
정의가 안되는 operation입니다.(runtime error라고 생각하시면 됩니다.)
모봄답안에서 정의한 semantics에서는 주소는 Var입니다.
Var 끼리의 +, Var에 대한 -, 등등은 정의가 되어 있지 않습니다.
주소끼리의 = 연산은 정의해도 되고 (같은 Var), 정의하지 않고 error
라고 생각하셔도 될 것 같습니다.

인용:
1. val에는 실제 메모리처럼 숫자만 들어가고, x ,y 같은 식으로 주소가 들어가지 않는다(주소끼리 + - 연산이 되므로)
2. 세폴이 나면 적절히 Exception을 발생시키고 끝.
3. 주소값은 적절히 assign되며, free같은건 없다.

1. 위와 같이 하려면 C-- 의 semantics를 새로 정의해야 할 것 같습니다.
주소끼리 +,- 연산이 가능하도록 하도록.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
정찬주



가입: 2006년 4월 30일
올린 글: 4

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

k = &y 라는 구문을 만나면

3 k y
3 k 1 중 무엇이 추가되어야 할까요?

라는 답변을... 하시려다가 말아주셨네요 ㅠㅠ(문맥상 3 k y로 생각이 됩니다)

그리고 제가 구현하겠다고 한 것에 대해서

숙제2모범답안을 따르라는 것인지( 3 k y ;;;Wink

저대로 구현해도 된다는 것인지가 궁금합니다

저 메모리 구조가 굉장히 하부 구조이기 때문에

바뀌면 프로그램을 갈아 엎어야 하므로 ㅠ.ㅠ;

오늘 코딩은 여기서 더 할 수가 없습니다[...]
위로
사용자 정보 보기 비밀 메시지 보내기
진민식



가입: 2006년 3월 21일
올린 글: 67

올리기올려짐: 2006년5월5일 1:46    주제: 인용과 함께 답변

인용:
k = &y 라는 구문을 만나면

3 k y
3 k 1 중 무엇이 추가되어야 할까요?


제가 드린 답변은 C-- symantics가 모범답안에 따른다고
가정했을 때의 얘기 입니다. 그렇다면, C--의 메모리는
Loc -> Val 이 되고, Loc = Var 가 됩니다.
즉 2개의 column(Loc, Val)을 가지고 있는 table의 형태가
될 것 입니다.
ex)
Loc Val
x 1
y x
z 2

정찬주님께서 예로 올리신 메모리를 보면,

3 k y

와 같이 정의 하셨습니다.저는 이걸 Mem = (Addr,Var) -> Val
로 이해를 하였습니다.
그래서 3을 address를 의미하는 것으로 쓰셨다면,
그래서 address끼리의 연산을 지원하시겠다고 하신다면,
C--의 semantics를 그에 맞게 수정하셔야 할 것 입니다.

모범답안과 다른 semantics를 생각하고 계신다면,
새롭게 정의한 semantics 가 어떤건지도 명시해주셨으면 합니다.
그래야 test 결과가 제대로 나오는 것인지 알 수 있을 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2006) 시간대: GMT + 9 시간(한국)
페이지 11

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


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