• Title/Summary/Keyword: 중간코드

Search Result 197, Processing Time 0.029 seconds

Design of Intermediated code for Efficient Analysis of Bytecode (바이트코드의 효율적인 분석을 위한 중간코드의 설계)

  • Kim Kyung Soo;Kim Ki Tea;Jo Sun Moon;Yoo Weon-Hee
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.11b
    • /
    • pp.430-432
    • /
    • 2005
  • 자바 언어는 객체 지향 언어이며 이식성에 좋은 언어로써 각광을 받고 있다. 하지만 자바 프로그램은 이식성은 좋지만 실행 시 인터프리터 방식으로 사용하기 때문에 실행속도가 느리다는 단점이 있다. 또한 바이트코드는 스택기반의 코드이기 때문에 코드 단편화 문제점과 스택 접근 연산들을 사용하여 프로그램 분석이 용이 하지 않고, 단순한 변환을 복잡하게 만들 수 있다는 단점이 있다. 따라서 바이트코드 자체로 분석과 최적화하기가 용이 하지 못하다. 본 논문에서는 바이트코드의 분석을 위한 트리구조 중간코드를 제안 한다. 트리구조 중간코드는 스택기반 코드의 문제점을 보완하고, 기존에 3-주소 형태의 최적화 기법들을 적용할 수 있다는 장점이 있다. 본 논문은 바이트코드와 각종 정보를 가지고 있는 클래스 파일을 입력받아 분석 후 기본블록을 나누고 BNF코드를 바탕으로 트리구조 중간코드를 생성하게 된다. 생성된 중간코드를 가지고 제어 흐름 그래프를 만들게 된다. 이러한 방식으로 트리구조 중간코드를 설계하게 된다.

  • PDF

Design and Implementation of a Decompiler for Verification and Analysis of Intermediate Code in C++ Compiler (C++ 컴파일러에서 중간코드의 검증과 분석을 위한 역컴파일러의 설계 및 구현)

  • Bae Sung-Kyun;Kim Young-Keun;Lee Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.1405-1408
    • /
    • 2006
  • C++ 언어는 객체지향 프로그래밍 언어로, 기존의 C++ 프로그램은 각각의 플랫폼에 따른 컴파일러를 통해 목적기계의 코드(object code)로 변환되므로 실행되는 플랫폼에 의존적인 단점이 있다. 이러한 단점을 보완하는 방법으로 스택기반의 가상기계와 가상기계의 입력형태인 중간코드를 이용하는 기법이 있다. EVM(Embedded Virtual Machine)은 ANSI C, ISO/IEC C++ 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템 기반의 가상기계이며, EVM에서 실행되는 중간코드인 SIL(Standard Intermediate Language)은 객체지향 언어와 순차적인 언어를 모두 수용하기 위한 명령 코드의 집합으로 설계되어 있다. 본 논문에서는 C++ 컴파일러를 통해 생성된 SIL 코드가 올바른지 검증하고 원시코드의 분석을 용이하게 하기 위해서 SIL 코드를 어셈블리 코드와 유사한 형태의 재 표현된 C++ 프로그램으로 역컴파일하는 시스템을 설계하고 구현하였다.

  • PDF

A Study on the Target Code Generation Rule Description from Bytecode (Bytecode로부터 목적 기계 코드 생성 규칙 기술에 관한 연구)

  • Ko, Kwang-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2001.04b
    • /
    • pp.1033-1036
    • /
    • 2001
  • 컴파일러 후단부 개발시 중간 코드로부터 목적기계 코드를 생성하기 위해서는 각각의 중간 코드 명령어를 목적기계 코드로 치환하는 방법과 다양한 중간 코드 패턴에 대한 목적기계 코드 생성 규칙을 기술하는 방법으로 구분된다. 특히, 컴파일러 후단부 전체를 재구성하지 않고 중간 코드로부터 목적기계 코드를 생성하는 정형화된 규칙을 이용하면 다양한 목적기계 코드를 효율적으로 생성할 수 있다. 본 논문은 Bytecode로부터 정형화된 코드 생성 규칙을 이용하여 Pentium기계에 대한 코드 생성이 가능하도록 코드 생성 규칙 기술 모델을 제시하며 실질적으로 목적기계 코드 생성시에 참조 가능한 정보를 생성하는 코드-생성기 생성기를 연구한다 본 연구를 통해서 Bytecode로부더 다양한 목적기계 코드를 생성할 수 있는 정형화된 코드 생성 규칙 기술 방법을 얻을 수 있다.

  • PDF

