A Program-Plagiarism Checker using Abstract Syntax Tree

구문트리 비고를 통한 프로그램 유형 복제 검사

  • 김영철 (숭실대학교 컴퓨터학과) ;
  • 김성근 (가톨릭상지대학 컴퓨터정보계열) ;
  • 염세훈 (동서울대학 전자계산학과) ;
  • 최종명 (숭실대학교 컴퓨터학과) ;
  • 유재우 (숭실대학교 컴퓨터학부)
  • Published : 2003.08.01

Abstract

Earlier program plagiarism check systems are performed by using simple text, attribute or token string base on match techniques. They have difficulties in checking program styles which have nothing to do with program syntax such as indentation, spacing and comments. This paper introduces a plagiarism check model which compares syntax-trees for the given programs. By using syntax-trees, this system can overcome the weekness of filtering program styles and have advantage of comparing the structure of programs by syntax and semantic analysis. Our study introduces syntactic tree creation, unparsing and similarity check algorithms about C/C++ program plagiarism checking for internet cyber education and estimate plagiarism pattern.

기존의 프로그램 유형 복제 검사 시스템들은 단순한 텍스트 기반의 프로그램 복제 검사나, 속성 및 토큰 스트링을 이용하여 복제 검사를 수행한다. 이 시스템들은 들여쓰기, 여백, 설명문과 같은 프로그램의 구문과 상관없는 프로그램 스타일에 어려움을 갖고 있다. 본 연구에서는 서로 다른 두 프로그램의 구문트리를 이용하여 복제 검사를 수행하는 모델을 제시한다. 구문트리를 이용한 프로그램 유형 복제 검사는 프로그램 스타일에 취약한 기존의 복제 검사 시스템의 단점을 극복할 수 있으며, 구문분석과 의미분석을 통해 프로그램의 구조적인 검사까지 수행할 수 있다는 장점을 가지고 있다. 또한 본 시스템은 인터넷이나 사이버 교육 체제에서 대량의 C/C+. 언어의 프로그램 복제 검사를 수행하기 위하여 AST 생성, 역파서 및 유사도 검사 알고리즘을 제시하며, 프로그램 복제 유형에 대해서 평가한다.

Keywords

References

  1. E. L. Jones, 'Metrics Based Plagiarism Monitoring,' In 6th Annual CCSC Nortesastern Conference, Middlebury, Vermont, April 20-21, 2001
  2. G. Whale, 'Identification of Program Similarity in Large Populations,' The Computer Journal 33(2), pp. 140-146, 1990 https://doi.org/10.1093/comjnl/33.2.140
  3. A.V. Aho, R. Sethi and J. D. Ullman. Compilers : Principles, Techniques, and Tools. Addison Wesley. March 1988
  4. J. R. Levine, T. Mason & D. Brown, lex & yacc, O'Reilly & Associates, Inc. 1995
  5. B. Baker. 'On Finding duplication and near-duplication in large software systems,' In Proc. IEEE Working Conf. on Reverse Eng., pp. 86-95, July 1995 https://doi.org/10.1109/WCRE.1995.514697
  6. K. Kontogiannis, R. Demori, E. Merlo, M. Bernstein. 'Pattern matching for clone and concept detection,' Automated Software Eng., 3(1-2): 77-108, 1996 https://doi.org/10.1007/BF00126960
  7. Halstead, M. Howard, Elements of software Science, Elsevier. 1977
  8. K. J. Ottenstein, 'An algorithmic approach to the detection and prevention of plagiarism,' ACM SIGSCE Bulletin, 8(4):30-41, 1976 https://doi.org/10.1145/382222.382462
  9. J. L. Donaldson, A. M. Lancaster, and Paul H. 'Sposato. A plagiarism detection system,' ASM SIGSCE Bulletin(Proc. of 12th SIGSCE Technical Symp.), 13(1):21-25, February 1981
  10. H.L. Berghel and D. L. Sallach, 'Measurements of program similarity in identical task environments,' ACM SIGPLAN Notices, 19(8):65-76, August 1984 https://doi.org/10.1145/988241.988245
  11. M. J. Wise, 'Detection of similarities in student programs:YAP'ing may be preferable to Plague'ing,' ACM SIGSCE Bulletin(Proc. of 23rd SIGCSE Technical Symp.), 24(1):268-271, March 1992
  12. A. Aiken, 'MOSS(Measure Of Software Similarity) Plagiarism detection system,' http://www.cs.cerkeley.edu/~moss/and personal communication, 1998. University of Berkeley, CA. April 2000
  13. L. Prechelt, G. Malpohl, M. Philppsen. 'JPlag: Finding plagiarism among a set of programs,' http://wwwipd.ira.uka.de/EIR/D 76128 Karlsruhe, Germany. Technical Report 2000-1, march 28, 2000
  14. D. Gitchell and N. Tran. 'Sim: A Utility For Detecting Similarity in Computer Programs,' In Proceeding of 30th SCGCSE Technical Symposium, New Orleans, USA. pp. 266-270, 1998 https://doi.org/10.1145/384266.299783
  15. X. Chen, M. Li, B. Mckinnon and A. Seker. 'A Theory of Uncheatable Program Plagiarism Detection and Its Practical Implementation,' University of California, SantaBarbara, unpublished document. May 5, 2002
  16. 정재은, 김영철, 김상헌, 유재우. 'AST를 이용한 프로그램 유사도 평가 시스템 설계', 정보과학회 가을 학술대회, 26(2):403-432, October, 1999
  17. 정재은, 김영철, 유재우. '프로그램 복제 검사 시스템', 정보과학회 봄 학술대회, 27(1):59-61, April, 2000
  18. 장성순, 서선애, 이광근. '프로그램 유사성 검사기', 정보과학회 가을 학술대회, 28(2):334-336, October, 2001
  19. 황미녕, 강은미, 조환규. '유전체 서열의 정렬 기법을 이용한 소스 코드 표절 검사', 제21회 정보과학논문경진대회 입상작, 2002
  20. M. J. Wise. 'String similarity via greedy string tiling and running Karp Rabin matching,' Dept. of CS, University of Sydney, Australia. ftp://ftp.cs.su.oz.au/michaelw/doc/RKR_GST.ps, December 1993
  21. http://www.cs.nott.ac.uk/Department/Staff/ef/ceilidh/papers/Oracle.html, E. Foxley, 'The Oracle program,' LTR Report, Computer Science Dept, Nottingham University 1992