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

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

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

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.

무선 인터넷 서비스를 위한 HTML Filter의 설계 및 개발 (A Design and Implementation of HTML Filter for Wireless Internet Service)

  • 정삼진
    • 한국산학기술학회논문지
    • /
    • 제9권6호
    • /
    • pp.1659-1665
    • /
    • 2008
  • 본 논문에서는 무선 인터넷 서비스를 보다 원활하게 제공하기 위해서 HTML Filter의 설계 및 개발을 제안한다. HTML Filter는 HTML로 작성된 웹 문서를 WAP 환경에 맞는 휴대용 무선 장비에 적합한 WML 문서로 자동으로 변환한다. HTML Filter는 HTML 프로그램을 토큰 단위로 구분하는 "HTML 어휘 분석기", 어휘 분석 단계에서 만들어진 토큰들을 받아 들여서 프로그램의 문법적 구조를 분석하는 "HTML 구문 분석기", HTML 프로그램의 의미를 보다 효율적으로 표현할 수 있는 중간언어인 "HTML 추상구문트리", 그리고 중간언어인 추상구문트리를 WML 프로그램으로 변환하는 "목적 코드 WML 생성기"로 구성되어 있다. 기존의 컴파일러 개발 기술을 이용하여 제안된 번역 방식은 기존의 방식보다 개발하기 쉽고 효율적이어서 다른 무선 언어 변환 방식에도 응용할 수 있을 것으로 본다.

C++ 중간 코드를 이용한 CHILL96 컴파일러의 설계 및 구현 (Design and Implementation of a CHILL96 Compiler Using C++ Intermediate Code)

  • 금창섭;이준경;이동길;이병선
    • 한국정보처리학회논문지
    • /
    • 제7권5호
    • /
    • pp.1559-1569
    • /
    • 2000
  • 본 논문에서는 ITU-T에서 통신시트템 구현을 위해 제안된 CHILL96 언어를 C++언어로 변환하는 컴파일러의 설계 및 구현에 관하여 기술하였다. C++ 코드를 생성하기 위해서 CHILL96 언어에서 C++ 언어로서 변환 규칙을 고안하였다. ChILL96 컴파일러는 심볼 테이블과 추상구문트리와 밀접한 관계를 갖는 구문 분석기, 가시싱 제어기, 의미 분석기, 코드 생성기로 이루어져 있다. 또한, 본 논문에서 기술한, CHILL96 컴파일러는 이전에 개발된 다른 CHILL 컴파일러들에 비해 우수한 성능을 보여주었다. 이 논문에서 개발된 CHILL96컴파일러는 성능과 이식성의 향상 이외에도 기존에 CHILL로 개발된 통신 소프트웨어들을 C++로 변환함으로써 신규 기능의 추가니 유지보수에서 편의성을 높였다.

  • PDF

Ideograph를 이용한 최적화 및 병렬성 정보 표현에 관한 연구 (A Study on the Optimization and Parallelism Information Representation using Ideograph)

  • 정성옥;고광만
    • 지능정보연구
    • /
    • 제6권2호
    • /
    • pp.41-47
    • /
    • 2000
  • 최적화란 비효율적인 코드를 구분해 내서 실행 속도 및 기억 공간의 효율성을 높여 주는 방법으로 컴파일러의 각 단계에서 수행된다. Augustus K. Uht에 의해 제안된 Ideograph는 입력 프로그램에 대한 제어 의존성과 자료 의존성에 관한 정보를 동시에 표현할 수 있어 코드 최적화 단계에서 효과 적으로 이용될 수 있으며 프로그램에 존재하는 병렬성을 표현하는데 효과적이다. 구문 트리는 원시 프로그램을 정보를 효율적으로 표현할 수 있는 중간 표현으로서 컴파일러 구 현에 널리 사용되고 있다. 본 논문에서는 원시 프로그램의 중간 표현이 구문 트리를 입력으로 받아 최적화 정보를 추출한 후 제어 흐름 및 자료 흐름 분석 정보를 추출하여 제어 의존성과 자료 의 존성을 Ideograph에 동시에 표현한다.

  • PDF

