• 제목/요약/키워드: Abstract Syntax Tree

검색결과 33건 처리시간 0.032초

AST를 이용한 프로그램 유사도 평가 시스템 설계 (A Design of the Similarity Evaluation System using Abstract Syntax Tree)

  • 정재은;김영철;김상헌;유재우
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.430-432
    • /
    • 1999
  • 본 논문에서는 AST(Abstract Syntax Tree)를 이용하여 서로 다른 프로그램의 유사도를 측정하는 방법을 제시한다. 지금까지 유사도 평가 방법은 거의 제시되지 않고 프로그램의 비교평가 연구는 찾아볼 수가 없다. 본 시스템은 서로 다른 여러 프로그램을 입력받아 파싱함으로써 AST를 생성하여 생성된 AST를 유사도 측정에 이용한다. 따라서 다른 비교 측정 시스템보다 비용과 속도 면에서 경제적이고 빠르게 유사도를 검출해 낼 수 있으며, 또한 신속히 평가 결과를 학생들에게 피드백 함으로써 큰 학습성과를 기대할 수 있다.

  • PDF

추상구문트리를 이용한 구문지향 XML 문서 편집기 (A Syntax-Directed XML Document Editor using Abstract Syntax Tree)

  • 김영철;유두규
    • 인터넷정보학회논문지
    • /
    • 제6권2호
    • /
    • pp.117-126
    • /
    • 2005
  • 기존의 XML 문서 편집기는 일반 텍스트 위주의 편집을 하고 내부적으로 구문적 검사를 하지 않는다. 따라서 작성된 XML 문서가 잘 설계(well-formed) 되었는지 유효(valid) 문서인지를 검사하지 못한다. 본 논문에서는 XML 문서를 편집하는데 있어서 구문에 맞도록 설계할 수 있는 구문지향 편집기를 설계하고 구현한다. 또한 트리 기반의 편집기로 구현되어 있기 때문에 향후에 XML 문서 확장이 용이하며, 다른 시스템과는 달리 실시간으로 유효성을 검증할 수 있도록 설계되었다. 본 시스템은 향후에 XML 관련 어플리케이션 개발에 많은 영향을 줄 것으로 기대된다.

  • PDF

구문트리 비고를 통한 프로그램 유형 복제 검사 (A Program-Plagiarism Checker using Abstract Syntax Tree)

  • 김영철;김성근;염세훈;최종명;유재우
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제30권7_8호
    • /
    • pp.792-802
    • /
    • 2003
  • 기존의 프로그램 유형 복제 검사 시스템들은 단순한 텍스트 기반의 프로그램 복제 검사나, 속성 및 토큰 스트링을 이용하여 복제 검사를 수행한다. 이 시스템들은 들여쓰기, 여백, 설명문과 같은 프로그램의 구문과 상관없는 프로그램 스타일에 어려움을 갖고 있다. 본 연구에서는 서로 다른 두 프로그램의 구문트리를 이용하여 복제 검사를 수행하는 모델을 제시한다. 구문트리를 이용한 프로그램 유형 복제 검사는 프로그램 스타일에 취약한 기존의 복제 검사 시스템의 단점을 극복할 수 있으며, 구문분석과 의미분석을 통해 프로그램의 구조적인 검사까지 수행할 수 있다는 장점을 가지고 있다. 또한 본 시스템은 인터넷이나 사이버 교육 체제에서 대량의 C/C+. 언어의 프로그램 복제 검사를 수행하기 위하여 AST 생성, 역파서 및 유사도 검사 알고리즘을 제시하며, 프로그램 복제 유형에 대해서 평가한다.

