|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
강동현
가입: 2011년 9월 26일 올린 글: 19
|
올려짐: 2016년6월11일 16:19 주제: Davinci의 Don't Know 에 대해 질문이 있습니다. |
|
|
안녕하세요. Davinci구현 및 테스트 중 don't know에 대해 의문점이 들어 질문하게 되었는데요,
제가 생각한 don't know는 "프로그램 실행 상태에 따라, davinci code를 만족할수도 있고, 아닐수도 있음" 이라고 생각했는데요,
이때 프로그램의 실행 상태를 변화시킬 수 있는 요인에는 주어진 semantics를 보면 "readint" expression을 쓰는 부분밖에는 없다고 생각이 됩니다. (그 외에는 프로그램 실행 형태가 하나로 정해지게 되겠죠?)
그래서 readint 값에 따라서 이 코드가 davinci 코드가 될 수 있으면 don't know를 출력하였는데, 예제를 보니 이런 경우에는 no를 출력하게 되어 있더라고요.
그렇다면 (readint에 의해 no/yes가 둘 다 가능하면 no가 될 경우) 사실상 don't know는 의미가(필요가) 없는 것이 아닌가요? |
|
위로 |
|
|
강동현
가입: 2011년 9월 26일 올린 글: 19
|
올려짐: 2016년6월12일 0:57 주제: 몇가지 까다로울 것 같은 예제 달아봅니다. |
|
|
(eo)
x := readInt ;
y := x + x
(davinci)
x := readInt ;
y := x + (-x) + 415 |
|
위로 |
|
|
최재승
가입: 2012년 9월 10일 올린 글: 211
|
올려짐: 2016년6월12일 14:56 주제: |
|
|
안녕하세요,
인용: | 제가 생각한 don't know는 "프로그램 실행 상태에 따라, davinci code를 만족할수도 있고, 아닐수도 있음" 이라고 생각했는데요, |
다빈치 코드인지 여부는 프로그램이 주어지면 예/아니오 중 하나로 결정됩니다. 다시 말해, 하나의 프로그램이 실행 상태에 따라 다빈치코드인지 여부가 변하는 것이 아닙니다.
어떤 프로그램이 "어떤 변수가 있어서, 실행중에 그 변수가 가지는 정수값은 항상 1867으로 나누어 나머지가 415이다" 를 만족한다면 이것은 다빈치 코드입니다.
만약 프로그램 실행 상태에 따라 어떤 변수도 저 조건을 만족하지 않게 된다면, 그 프로그램은 다빈치 코드가 아닙니다.
"don't know" 가 필요한 것은, 임의의 프로그램에 대해서 정적 분석이 정확하게 다빈치 코드인지 여부를 답해주는 것이 불가능하기 때문입니다. (수업자료 6.pdf 참조)
주어진 프로그램의 다빈치 코드 여부를 여러분의 분석기가 정확히 판단하지 못하겠는 경우 "don't know"를 리턴하시면 됩니다
조교 드림. |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|