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

검색결과 17건 처리시간 0.025초

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 생성, 역파서 및 유사도 검사 알고리즘을 제시하며, 프로그램 복제 유형에 대해서 평가한다.

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

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

  • PDF

AST 와 CFG 에 기반한 Node.js 모듈 취약점 분석 (Node.js Module Vulnerability Analysis: Based on AST and CFG)

  • 김희연;오호균;김지훈;유재욱;신정훈;김경곤
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2019년도 추계학술발표대회
    • /
    • pp.475-478
    • /
    • 2019
  • 웹어플리케이션의 발전에 따라 자바스크립트 런타임 플랫폼인 Node.js 의 사용도 증가하고 있다. 개발자들은 Node.js 의 다양한 모듈을 활용하여 프로그래밍을 하게 되는데, Node.js 모듈 보안의 중요성에 비하여 모듈 취약점 분석은 충분히 이루어지지 않고 있다. 본 논문에서는 소스코드의 구조를 트리 형태로 표현하는 Abstract Syntax Tree 와 소스코드의 실행 흐름 및 변수의 흐름을 그래프로 나타내는 Control Flow Graph/Data Flow Graph 가 Node.js 모듈 취약점 분석에 효율적으로 활용될 수 있음을 서술하고자 한다. Node.js 모듈은 여러 스크립트 파일로 나누어져 있다는 점과 사용자의 입력이 분명하다는 특징이 있다. 또한 자바스크립트 언어를 사용하므로 선언된 변수들의 타입에 따라 적용되는 범위인 scope 가 다르게 적용된다는 특징이 있다. 본 논문에서는 이러한 Node.js 모듈의 특징을 고려하여 Abstract Syntax Tree 및 Control Flow Graph/Data Flow Graph 을 어떻게 생성하고 취약점 분석에 활용할 것인지에 대한 방법론을 제안하고, 실제 분석에 활용할 수 있는 코드 구현을 통하여 구체화시키고자 한다.

관계형 DBMS를 이용한 XML 질의 처리 시스템 XPERT의 개발 (XPERT : An XML Query Processing System using Relational Databases)

  • 정민경;홍동권
    • 정보처리학회논문지D
    • /
    • 제13D권1호
    • /
    • pp.1-10
    • /
    • 2006
  • 본 논문은 관계형 DBMS를 사용한 XML 질의 처리 시스템 XPERT(XML Query Processing Engine using Relational Technologies)의 개발 내용을 소개한다. 본 논문의 XPERT에서 제안하는 XML 저장 방식은 XML 문서를 여러 구성 성분별로 나누어 관계형 테이블에 저장하는 분할(decomposition 또는 shredded) 방식을 사용하고, 분할된 관계형 테이블을 바탕으로 XML 질의를 SQL로 변환하고, 관계형 DBMS에서 변환된 SQL을 실행하여 결과를 반환하는 방식을 사용한다. 제안한 XQuery 변환 방식은 먼저 XQuery의 구문 분석을 통하여 AST(Abstract Syntax Tree)를 생성하고, AST를 순회하면서 SQL 문장을 생성한다. 생성된 SQL 문장은 XML 문서의 경로를 사용함으로써 XQuery 연산의 조인 횟수를 감소시키며, 계층적 정보 검사나 문서에 내재된 결과의 순서를 지키기 위하여 사용하는 순서 정보는 Dewey 번호를 효과적으로 사용한다. 특히 XQuery의 XPath와 FLWOR 연산을 SQL로 변환하고 실행하는 효과적인 방법을 제시하고 제안된 XPERT시스템의 프로토타입을 개발하여 그 기능을 평가한다.

Evaluations of AI-based malicious PowerShell detection with feature optimizations

  • Song, Jihyeon;Kim, Jungtae;Choi, Sunoh;Kim, Jonghyun;Kim, Ikkyun
    • ETRI Journal
    • /
    • 제43권3호
    • /
    • pp.549-560
    • /
    • 2021
  • Cyberattacks are often difficult to identify with traditional signature-based detection, because attackers continually find ways to bypass the detection methods. Therefore, researchers have introduced artificial intelligence (AI) technology for cybersecurity analysis to detect malicious PowerShell scripts. In this paper, we propose a feature optimization technique for AI-based approaches to enhance the accuracy of malicious PowerShell script detection. We statically analyze the PowerShell script and preprocess it with a method based on the tokens and abstract syntax tree (AST) for feature selection. Here, tokens and AST represent the vocabulary and structure of the PowerShell script, respectively. Performance evaluations with optimized features yield detection rates of 98% in both machine learning (ML) and deep learning (DL) experiments. Among them, the ML model with the 3-gram of selected five tokens and the DL model with experiments based on the AST 3-gram deliver the best performance.

