게시판 인덱스

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

숙제 4] tracingEval에서 중복된 실행 경로

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



가입: 2008년 9월 2일
올린 글: 291
위치: 302동 312-2호

올리기올려짐: 2009년4월1일 17:39    주제: 숙제 4] tracingEval에서 중복된 실행 경로 인용과 함께 답변

안녕하세요? 지훈이입니다.

다름이 아니라, 숙제 4번에
tracingEval의 경우,

"가능한 입력값이 여럿 있으므로 이러한 실들의 다발이 모이게 된다."

라고 되어 있는데요,

1. 입력값이 달라도 같은 메모리 상태로 바뀌는 경우 다발 하나로 취급하나요, 아니면 여럿으로 취급하나요?

2. 메모리 전이 과정에서 실질적으로 메모리가 변하지 않는 경우, 다발에 두 번 써야 하나요? 한 번만 써야 하나요?



조교님께서 베풀어 주신 사랑에 감사드립니다.

--
여러분 모두 행복하세요.
_________________
강지훈
프로그래밍의 원리 조교

Jeehoon Kang
TA, Principles of Programming
위로
사용자 정보 보기 비밀 메시지 보내기
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년4월2일 0:38    주제: 인용과 함께 답변

인용:
1. 입력값이 달라도 같은 메모리 상태로 바뀌는 경우 다발 하나로 취급하나요, 아니면 여럿으로 취급하나요?

다발 하나로 취급합니다.

예를 들면
코드:

x := read + read

의 경우에 총 11 * 11 = 121 가지의 입력 조합이 가능하지만, 메모리는 21개만 나타나게 됩니다.

인용:
2. 메모리 전이 과정에서 실질적으로 메모리가 변하지 않는 경우, 다발에 두 번 써야 하나요? 한 번만 써야 하나요?


예를 들어서 다음과 같은 프로그램의 trace가 어떻게 되는지에 대한 질문인가요?

코드:

x := 1;
while x
skip


x에 대해서 1의 값을 반환하고, 다른 것을 가지지 않는 메모리를 m이라고할 때,

위의 프로그램에 대한 trace는 m::m::m::m::... 이 됩니다.

강지훈 학생의 질문을 인용한다면 "다발에 두 번 써야" 하겠네요.

이것을 물어본 것이 맞는지 궁금합니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
강지훈



가입: 2008년 9월 2일
올린 글: 291
위치: 302동 312-2호

올리기올려짐: 2009년4월2일 2:04    주제: 감사합니다 ㅋ 인용과 함께 답변

인용:
이것을 물어본 것이 맞는지 궁금합니다.


두 질문에 대한 조교님의 답변 모두 제 궁금증에 대한 답변이었습니다. 감사합니다.
_________________
강지훈
프로그래밍의 원리 조교

Jeehoon Kang
TA, Principles of Programming
위로
사용자 정보 보기 비밀 메시지 보내기
강지훈



가입: 2008년 9월 2일
올린 글: 291
위치: 302동 312-2호

올리기올려짐: 2009년4월4일 2:31    주제: 다시 한 번 여쭙습니다. 인용과 함께 답변

z := 0;
if read z := 1 z := 1

과 같은 코드의 경우,
{z -> 0} - {z -> 1}
이 유일하게 가능한 다발입니다.
하지만 이 다발에 대해 서로 다른 두 개의 실행 경로가 나타나는데요,
이 경우에도 같은 다발로 취급하여야 할까요?
_________________
강지훈
프로그래밍의 원리 조교

Jeehoon Kang
TA, Principles of Programming
위로
사용자 정보 보기 비밀 메시지 보내기
이광근



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

올리기올려짐: 2009년4월4일 20:00    주제: Re: 다시 한 번 여쭙습니다. 인용과 함께 답변

강지훈 씀:
z := 0;
if read z := 1 z := 1

과 같은 코드의 경우,
{z -> 0} - {z -> 1}
이 유일하게 가능한 다발입니다.
하지만 이 다발에 대해 서로 다른 두 개의 실행 경로가 나타나는데요,
이 경우에도 같은 다발로 취급하여야 할까요?


"기계상태"를 뭐로 정의하냐에 따라서 달라집니다.
"program counter"까지 가지고 있는경우와 그렇지 않은 경우.

-K
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년4월5일 8:53    주제: 인용과 함께 답변

인용:
"기계상태"를 뭐로 정의하냐에 따라서 달라집니다.
"program counter"까지 가지고 있는경우와 그렇지 않은 경우.


제공한 뼈대에서는

    1. 기계 상태를 "메모리"만을 포함하는 것으로 가정하고

    2. 이 상태에서 세 가지 함수를 작성하는 것

을 말씀드렸습니다.

하지만, 교수님께서 말씀하신 것처럼 기계 상태에 program counter, 즉
다음에 기계가 수행해야할 부분이 어디인지를 나타내는 정보가 포함될 수도
있습니다.

