• Title/Summary/Keyword: Java AST

Search Result 12, Processing Time 0.028 seconds

Java API Pattern Extraction and Recommendation using Collocation Analysis (연어 관계 분석을 통한 Java API 패턴 추출 및 추천 방법)

  • Kwon, Chanwoo;Hwang, Sangwon;Nam, Youngkwang
    • Journal of KIISE
    • /
    • v.44 no.11
    • /
    • pp.1165-1177
    • /
    • 2017
  • Many developers utilize specific APIs to develop software, and to identify the use of a particular API, a developer can refer to a website that provides the API or can retrieve the API from the web. However, the site that provides the API does not necessarily provide guidance on how to use it while it can be partially provided in many other cases. In this paper, we propose a novel system JACE (Java AST collocation-pattern extractor) as a method to reuse commonly-used code as a supplement. The JACE extracts the API call nodes, collocation patterns and analyzes the relations between the collocations to extract significant API patterns from the source code. The following experiment was performed to verify the accuracy of a defined pattern: 794 open source projects were analyzed to extract about 15M API call nodes. Then, the Eclipse plug-in test program was utilized to retrieve the pattern using the top 10 classes of API call nodes. Finally, the code search results from reference pages of the API classes and the Searchcode [1] were compared with the test program results.

Design and Implementation of an X3D to Java 3D translator (X3D-Java 3D 번역기의 설계 및 구현)

  • 김윤기;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.10a
    • /
    • pp.320-322
    • /
    • 2000
  • 인터넷의 빠른 발전과 하드웨어 속도의 향상에 의해 가상현실이 점차 일반 사용자에게도 가깝게 다가서고 있다. 인터넷 가상현실 언어의 표준인 VRML이 XML의 개발과 발전에 의해 차기 버전을 XML의 장점인 용이한 확장성을 수용하는 X3D라 명명하고 표준화를 진행 중이다. 강력한 Java 3D API와 플랫폼 독립적인 바이트코드의 장점을 살려 표준화 단계인 X3D를 별도의 브라우저 없이도 Java 애플릿을 이용하여 재생할 수 있도록 하고자 하며 또한 앞으로 개발될 X3D 저작도구의 결과물을 Java 3D로 변환하여 Java 3D로 변환하여 Java 3D에 의한 3차원 영상 제작을 손쉽게 구현할 수 있도록 한다. 이를 위한 방법으로 X3D를 Java 3D로 변환하는 번역기가 필요하다. 따라서 본 논문에서는 X3D-Java 3D 번역기의 구조를 설계하고 구현 방법을 제시하고자 한다. XML 파서를 이용하여 X3D를 파싱하고 그의 출력인 AST를 순회하면서 Java 3D 파일을 생성한다. X3D DTD와 Java 3D 클래스의 구조 정보를 독립된 자료로 처리하여 계속 변하게 될 두 언어의 변화에 유동적으로 대처하면서 구현 방법의 큰 변화없이 이용할 수 있게 설계하고자 한다.

  • PDF

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

  • Kim, Young-Koun;Kwon, Hyeok-Ju;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • 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

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

  • Son, Min-Sung;Park, Jin-Ki;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • 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