추상구문트리를 이용한 어스팩트 마이닝 프로세스 설계 (Aspect Mining Process Design Using Abstract Syntax Tree)

  • 이승형;송영재
    • 한국콘텐츠학회논문지
    • /
    • 제11권5호
    • /
    • pp.75-83
    • /
    • 2011
  • 어스팩트 지향 프로그래밍은 시스템에서 크로스커팅 개념을 추출하고 소프트웨어 모듈화를 통하여 기능의 분산과 코드의 혼란을 해결하기 위한 패러다임이다. 현존하는 어스팩트 개발 방법은 크로스커팅 대상 영역을 추출에 어려움이 있기 때문에, 어스팩트 마이닝을 적용하기가 쉽지 않다. 어스팩트 마이닝에서는 기존 프로그램의 리팩토링 요소를 크로스커팅 영역으로 변환하는 기술이 필수적이다. 본 논문에서는 리팩토링에 적합한 크로스커팅 영역 자동 추출을 위한 시스템에서 크로스커팅 개념을 추출하기 위한 어스팩트 마이닝 방법을 제안한다. 소스 모듈의 추상 구문구조 명세를 이용하여, 모듈의 구조적 중복 관계 요소를 추출한다. Apriori 알고리즘을 통하여 중복 구문트리를 생성하고, 크로스커팅 영역 대상인 중복된 소스 모듈을 자동 생성, 최적화 할 수 있다. Berkeley Yacc의 berbose.c 모듈을 제안하는 마이닝 프로세스에 적용해 본 결과, 원본 대비 9.47%의 길이와 부피의 감소하였고, CCFinder 대비 4.92%의 길이 감소, 5.11%의 부피 감소 효과를 확인하였다.

구문트리에서 키워드 추출을 이용한 프로그램 유사도 평가 (A Program Similarity Evaluation using Keyword Extraction on Abstract Syntax Tree)

  • 김영철;최재영
    • 정보처리학회논문지A
    • /
    • 제12A권2호
    • /
    • pp.109-116
    • /
    • 2005
  • 본 논문에서는 프로그램의 분석 과정에서 생성된 구문트리에서 키워드만을 추출하여 유사도 평가하는 방법을 소개한다. 이 방법은 기존의 구조 기반 방법과 같이 프로그램 구조적 특징에 상관없이 유사도를 평가한 수 있으며, 구문트리의 키워드만을 평가에 이용함으로써 기존 시스템의 단점이었던 속도를 개선할 수 있었다. 따라서 본 논문에서는 유사도 평가 모델을 제시하고, 생성된 구문트리에서 키워드를 추출하는 방법을 제시하였다. 본 논문의 평가 부분에서는 기존 시스템에 비해 본 시스템이 구조적 특징이나 속도 면에서 많이 개선되었다는 것을 보여주었다. 따라서 본 시스템은 향후에 텍스트 위주의 문서의 유사도나 XML과 같은 전자 문서의 유사도 평가에 지대한 영향을 줄 것으로 기대된다.

Tree-Pattern-Based Clone Detection with High Precision and Recall

  • Lee, Hyo-Sub;Choi, Myung-Ryul;Doh, Kyung-Goo
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제12권5호
    • /
    • pp.1932-1950
    • /
    • 2018
  • The paper proposes a code-clone detection method that gives the highest possible precision and recall, without giving much attention to efficiency and scalability. The goal is to automatically create a reliable reference corpus that can be used as a basis for evaluating the precision and recall of clone detection tools. The algorithm takes an abstract-syntax-tree representation of source code and thoroughly examines every possible pair of all duplicate tree patterns in the tree, while avoiding unnecessary and duplicated comparisons wherever possible. The largest possible duplicate patterns are then collected in the set of pattern clusters that are used to identify code clones. The method is implemented and evaluated for a standard set of open-source Java applications. The experimental result shows very high precision and recall. False-negative clones missed by our method are all non-contiguous clones. Finally, the concept of neighbor patterns, which can be used to improve recall by detecting non-contiguous clones and intertwined clones, is proposed.

다중 뷰 편집환경을 위한 점진적 다중진입 지원 파서에 대한 연구 (A Study of Incremental and Multiple Entry Support Parser for Multi View Editing Environment)

  • 염세훈;방혜자
    • 디지털산업정보학회논문지
    • /
    • 제14권3호
    • /
    • pp.21-28
    • /
    • 2018
  • As computer performance and needs of user convenience increase, computer user interface are also changing. This changes had great effects on software development environment. In past, text editors like vi or emacs on UNIX OS were the main development environment. These editors are very strong to edit source code, but difficult and not intuitive compared to GUI(Graphical User Interface) based environment and were used by only some experts. Moreover, the trends of software development environment was changed from command line to GUI environment and GUI Editor provides usability and efficiency. As a result, the usage of text based editor had decreased. However, because GUI based editor use a lot of computer resources, computer performance and efficiency are decreasing. The more contents are, the more time to verify and display the contents it takes. In this paper, we provide a new parser that provide multi view editing, incremental parsing and multiple entry of abstract syntax tree.

