게시판 인덱스

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

숙제4 안내사항 모음입니다.(0525 추가)

 
글 쓰기   답변 달기     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2017)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
이동권



가입: 2012년 9월 9일
올린 글: 191

올리기올려짐: 2017년5월18일 14:35    주제: 숙제4 안내사항 모음입니다.(0525 추가) 인용과 함께 답변

(0518)

이번 숙제에서는 도메인 정의는 자유입니다만 Powerset Domain과 Interval Domain을 사용하시는 것이 편할 것입니다.(제 감이 그렇다는 것이고, 굳이 따르실 필요는 없습니다.)

그리고 한가지 팁을 더 드리자면 정확도를 높이기 위해 bot을 두가지로 정의하시는 것이 좋을 것입니다. 도달할 수 없는 프로그램 위치라는 뜻의 bot과, 아직 정의되지 않았다는 의미의 bot 두가지를 사용하시면 좋습니다. CPO상에서는 도달할 수 없는 프로그램 위치라는 뜻의 bot이 가장 아래에 있을 것이고(CPO상에서의 진짜 바텀), 아직 정의되지 않았다는 의미의 bot은 그 바로 위에 있으면서 다른 모든 원소보다 아래에 있을 것입니다. while이나 if문의 정확도 향상에 대해 고민해보셨던 분들은 유용하게 사용하실 수 있는 팁입니다.

뼈대코드에 example이 삭제되었습니다. 추후 좀더 의미있는 공개용 테스트케이스를 만들어 제공해드리겠습니다.

뼈대코드에 도메인 구현에 도움을 드릴 수 있는 파일들을 추가하였습니다.(domfuntor, domexample) 숙제3을 제대로 구현하셨다면 밑바닥부터 도메인 구현하시는 것에 추가비용이 거의 들지 않으시겠지만 그렇지 않으신 분들은 이 파일들의 함수로부터 도움을 받는 것이 좋을 것입니다.


(0519 추가 - 팁)

다빈치코드 분석기는 숙제3과는 다르게 프로그램의 모든 실행지점에서의 메모리상태를 분석해야 합니다. 이를 위한 여러가지 방법이 있을 수 있는데, 쉽게 생각할 수 있는 구현 중 하나는 analyzer함수 외부의 글로벌한 메모리 리스트를 하나 관리하면서 analyzer함수 진행에 따라 계산되어 나오는 실행지점 메모리들을 그 리스트에 추가하는 방법이 있을 것입니다.


(0520 추가)

학생 한분께서 질문을 주셨는데, 다빈치분석기에서 정수값도메인을 1867로 나눈 나머지의 powerset domain을 사용하면 < 연산에 대해 항상 TOP의 결과가 나올 수 밖에 없냐는 내용이었습니다. 매우 좋은 질문이었고, 이에 대해 팁을 드리자면 단순히 나머지의 powerset domain이 아니라 (몫, 나머지) 쌍의 powerset domain을 사용하면 정확도를 더 올릴 수 있다는 것입니다. 물론 이렇게되면 도메인이 무한도메인이 되기때문에 축지법과 다듬기를 사용하여야 유한시간내에 끝남을 보장할 수 있을 것입니다. 혹은 몫 부분의 정확성을 조금 포기하고 유한도메인으로 구성할 수도 있겠구요.

물론 정수비교에 대한 정확도를 포기하고 TOP으로 처리하셔도 됩니다.



(0522 추가)

뼈대코드의 domExample.ml이 수정되었습니다. Var관련된 모듈 정의가 빠져있어서 추가하였습니다.


(0525 추가)

뼈대코드에 간단한 예시들이 추가되었습니다. 과제스펙 이해에 도움되시기 바랍니다. 실제 테스트는 이것보다는 더 복잡한 프로그램들로 이루어질 예정입니다.

무한루프로 인해 끝나지 않는 프로그램도, 하나의 변수가 확실히 1867로 나눈 나머지가 415라면 다빈치코드입니다.

분석기 실행시간이 30초를 넘어가면 틀린 것으로 간주하겠습니다.(구현에 따라 분석이 끝나지 않는 수준으로 실행시간이 길어지거나 메모리가 부족해질만큼 공간을 많이쓸수도있기 때문에 제한을 걸어두겠습니다.) 적당한 와이드닝 기법을 활용하시면 시간제한에 걸려서 틀리실 일은 없을것입니다.(휴리스틱이긴 하지만 간단한 해결책이 있습니다.)



-조교 드림
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4541.664A Program Analysis (Spring 2017) 시간대: GMT + 9 시간(한국)
페이지 11

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


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