최현일
가입: 2015년 9월 3일 올린 글: 14
|
올려짐: 2017년9월14일 0:38 주제: 질문입니다 (숙제와 무관) |
|
|
어떤 두 프로그램이 논리구조가 동일한지 어떻게 검증하는지 궁금합니다.
보통 수업에서 프로그래밍 숙제를 제출하면 조교님들이 테스트 케이스를 입력해서 아웃풋과 비교해서 검사를 하는 것으로 압니다.
그런데 이런 방식이, 프로그램이 잘 만들어졌는지 완전히 보장하지 않는다는 것은 너무도 자명합니다. 가령 테스트 케이스의 인풋만큼의 switch문을 만들어서 출력을 뽑아내면? 물론 조교님이 직접 코드를 보면서 확인할 수도 있겠지만, 어쨌든 입력된 테스트 케이스만큼의 인폿에 대해서 동일한 아웃풋을 낸다는 건 다른 프로그램과 마찬가지일겁니다.
또, 이런 무식한 방법을 쓰지 않고 정상적으로 프로그래밍을 했다 쳐도, 내 프로그램이 n개의 테스트 케이스를 통과했다고 해서 n+1번째도 통과할수 있을것인가에 대한 확신이 없습니다. 그냥 여태 잘 통과했으니 다음것도 통과해주겠지 하고 믿을뿐. 그러다 뻑나면 fail..
우리가 수업에서 배우는 내용들은, 함수형 프로그래밍 언어를 사용하여, 수학적 논리구조를 그대로 반영한 프로그래밍을 배우는 것으로 압니다. 그런데 이것을 거꾸로 하려면 어떻게 해야하는가, 즉 프로그램이 주어졌을때 이 프로그램의 논리 구조를 만들어내는것... 요새 과재를 하면서 많이 고민을 하지만 실마리가 안보입니다. 이 내용은 연구실에서 주로 하는 분야 같기도 한데.. 맞죠?
잘 모르는 뉴비에게 공부거리라도 던져주시면 감사하겠습니다. |
|