추상 구문 트리 기반의 개발자별 소스 코드 지분 분석 (Analyzing Developer's Share of Code Based on Abstract Syntax Tree)

  • 이용현;김기섭;정우성
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2015년도 제52차 하계학술대회논문집 23권2호
    • /
    • pp.23-24
    • /
    • 2015
  • 소프트웨어 프로젝트에서 발생하는 버그의 수가 증가함에 따라 이를 수정할 적합한 개발자를 효과적으로 찾기 위한 연구들이 진행되었다. 하지만, 대부분의 연구들이 텍스트 기반의 라인 변경을 통해 얻은 정보만을 활용하기 때문에 정확도가 떨어지며, 파일, 클래스, 함수와 같은 다양한 계층 단위에 대한 처리가 어렵다. 본 논문은 개발자의 코드 변경 정보를 추적함으로써 기여도를 보다 정확하게 계산하고, 다양한 코드 수준에서의 분석을 효과적으로 지원하는 AST기반의 지분 계산 접근법을 제안한다.

  • PDF

MVC 프레임 워크를 사용한 VoiceXML 다중 뷰 편집기의 설계 및 구현 (A Design and Implementation of the VoiceXML Multiple-View Editor Using MVC Framework)

  • 유재우;염세훈
    • 한국음향학회지
    • /
    • 제23권5호
    • /
    • pp.390-399
    • /
    • 2004
  • 본 논문에서는 음성 웹 언어인 VoiceXML의 작성 효율을 향상하기 위한 다중 뷰 편집기를 설계 및 구현하였다. VoiceXML 다중 뷰 편집기는 다중 뷰를 제공하기 위해 MVC (Model-View-Controller) 프레임워크을 이용하였다. MVC 프레임워크를 이용한 다중 뷰 편집기는 핵심 자료구조인 모델과 인터페이스인 뷰, 모델과 뷰를 제어하기 위한 제어기로 구성된다. MVC 프레임워크에서 모델은 추상 구문 트리와 추상 문법으로 구성되며 뷰는 역파싱 규칙과 역파서로 구성되고 제어기는 명령어 처리기와 트리 조작기로 구성된다. VoiceXML 다중 뷰 편집기는 문서의 구조, 내용, 흐름을 동시에 보여주어 기존 XML 편집기의 단점을 극복할 수 있다. MVC 프레임워크가 적용된 VoiceXML 다중 뷰 편집기는 여러 편집기를 통해 동시에 다양한 편집 뷰 (View)를 제공함으로써 사용자에게 음성 웹 문서 작성의 편의성을 제공하여 효율을 높일 수 있으며 여러 개의 뷰가 하나의 모델을 가짐으로써 편집기들의 무결성을 보장하도록 하였다.

코드 필터링 기법을 이용한 iOS 환경에서의 패치 분석 방법론 (Efficient method for finding patched vulnerability with code filtering in Apple iOS)

  • 조제경;류재철
    • 정보보호학회논문지
    • /
    • 제25권5호
    • /
    • pp.1021-1026
    • /
    • 2015
  • 피싱 피해의 확대에 따라 정부 및 기관의 대응이 빨라지면서 피싱 공격은 더욱 발전하여 악성코드 및 취약점 활용에까지 이어지고 있다. 최근 마이크로 소프트의 패치가 발표될 때 마다 해당 취약점을 이용한 공격 기술이 공개되고 이를 악용하는 사례가 늘어나고 있다. 따라서 방어하는 입장에서도 패치를 분석하고 대응하기 위한 기술의 수요가 증가하였으며, 이로 인하여 다양한 패치 분석 방법론이 등장하였다. 하지만 이는 마이크로 소프트 제품에 맞춘 경우가 많으며 모바일 환경을 대상으로 이루어지지는 않았다. iOS와 같은 모바일 장치의 경우 운영체제를 구성하는 파일의 크기가 작고 개수가 많기 때문에 빠르게 비교해주는 기능이 필요하다. 따라서 본 연구는 기존의 연구에서 사용하던 Control Flow Graph나 Abstract Syntax Tree 방법이 아닌 기계어 코드에 최적화된 코드 필터링 방법을 이용한 패치 비교 방법론을 연구하여 안전한 모바일 환경을 구축하기 위한 기반을 마련하고자 한다.