관계형 데이터베이스 환경에서의 XQuery Processor 설계 및 구현 (Design and Implementation of XQuery processor using Relational Technologies)

  • 정민경;홍동권
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2005년도 추계학술발표대회 및 정기총회
    • /
    • pp.23-26
    • /
    • 2005
  • XML이 발표되면서 대용량의 XML을 효과적으로 관리하는 여러 가지 방법들이 연구되고 있다. 특히 지금까지 상업적, 기술적으로 성공적이고 안정된 데이터 모델인 관계형 데이터베이스를 활용하는 여러 가지 방법들이 연구되고 있다. 본 논문은 관계형 DBMS를 사용하여 XML 질의어인 XQuery를 SQL로 변환하여 처리하는 효율적인 방법을 제안한다. 우선 본 논문에서 제안하는 방식은 XML문서를 분할하여 관계형 테이블에 저장하는 분할방식을 사용하며, 분할된 관계형 테이블을 이용하여 XPath를 포함한 XQuery의 기능을 실행하는 SQL을 생성하여 관계형 DBMS에서 SQL을 실행하는 방식을 사용한다. 제안한 XQuery 처리방식은 먼저 XQuery의 구문 분석을 통하여 AST(Abstract Syntax Tree)를 생성하고, AST를 순회하면서 SQL문장을 생성한다. 생성된 SQL문장은 XML 문서의 경로를 사용함으로써 XQuery 연산의 조인 횟수를 감소시키며, 각 노드마다 부여된 순서 정보를 효과적으로 사용하여 문서의 원래 순서에 맞는 XML 부분을 생성하는 방법을 제시한다. 그리고 실제 제안된 시스템을 개발하여 그 성능을 평가한다.

  • PDF

Design and Implementation of a Data Extraction Tool for Analyzing Software Changes

  • Lee, Yong-Hyeon;Kim, Kisub;Lee, Jaekwon;Jung, Woosung
    • 한국컴퓨터정보학회논문지
    • /
    • 제21권8호
    • /
    • pp.65-75
    • /
    • 2016
  • In this paper, we present a novel approach to help MSR researchers obtain necessary data with a tool, termed General Purpose Extractor for Source code (GPES). GPES has a single function extracts high-quality data, e.g., the version history, abstract syntax tree (AST), changed code diff, and software quality metrics. Moreover, features such as an AST of other languages or new software metrics can be extended easily given that GPES has a flexible data model and a component-based design. We conducted several case studies to evaluate the usefulness and effectiveness of our tool. Case studies show that researchers can reduce the overall cost of data analysis by transforming the data into the required formats.

구문 트리를 이용한 자바 바이트코드에서 SIL로의 번역기 (Java Bytecode-to-SIL Translator using an Abstract Syntax Tree)

  • 김영근;권혁주;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.519-522
    • /
    • 2004
  • 자바는 현재 가장 널리 사용되는 범용 프로그래밍 언어중 하나로 컴파일러에 의해 중간언어인 바이트코드로 변환되며 JVM(Java Virtual Machine)에 의해 실행되는 플랫폼 독립적인 언어이다. SIL(Standard Intermediate Language)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 중간언어로 가상기계인 EVM(Embedded Virtual Machine)에서 실행된다. 본 논문에서는 자바 프로그램을 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하여 자바로 구현된 프로그램이 EVM에서 실행되도록 하는 Bytecode-to-SIL 번역기 시스템을 구현하였다. 그리고 본 번역기 시스템을 다른 플랫폼에 용이하게 설치하기 위한 재목적성(retargetability)을 위해 단일패스(one-pass)을 사용하는 기존의 번역기들과 달리 AST를 이용한 컴파일러 기법을 사용하여 AST가 가지고 있는 정보에 대해 최적화 작업을 수행하여 보다 효과적인 코드 변환을 할 수 있도록 설계하였다.

  • PDF