A Study on RSIL to LLVM IR Translator For Verification of Intermediate Code on IoT Virtual Machine (IoT 가상기계의 중간코드 검증을 위한 RSIL to LLVM IR 변환기의 설계 및 구현)

  • Cho, Jaehyeon;Choi, Chanwhi;Son, Yunsik;Lee, YangSun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2017.04a
    • /
    • pp.1135-1137
    • /
    • 2017
  • 본 논문은 IoT 장치에서 동작하는 가상기계의 중간코드를 LLVM IR 코드로 변환하는 코드 변환기를 설계 및 구현하였다. LLVM 인터프리터를 통해 RSIL 코드로부터 변환된 LLVM IR 코드를 실행하고, 그 결과를 비교하여 IoT 가상기계의 중간코드를 검증하였다.

Design and Implementation of Intermediate Code Translator for Native Code Generation from Bytecode (바이트코드로부터 네이티브 코드 생성을 위한 중간 코드 변환기의 설계 및 구현)

  • 고광만
    • Journal of Korea Multimedia Society
    • /
    • v.5 no.3
    • /
    • pp.342-350
    • /
    • 2002
  • The execution speed is not an important factor for Java programming language when implementing small size application program which is executed on the web browser, but it becomes a serious limitation when the huge-size programs are implemented. To overcome this problem, the various research is conducted for translating the Bytecode into the target code which can be implemented in the specific processor by using classical compiling methods. In this research, we have designed and realized an intermediate code translator for the native code generation system with which we can directly generate i386 code from Bytecode to improve the execution speed of Java application programs. The intermediate code translator generates the register-based intermediate code from *.class files which are the intermediate code of Java.

  • PDF

Design of Translator for Efficient Intermediated Code from Stack Based Codes in CTOC (CTOC에서 스택 기반 코드를 효율적인 중간코드로 변환기 설계)

  • Kim Kyung-Soo;Kim Ki-Tae;Jo Sun-Moon;Yoo Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.11a
    • /
    • pp.429-432
    • /
    • 2004
  • 자바 언어는 객체지향 언어이며 효율적인 애플리케이션을 개발하기 위해 설계되었다. 특히 다양한 개발 환경과 이식성에 맞는 언어로써 각광을 받고 있다. 하지만 자바 언어로 애플리케이션을 개발하면 다른 언어로 작성하는 것 보다 실행이 느리다는 단점을 가지고 있다. 이러한 자바 실행 속도를 극복하기 위해 많은 연구가 되고 있는데, 그 중에서도 JIT방식과 네이티브 코드로 변환 방식이 있다. 본 논문은 스택기반의 자바 바이트코드에서 3-주소 형태로 변환하여 최적화하는 CTOC중에서 바이트코드에서 3-주소 형태 즉 CTOC-T의 중간 표현인 CTOC-B를 설계하려 한다. CTOC-B는 스택기반의 중간표현으로써 자바 바이트코드보다 코드의 변환과 분석이 용이하게 만든 형태의 표현이다. 본 논문에서는 자바 바이트코드에서 스택기반 중간코드인 CTOC-B 코드로의 효율적인 변환기를 설계하며, CTOC-B의 특징을 분석해 본다.

  • PDF

Design and Implementation of Intermediate Language Translator using Code Expansion Technique from Bytecode (바이트코드로부터 코드 확장 기법을 이용한 중간 언어 변환개의 설계 및 구현)

  • 고광만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2002.04b
    • /
    • pp.334-336
    • /
    • 2002
  • 자바 프로그래밍 언어는 웹 브라우저에서 실행되는 작은 크기의 응용 프로그램 수행에서는 실행 속도문제가 중요한 요소가 아니지만 대형 프로그램의 수행에서는 실행 속도가 현저히 저하되는 단점을 지니고있다. 이러한 문제점을 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트코드를 특정 프로세서에 적합한 목적기계 코드로 변환하는 다양만 연구가 진행중이다. ; 연구에서도 자바 응용 프로그램의 실행 속도의 개선을 위해 바이트코드로부터 직접 i386 코드를 생성하는 네이티브 코드 생성 시스템을 위한 중간 언어 변환기를 설계하고 구현한다. 중간 언어 변환기는 자바 언어의 중간 언어인 *.class 파일을 입력으로 받아 레지스터 기반의 중간 언어로 변환한다. 변환한다.

  • PDF