따라서 다음과 같은 사항을 말씀드리고자 합니다.

    1. 기계 상태는 메모리를 포함하는 것으로 정의하고 숙제를 하셔도
    무방합니다.

    2. 기계 상태를 어떻게 정의하느냐에 따라서 기계상태의 전이 과정의 기록인
    "trace" 역시 달라질 수 밖에 없습니다. 기계 상태를 메모리로 하는
    경우에는 a) 기계 상태인 메모리가 변화하는 것과(assignment), b)
    명시적으로 변화하지 않는다고 표시한 것(skip)에 집중해서 trace를
    기록하게 하는 것이 자연스러워 보입니다.

    교수님께서 말씀하신 pc를 포함하는 경우에는 보다 세밀하게 trace가
    기록되어야할 것입니다.

    3. 숙제를 구현하시다보면 질문할 사항들이 많이 있게 되는데, 그런
    질문들이 보이지 않아서 조교로서 의아함과 아쉬움이 있습니다. 예를 들어서
    저는 "Loc 타입의 값과 Int 타입의 값을 더하면(+) 어떻게 해야할까요?",
    "If문의 조건절에 Loc 타입의 값이 오면 어떻게 해야할까요?"와 같은
    질문들이 올라올 것을 예상하였는데 묻는 분이 없군요. 다들 어떻게
    처리하고 계신가요?

    단순히 주어진 문제의 해결에 집중하는 것이 아니라, 주어진 범위 안에서
    문제 자체를 이해하고 정의하는 과정을 통해서 배울 수 있는 것이 많이
    있다고 생각합니다. 교수님께서 숙제를 내시면서 기대하시는 것들 중에도
    이러한 것들이 포함되어 있지 않을까 짐작합니다.


많은 질문과 토론을 기대합니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
고윤석



가입: 2008년 9월 26일
올린 글: 11

올리기올려짐: 2009년4월6일 0:01    주제: 질문. 인용과 함께 답변

문맥상...
인용:
기계 상태는 메모리를 포함하는 것으로 정의하고 숙제를 하셔도
무방합니다.

라는 말은

기계 상태는 program counter를 포함하는 것으로 정의하고 숙제를 하셔도..

정도로 이해해도 될까요?

인용:
2. 기계 상태를 어떻게 정의하느냐에 따라서 기계상태의 전이 과정의 기록인
"trace" 역시 달라질 수 밖에 없습니다. 기계 상태를 메모리로 하는
경우에는 a) 기계 상태인 메모리가 변화하는 것과(assignment), b)
명시적으로 변화하지 않는다고 표시한 것(skip)에 집중해서 trace를
기록하게 하는 것이 자연스러워 보입니다.


사실 조교님이 먼저 스팩을 정의해주기를 원했었는데, 조금 꼬였군요.
그럼 이제는 제출자가 스팩을 정의하고 그에따라 구현한 후에 제출해야할 것 같은데, 숙제 제출에는 소스코드 뿐이니
각자가 정의한 스팩은 어떻게 올려야 할까요?

인용:
3. 숙제를 구현하시다보면 질문할 사항들이 많이 있게 되는데, 그런
질문들이 보이지 않아서 조교로서 의아함과 아쉬움이 있습니다. 예를 들어서
저는 "Loc 타입의 값과 Int 타입의 값을 더하면(+) 어떻게 해야할까요?",
"If문의 조건절에 Loc 타입의 값이 오면 어떻게 해야할까요?"와 같은
질문들이 올라올 것을 예상하였는데 묻는 분이 없군요. 다들 어떻게
처리하고 계신가요?


본 과목은 PL과목이 아니니 언어에 대한 부분은 소홀히 했던게 사실입니다.
하지만 "아마도" PL을 듣고 올라온 학생들은 당연히 타입 에러를 발생시키지 않았을까 싶은데요. PL을 듣지 않고 올라온 학생이라면 단순히 Exception을 발생시키는 것으로 해도 괜찮지 않을까요? 주어진 문제의 focus가 어떤것이냐에 핵심을 두고 싶습니다만..

감사합니다. Smile
_________________
ysko
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2009년4월6일 11:18    주제: 인용과 함께 답변

고윤석 씀:
기계 상태는 program counter를 포함하는 것으로 정의하고 숙제를 하셔도..

정도로 이해해도 될까요?


적어도 메모리를 포함하라는 뜻입니다.
program counter를 포함하여도 좋습니다.

고윤석 씀:

사실 조교님이 먼저 스팩을 정의해주기를 원했었는데, 조금 꼬였군요.
그럼 이제는 제출자가 스팩을 정의하고 그에따라 구현한 후에 제출해야할 것 같은데, 숙제 제출에는 소스코드 뿐이니
각자가 정의한 스팩은 어떻게 올려야 할까요?


게시판에 질문이 올라오고, 그 질문의 답들을 통해서 스펙이 정의되기를 원했는데, 그렇지 않았습니다. 지금이라도 어떻게 하는 것이 좋을지와 그 이유에 대해서 이야기해보는 것이 좋을 것 같은데요.

고윤석 씀:
본 과목은 PL과목이 아니니 언어에 대한 부분은 소홀히 했던게 사실입니다.
하지만 "아마도" PL을 듣고 올라온 학생들은 당연히 타입 에러를 발생시키지 않았을까 싶은데요. PL을 듣지 않고 올라온 학생이라면 단순히 Exception을 발생시키는 것으로 해도 괜찮지 않을까요? 주어진 문제의 focus가 어떤것이냐에 핵심을 두고 싶습니다만..


다음 글 https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=1608에서 말씀드린 것과 같이 Error exception을 발생시키면 됩니다.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2009) 시간대: GMT + 9 시간(한국)
페이지 11

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


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