Design of an X3D to Java 3D translator (X3D - Java 3D 번역기의 설계)

  • Kim, Yun-Kee;Oh, Se-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.04a
    • /
    • pp.145-148
    • /
    • 2000
  • 인터넷의 빠른 발전과 하드웨어 속도의 향상에 의해 가상현실이 점차 일반 사용자에게도 가깝게 다가서고 있다. 인터넷 가상현실 언어의 표준인 VRML이 XML의 개발과 발전에 의해 차기 버전을 XML의 장점인 용이한 확장성을 수용하는 X3D라 명명하고 표준화를 진행 중이다. VRML의 경우 전송 시 파일 크기의 문제를 안고 있고, X3D로 진보하면서 역시 같은 문제를 해결하기 위하여 보다 효율적인 전송 포맷에 대한 연구가 진행되고 있다. X3D의 효율적 전송을 위한 바이너리 스트림 개발의 일환으로 바이트코드를 제안하고, 강력한 Java 3D API와 플랫폼 독립적인 바이트코드의 장점을 살려 표준화 단계인 X3D를 별도의 브라우저 없이도 Java 애플릿을 이용하여 재생할 수 있도록 하고자 한다. 이를 위한 방법으로 X3D를 Java 3D로 변환하는 번역기가 필요하다. 따라서 본 논문에서는 X3D-Java 3D 번역기의 구조를 설계하고 구현 방법을 제시하고자 한다. XML 파서를 이용하여 X3D를 파싱하고 그의 출력인 AST를 순회하면서 Java 3D 파일을 생성한다. X3D DTD와 Java 3D 클래스의 구조, 계층 관계 정보를 독립된 자료로 작성하여 계속 변하게 될 두 언어의 변화에 유동적으로 대처하면서 소스 코드의 큰 변화 없이 이용할 수 있게 설계하고자 한다.

  • PDF

Building a UML class diagram using Java code analysis techniques (Java 코드 분석기법을 이용한 UML 클래스 다이어그램 생성 방법)

  • 한무희;김경수;김현수
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04c
    • /
    • pp.133-135
    • /
    • 2003
  • 본 연구에서는 자바 코드로부터 UML 클래스 다이어그램을 추출하는 역공학방법을 제시하였다. 파서를 이용하여 자바 코드로부터 AST를 생성하고 이를 순회하면서 클래스다이어그램 생성에 필요한 정보를 추출하였다. 이를 위해 구조정보와 관계정보를 정의하였는데, 구조정보에서는 클래스 몸체를 구성하는 정보를 표현하였다. 관계정보에서는 클래스들 간의 연관관계를 결정하기 위해 필요한 정보를 표현하였으며, 얻어진 관계정보를 통해 연관관계를 유추하는 방법을 제시하였다. 특히 클래스들간의 연관관계를 추출하기 위한 규칙들을 정의하고, 이를 통해 얻어진 관계정보를 이용하여 연관관계를 유출하는 과정을 설명하였다.

  • PDF

Retargetable Oolong-to-SIL IL Translator (재목적 Oolong-to-SIL 중간 언어 번역기)

  • 권혁주;김영근;이양선
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2004.05a
    • /
    • pp.310-313
    • /
    • 2004
  • 자바는 컴파일러에 의해 아키텍처 독립적인 바이트코드로 구성된 바이너리 형태의 클래스 파일을 생성하면 JVM에 의해 하드웨어와 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어로 현재 가장 널리 사용되는 범용 프로그램 언어중 하나이다. EVM(Embedded Virtual Machine)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 자바 프로그램을 EVM에서 실행 될 수 있도록 자바 프로그램을 컴파일하여 생성된 클래스 파일로부터 Oolong 코트를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하는 Oolong-to-SIL 번역기 시스템을 구현하였다. 번역기 시스템을 정형화하기 위해 Oolong 코드의 명령어 등을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였고, 파싱테이블을 가지고 파서를 설계하였다 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 SIL 코드를 생성하도록 번역기 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다. 이와 같이 번역기를 구성함으로써 목적기계의 중간언어 형태에 따라 중간언어 번역기를 자동으로 구성할 수 있어 재목적성(Retargetability)을 높일 수 있다.

  • PDF