A Survey of the Scheme of Data Type and Variables Inference for Intermediate Language Generation from Binary Code (중간언어 생성을 위한 바이너리 코드 자료형 및 변수 추론 기술 조사 분석)

  • Min, Ye Sul;Jung, Hyunoh;Son, Yunsik;Jeong, Junho;Ko, Kangman;On, Seman
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2017.04a
    • /
    • pp.283-286
    • /
    • 2017
  • 소프트웨어 내제되어 있는 보안약점과 보안취약점으로 인해 사회적으로 많이 비용이 발생함에 따라 안전한 소프트웨어를 개발하고자하는 요구가 증가하고 있다. 최근 바이너리 코드에 내제된 보안약점을 분석하기 위해서 중간코드를 이용하여 정적분석을 수행하는 다양한 연구가 진행되고 있다. 중간 언어를 사용함으로 실행환경에 따라 달라지는 바이너리 코드가 중간언어로만 변환이 된다면 동일한 형태의 보안약점 분석기술을 통해 효과적인 수행이 가능하다. 이 기술의 핵심은 바이너리 코드로부터 얼마나 코드내의 자료형 및 변수를 재구성하여 중간언어로 변환하는 것이다. 본 논문에서는 이와 같은 바이너리 코드로부터 보안약점 분석을 위한 중간언어 변환시 효과적으로 자료형 및 변수 등에 관한 정보를 재구성하는 기법들에 대해서 조사 분석하였다.

Design and Implementation of Intermediate Code for Mobile GIS (모바일GIS를 위한 중간코드의 설계 및 구현)

  • 신홍섭;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04c
    • /
    • pp.154-156
    • /
    • 2003
  • 모바일 기술의 발달로 인해 모바일 장치를 위한 다양한 지원 모델과 응용 프로그램들이 개발되고 있다. GIS분야에서도 모바일 기술이 접목되어 모바일GIS가 등장하게 되었으며, 모바일GIS를 이용한 다양한 응용 프로그램들이 서비스되고 있다. 기존의 모바일GIS는 국립지리원에서 제공하는 DXF형식의 국가기본수치지도를 원시 데이터로 사용하였으나, 최근에는 모바일GIS에 XML(extensible Markup Language)을 적응하려는 움직임을 보이고 있다. 이를 위해서는 DXF형식의 GIS데이터를 OGC(Open Gis Consortium)에서 제안한 GML(Geography Markup Language)로 변환하기 위한 변환기를 필요로 한다. 본 논문에서는 DXF를 GML로 변환하기 위한 DXF2GML변환기의 효율적인 번역을 위해, DXF와 GML의 의미적 차이를 해결하고 효율적인 변환과정을 구현하기 위한 DXF2GML변환기의 중간코드를 제안하고자 한다. 또한 제안된 중간코드를 적용하여 DXF2GML변환기의 Front-End인 중간코드 생성기와 Back-End인 GML문서 생성기를 구현하고자 한다.

  • PDF

An Intermediate Language Translator for .NET Languages (.NET 언어를 위한 중간 언어 번역기)

  • 최성규;박진기;이양선
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2003.11b
    • /
    • pp.533-536
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사가 개발한 언어로서 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 어떠한 하드웨어나 운영체제에 상관없이 수행이 가능한 플랫폼 독립적인 언어이다. 마이크로소프트사는 .NET 플랫폼을 개발하면서 자바 언어에 대응하기 위해 C# 프로그래밍 언어를 만들었다. C#은 C/C+.의 강력함과 자바나 비주얼 베이직의 높은 생산성을 매우 효과적으로 결합한 프로그래밍 언어이다. C#은 컴파일 과정을 거치면 자바의 바이트코드와 같은 중간 언어인 MSIL코드를 갖는 파일을 출력하게 되는데, C# 이외에도 모든 .NET 언어들은 컴파일과정을 거치면서 MSIL 코드를 얻기 때문에 여러 .NET 언어들을 이용해서 하나의 응용 프로그램을 만들 수 있다. 본 논문에서는 임베디드 시스템에서의 적용을 위해 C#을 컴파일 하여 나오는 중간 언어 형태인 MSIL 코드를 자바의 중간 언어의 한 종류인 Oolong 코드로 변환해 줌으로서 C#으로 구현된 프로그램이 자바 플렛폼에서 JVM에 의해 실행되도록 하는 중간 언어 번역기를 구현하였다.

  • PDF