Feasibility Study Of Functional Programming In Scala Language By Implementing An Interpreter

  • Sugwoo, Byun
    • 한국컴퓨터정보학회논문지
    • /
    • 제28권2호
    • /
    • pp.111-119
    • /
    • 2023
  • 본 논문에서는 스칼라 언어의 함수형 프로그래밍 기능의 타당성에 대해서 검토한다. 주된 관심사는 스칼라가 어느 정도까지 람다 식, 고차 함수, 제너릭 타입, 대수적 타입, 모나드 등 함수형 프로그래밍의 주요 특성을 표현할 수 있는 가에 있다. 이 목적을 위하여 명령형 프로그래밍 언어의 인터프리터를 구현한다. 동일한 함수형 프로그래밍 기법을 적용하여 인터프리터를 하스켈과 스칼라로 구현한 다음, 이 두 버전의 구현을 비교 분석한다. 명령형 프로그래밍 언어의 추상 구문트리는 스칼라의 제너릭스를 갖는 대수적 타입과 enum 클래스로서 표현되고, 명령형 프로그래밍의 상태 변환은 상태 모나드를 이용하여 구현된다. 또한 스칼라의 새로운 기능인 extension과 given도 사용된다.

공통 토큰에 기반한 서로 다른 언어의 유사성 검사 (Cross-Language Clone Detection based on Common Token)

  • 홍성문;김현하;이제형;박성우;모지환;도경구
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제14권2호
    • /
    • pp.35-44
    • /
    • 2018
  • 서로 다른 언어로 작성된 소스코드의 유사성 검사는 주로 요약구문트리를 기반으로 비교를 수행한다. 하지만 대규모의 소스코드를 실용적인 수준으로 비교하려면 토큰수준 기반에서 작동하는 유사성 검사 기술이 필요하다. 본 연구에서는 서로 다른 언어에서 생성되었지만 같은 의미를 지닌 토큰을 표현할 수 있는 공통 토큰을 정의하고, 소스코드에서 언어별 처리 과정을 거쳐 생성한 공통 토큰의 나열을 입력으로 소스코드의 유사성 검사를 수행하는 방법을 제안한다. 한국저작권위원회의 표절검사 도구 exEyes를 사용해서 서로 다른 언어로 작성된 동일한 코드를 대상으로 실험한 결과, 제안한 방법을 사용했을 때, 유사성 평가 성능이 향상됨을 보였다.

XML을 이용한 스크립트 언어 XTML 의 설계 및 응용 (Design and Application of XTML Script Language based on XML)

  • 정병희;박진우;이수연
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제5권6호
    • /
    • pp.816-833
    • /
    • 1999
  • 스타일 정보를 중심으로 하는 기존의 워드 프로세서의 출력 문서들을 차세대 인터넷 문서인 XML문서방식에 따라서 표기하고 또한 제목, 초록, 장 및 단락 등과 같은 논리적인 구조를 반영할 수 있도록 구조화함으로써 문서들의 상호교환뿐만 아니라 인터넷에서 유효하게 사용할 수가 있다. 본 논문에서는 스타일 또는 표현 속성 중심으로 하는 다양한 문서의 평면 구조를 XML의 계층적인 논리적인 구조로, 또한 다양한 DTD(Document Type Definition)환경하에서 변경시킬 수가 있는 변환 스크립트 언어를 표현할 수 있도록 하기 위하여 XTML(XML Transformation Markup Language)을 DTD형식으로 정의하고 이를 이용하여 변환 스크립트를 작성하였으며 자동태깅에 적용하여 보았다.XTML은 그 인스턴스에 해당하는 변환 알고리즘의 효과적인 수행을 위하여 즉 기존의 XML문서를 효과적으로 다루기 위하여 문서를 GROVE라는 트리 구조로 만들어 저장하고 또한 이를 조작할 수 있는 기능 및 다양한 명령어 인터페이스를 제공하였다. Abstract Output documents of existing word processors based on style informations or presentation attributes can be structured by converting them into XML(Extensible Markup Language) documents based on hierarchically logical structures such as title, abstract, chapter and so on. If so, it can be very useful to interchange and manipulate documents under Internet environment. The conversion need the complicate process calling auto-tagging by which elements of output documents can be inferred from style informations and sequences of text etc, and which is different from various kinds of simple conversion.In this paper, we defined XTML(XML Transformation Markup Language) of DTD(Document Type Definition) form and also defined the script language as instances of its DTD for the auto-tagging. XTML and its DTD are represented in XML syntax.Especially XTML includes various functions and commands to generate tree structure named as "GROVE" and also to process, store and manipulate the GROVE in order to process efficiently XML documents.documents.