Java Bytecode-to-.NET MSIL IL Translator (자바 바이트코드의 .NET MSIL 중간언어 번역기)

  • Jung, Ji-Hoon;Park, Jin-Ki;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2003.11b
    • /
    • pp.663-666
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사의 제임스 고슬링(James Gosling)에 의해 고안된 언어로 운영체제 및 하드웨어 플랫폼에 독립적인 차세대 언어로 최근에 가장 널리 사용하는 범용 프로그래밍 언어 중 하나이다. 자바 프로그램은 컴파일러에 의해 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드로 변환된 클래스 파일로 생성되면 JVM(Java Virtual Machine)에 의해 실행된다. 마이크로소프트사의 .NET 플랫폼과 C# 언어는 프로그래머들의 요구를 충족시키고 썬사의 JVM 환경과 자바 언어에 대응하기 위해서 개발된 플랫폼과 언어이다. C#과 같은 .NET 언어는 컴파일러에 의해 MSIL(MicroSoft Intermediate Language) 코드로 번역되며 번역된 MSIL 코드는 .NET 플랫폼 환경에서 런타임 엔진인 CLR(Common Language Runtime)에 의해 실행이 된다. 자바로 작성된 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성된 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 이런 이유로 본 논문에서는 자바소스를 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 생성하고 생성된 Oolong 코드를 .NET의 MSIL 코드로 변환하여 자바로 구현된 프로그램이 .NET 환경에서 실행되도록 하는 Bytecode-to-MSIL 번역기 시스템을 구현하였다. 따라서, 자바 프로그래머는 JVM이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다. 번역기 시스템의 구현을 정형화하기 위해 Oolong 코드의 명령어들을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였으며, 파싱테이블을 가지고 파서를 설계하였다. 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 MSIL 코드를 생성하도록 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다.

  • PDF

The Declarations Reconstruction Technique for the Symbol Table Verification of the Object-oriented Compiler (객체지향 컴파일러의 심벌 테이블 검증을 위한 선언문 복원 기법)

  • Son, Min-Sung;Kwon, Hyeok-Ju;Kim, Young-Keun;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.11a
    • /
    • pp.669-672
    • /
    • 2006
  • 본 연구팀은 유비쿼터스 게임 플랫폼을 위한 Embedded C++ 컴파일러를 개발하였으며, 컴파일러 개발 과정에서 객체지향언어인 C++과 Java 언어를 모두 수용할 수 있는 심벌 테이블을 설계하였다. 심벌 테이블은 컴파일러의 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 생성된 AST(Abstract Syntax Tree)를 분석하여 인식된 명칭(identifier)과 그 속성(attribute)들을 수집하여 저장하는 자료구조로써, 심벌 테이블에 저장된 속성들은 의미 분석(semantic analysis) 단계에서 수집된 속성과 참조된 명칭의 사용이 타당한지를 검사하고, 코드 생성(code generation) 단계에서 올바른 코드가 생성되도록 하는 중요한 요소이다. 따라서 심벌 테이블의 설계가 올바른지와 입력된 속성이 정확한지에 대한 검증과 분석은 필수 불가결하다. 본 논문에서는 컴파일러 개발과정에서 설계한 심벌 테이블을 검증하고 분석하기 위한 목적으로써 심벌 테이블을 이용하여 선언문을 복원시키는 역번역기(detranslator)에 대하여 기술한다. 구현된 역번역기는 C++ 컴파일러와 Java 컴파일러의 선언문 처리 과정에서 심벌 테이블에 입력된 속성들을 본래의 입력 프로그램으로 역번역한다. 따라서 역번역기를 통하여 심벌 테이블의 완전성과 심벌 테이블에 입력된 속성 정보의 정확성을 쉽게 검증할 수 있으며, 역번역과 함께 출력되는 디버그 정보를 이용하여 효율적으로 컴파일러의 개발과 수정을 할 수 있다.

  • PDF

Design and Implementation of the VoiceXML Interpreter for Voice Web-service (음성 웹서비스를 위한 VoiceXML 해석기의 설계 및 구현)

  • 신현경;강동남;염세훈;유재우
    • The Journal of the Acoustical Society of Korea
    • /
    • v.20 no.4
    • /
    • pp.42-47
    • /
    • 2001
  • In this paper, we propose an interpreter, which recognizes the VoiceXML markups, verifies the validation of the document, and interprets the VoiceXML documents using DI parser and the generated AST by the parser. The VoiceXML interpreter consists of DI parser and executor, and the DI parser uses recursive descent parsing technology, and the executor uses FIA (Form Interpretation Algorithm) proposed by VXML forum. This system uses the Java language in order to develop the runtime environment for VoiceXML efficiently, thus this system has portability.

  • PDF