DTV 콘텐츠 검증 시스템을 위한 Java 컴파일러의 개발 (Development of a Java Compiler for Verification System of DTV Contents)

  • 손민성;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 춘계학술발표대회
    • /
    • pp.1487-1490
    • /
    • 2007
  • 디지털 위성방송의 시작과 더불어 본격적인 데이터 방송의 시대가 열렸다. 데이터방송이 시작 되면서 데이터방송용 양방향 콘텐츠에 대한 수요가 급속하게 증가하고 있다. 하지만 양방향 콘텐츠 개발에 필요한 저작 도구 및 검증 시스템은 아주 초보적인 수준에 머물러 있는 것이 현실이다. 그러나 방송의 특성상 콘텐츠 상에서의 오류는 방송 사고에까지 이를 수 있는 심각한 상황이 연출 될 수 있다. 본 연구 팀은 이러한 DTV 콘텐츠 개발 요구에 부응하여, 개발자의 콘텐츠 개발 및 사업자 또는 기관에서의 콘텐츠 검증이 원활이 이루어 질수 있도록 하는 양방향 콘텐츠 검증 시스템을 개발 중이다. 양방향 콘텐츠 검증 시스템은 Java 컴파일러, 디버거, 미들웨어, 가상머신, 그리고 IDE 등으로 구성된다. 본 논문에서 제시한 자바 컴파일러는 양방향 콘텐츠 검증 시스템에서 데이터 방송용 자바 애플리케이션(Xlet)을 컴파일하여 에뮬레이팅 하거나 런타임 상에서 디버깅이 가능하도록 하는 바이너리형태의 class 파일을 생성한다. 이를 위해 Java 컴파일러는 *.java 파일을 입력으로 받아 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 AST(Abstract Syntax Tree)를 생성한다. 클래스링커는 생성된 AST를 탐색하여 동적으로 로딩 되는 파일들을 연결하여 AST를 확장한다. 의미 분석과정에서는 확장된 AST를 입력으로 받아 참조된 명칭의 사용이 타당한지 등을 검사하고 코드 생성이 용이하도록 AST를 변형하고 부가적인 정보를 삽입하여 ST(Semantic Tree)를 생성한다. 코드 생성 단계에서는 ST를 입력으로 받아 이미 정해 놓은 패턴에 맞추어 Bytecode를 출력한다.ovoids에서도 각각의 점들에 대한 선량을 측정하였다. SAS와 SSAS의 직장에 미치는 선량차이는 실제 임상에서의 관심 점들과 가장 가까운 25 mm(R2)와 30 mm(R3)거리에서 각각 8.0% 6.0%였고 SAS와 FWAS의 직장에 미치는 선량차이는 25 mm(R2) 와 30 mm(R3)거리에서 각각 25.0% 23.0%로 나타났다. SAS와 SSAS의 방광에 미치는 선량차이는 20 m(Bl)와 30 mm(B2)거리에서 각각 8.0% 3.0%였고 SAS와 FWAS의 방광에 미치는 선량차이는 20 mm(Bl)와 30 mm(B2)거리에서 각각 23.0%, 17.0%로 나타났다. SAS를 SSAS나 FWAS로 대체하였을 때 직장에 미치는 선량은 SSAS는 최대 8.0 %, FWAS는 최대 26.0 %까지 감소되고 방광에 미치는 선량은 SSAS는 최대 8.0 % FWAS는 최대 23.0%까지 감소됨을 알 수 있었고 FWAS가 SSAS 보다 차폐효과가 더 좋은 것으로 나타났으며 이 두 종류의 shielded applicator set는 부인암의 근접치료시 직장과 방광으로 가는 선량을 감소시켜 환자치료의 최적화를 이룰 수 있을 것으로 생각된다.)한 항균(抗菌) 효과(效果)를 나타내었다. 이상(以上)의 결과(結果)로 보아 선방활명음(仙方活命飮)의 항균(抗菌) 효능(效能)은 군약(君藥)인 대황(大黃)의 성분(成分) 중(中)의 하나인 stilbene 계열(系列)의 화합물(化合物)인 Rhapontigenin과 Rhaponticin의 작용(作用)에 의(依)한 것이며, 이는 한의학(韓醫學) 방제(方劑) 원리(原理)인 군신좌사(君臣佐使) 이론(理論)에서 군약(君藥)이 주증(主症)에 주(主)로 작용(作用)하는 약물(藥物)이라는 것을 밝혀주는 것이라고

  • PDF