• Title/Summary/Keyword: 바이트코드

Search Result 173, Processing Time 0.023 seconds

Static Type Inference Based on Static Single Assignment for Bytecode (바이트코드를 위한 정적 단일 배정문 기반의 정적 타입 추론)

  • Kim Ji-Min;Kim Ki-Tea;Kim Je-Min;Yoo Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.4 s.42
    • /
    • pp.87-96
    • /
    • 2006
  • Although bytecode has many good features, it has slow execution speed and it is not an ideal representation for program analysis or optimization. For analysises and optimizations. bytecode must be translated to a Static Single Assignment Form(SSA Form) But when bytecode is translated a SSA Form it has lost type informations of son variables. For resolving these problem in this paper, we create extended control flow graph on bytecode. Also we convert the control flow graph to SSA Form for static analysis. Calculation about many informations such as dominator, immediate dominator. dominance frontier. ${\phi}$-Function. renaming are required to convert to SSA Form. To obtain appropriate type for generated SSA Form, we proceed the followings. First. we construct call graph and derivation graph of classes. And the we collect information associated with each node. After finding equivalence nodes and constructing Strongly Connected Component based on the collected informations. we assign type to each node.

  • PDF

Design and Implementation of Network-based Profiling System of Java Bytecode (자바바이트코드의 네트워크 기반 프로파일링 시스템 설계 및 구현)

  • 정준영;정민수;이은정;정연정;윤기송
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1999.10a
    • /
    • pp.415-417
    • /
    • 1999
  • 네트워크상에 바이트 코드로 존재하고 실행되는 자바 프로그램은 여러 가지 컴퓨팅 환경 요소로 인해 수행병목현상이 나타나고 있다. 더구나 프로그램 성능 향상을 위해 바이트코드를 해석한다는 것은 쉬운 일이 아니다. 본 논문은 자바 바이트코드를 소스코드로 디컴파일하고, 프로그램 문맥의 기본 블록과 제어 구조를 분석하여 프로파일 정보를 얻는다. 그리고 프로파일 정보를 바탕으로 사용자나 개발자에게 의미있는 정보를 제공하여 최적화된 프로그램을 개발할 수 있도록 하는 네트워크 기반 프로파일링 시스템과 프로파일 정보 시각화를 위한 시스템의 프로토타입 설계 및 구현을 다룬다.

  • PDF

Verification of Bytecode by Generating Verification Condition for Intermediate Language (중간언어의 VC 생성을 통한 바이트코드 검증)

  • Hu, Hye-Rim;Kim, Je-Min;Park, Joon-Seok;Yoo, Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2011.04a
    • /
    • pp.269-272
    • /
    • 2011
  • 프로그램 신뢰성을 높이기 위한 방법 중 하나로 쓰이는 것이 명세 된 언어의 검증이다. 명세 된 언어를 검증하기 위해 소스 프로그램을 논리식으로 바꾸어 검증하는 방법을 사용한다. 소스 프로그램 뿐만 아니라 바이트코드 역시 프로그램 신뢰성을 높이기 위해서 검증이 필요하다. 본 논문에서는 바이트 코드의 검증을 위해 바이트코드의 정보를 가지고 있는 중간언어의 verification condition을 생성하는 방법을 보인다.

A Migration Method from Java Runtime Environment to SPARC Runtime Environment (자바 실행 환경에서 SPARC 실행환경으로의 이전 방법)

  • 황은희;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10b
    • /
    • pp.416-418
    • /
    • 1998
  • 이기종간의 실행 환경에 적합하도록 설계된 자바 바이트코드는 각 플랫폼에서 인터프리터 방식으로 수행되므로 효율성에서 단점을 가지고 있다. 따라서 바이트코드의 효율적인 실행을 위해 목적 코드로의 변환 과정이 요구된다. 목적 코드로 변환 과정에서 자바의 실행 환경 또한 목적 기계의 실행 환경으로 이전이 이루어져야 한다. 본 논문에서는 자바 실행 환경을 SPARC 실행 환경으로 이전하는 방법을 제시한다. 먼저, 자바 가상 기계의 구성 요소를 분석한 후 이에 대응하는 SPARC 실행 환경에 필요한 각각의 구성 요소들을 제시하고, SPARC 실행 환경에 맞는 모델을 구축한다. 마지막으로, 자바에서 제공하는 표준 클래스 라이브러리에 대해서는 SPARC 라이브러리 형태로 변환하여 제공하게 된다.

Design and Implementation of the MSIL-to-Bytecode Translator to Execute .NET Programs in JVM Platform (JVM 플랫폼에서 .NET 프로그램을 실행하기 위한 MSIL-to-Bytecode 번역기의 설계 및 구현)

  • Lee, Yang-Sun;Whang, Dae-Hoon;Na, Seung-Won
    • Journal of Korea Multimedia Society
    • /
    • v.7 no.7
    • /
    • pp.976-984
    • /
    • 2004
  • C# and .NET platform in Microsoft Corp. has been developed to meet the needs of programmers, and cope with Java and JVM platform of Sun Microsystems. After compiling, a program written in .NET language is converted to MSIL code, and also executed by .NET platform but not in JVM platform. Java, one of the most widely used programming languages recently, is the language invented by James Gosling at Sun Microsystems, which is the next generation language independent of operating systems and hardware platforms. Java source code is compiled into bytecode as intermediate code independent of each platform by compiler, and also executed by JVM. This paper presents the MSIL-to-Bytecode intermediate language translator which enables the execution of the program written in .NET language such as C or C# in JVM(Java Virtual Machine) environment, translating MSIL code produced by compiling .NET program into java bytecode. This work provides an environment for programmers to develop application programs without limitations of programming languages.

  • PDF

Design of Translator for generating Java Bytecode from Thread code of Multithreaded Models (다중스레드 모델의 스레드 코드를 자바 바이트 코드로 변환하기 위한 번역기 설계)

  • 김기태;이갑래;양창모;유원희
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04a
    • /
    • pp.68-70
    • /
    • 2000
  • 다중스레드 모델은 데이터플로우 모델의 내부적인 병렬성, 비동기적 자료 가용성과 폰 노이만 모델의 실행 지역성을 결합하여 병렬처리 시스템의 성능을 향상 시켰다. 이 모델은 프로그램의 실행을 위하여 컴파일러에 의해 생성된 스레드를 수행하며, 스레드의 생성 방법에 따라 자원 활용 빈도나 동기화 빈도와 같은 스레드의 질이 결정 되는 특징이 있다. 하지만 다중스레드 모델은 실행 모델이 특정 플랫폼에 제한되는 단점을 가지고 있다. 이에 반해 자바는 플랫폼에 독립적인 특징을 가지고 있어 다중스레드 모델의 스레드 코드를 실행 단위인 자바 언어로 변환하면 다중스레드 모델의 특징을 여러 플랫폼에서 수정 없이 사용할 수 있게 된다. 자바는 원시 언어를 중간 언어 형태의 바이트 코드로 변환하여 각 아키텍처에 맞게 설계된 자바 가상 머신이 설치된 시스템에서 자바 언어를 수행한다. 이러한 자바 언어의 바이트 코드는 번역기의 중간 언어와 같은 역할을 수행하고, 자바 가상 머신은 번역기의 후위부와 같은 역할을 한다. 본 논문은 다중스레드 코드가 플랫폼에 독립적인 특성을 갖출 수 있도록 다중스레드 코드를 자바 가상 머신에서 실행 가능하도록 한다. 즉, 다중스레드 모델의 스레드 코드를 자바 바이트 코드로 변환하는 번역기를 설계, 구현하고, 자바 가상 머신의 실행을 분석한다.

  • PDF

Design of Translator for Efficient 3-Address Code from Stack Based Code (스택기반코드에서 효율적인 3-주소 코드로의 변환기 설계)

  • Kim Ji-Min;Kim Ki-Tae;Jo Sun-Moon;Yoo Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.11a
    • /
    • pp.433-436
    • /
    • 2004
  • 자바 언어는 객체지향 언어로써 인터프리터에 의하여 실행되고 구조 중립적이다. 자바 언어는 인터프린트 과정을 거치므로 다른 언어에 비해서 실행이 느리다는 단점을 가지고 있다. 자바 바이트코드의 실행 비용을 줄이기 위한 연구의 일환으로 본 논문에서는 자바 바이트코드 최적화기인 CTOC 중에서 스택기반 코드를 받아 들여 스택을 사용하지 않는 3-주소 코드로 변화시키는 CTOC-TR의 설계에 대하여 논한다. CTOC-TR은 총 3단계를 변환 과정을 수행하는데 첫 단계에서는 타입 없는 3-주소코드를 생성한다. 두 번째 단계에서는 스택변수와 지역변수를 나누는 과정을 수행하는데 이 과정은 타입을 정해주기 위해서 꼭 필요한 과정이다. 마지막으로 타입 추론 함수를 이용하여 나누어진 변수에 타입을 지정한다. 그 후 생성된 3-주소 코드를 분석기와 최적화기에 입력시켜 효율적인 3-주소 코드를 생성한다.

  • PDF

Efficient Exception Handling in Java Ahead-of-Time Compilation (자바 Ahead-of-Time 컴파일러에서의 효율적인 예외처리 방법)

  • Jung Dong-Heon;Park JongKuk;Lee Jaemok;Bae SungHwan;Moon Soo-Mook
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.11a
    • /
    • pp.823-825
    • /
    • 2005
  • 자바는 이식성과 보안의 장점으로 인하여 내장형 시스템에서 널리 사용되고 있으나 인터프리터를 통한 바이트코드의 수행으로 인하여 성능이 저하되는 문제를 포함하고 있다. 이를 해결하기 위한 한 방법으로 수행시간 전에 바이트코드를 기계어 코드로 미리 번역하여 수행시간에는 기계어 코드가 수행되도록 하는 Ahead-of-Time 컴파일러 (AOTC)가 사용되고 있다. 특히 바이트코드를 C코드로 변환한 다음 기존의 컴파일러를 이용하여 기계어 코드를 생성하는 방식을 많이 택하고 있다. 본 논문에서는 AOTC에서 효율적인 예외처리 (exception handling) 기법을 제안한다. 기존의 AOTC 에서는 예외를 발생하는 메쏘드와 예외를 처리하는 메쏘드가 다른 경우 setjmp/longjmp를 이용하여 예외처리를 수행하고 있으나 우리는 메쏘드 호출 후의 예외 검사를 통해 예외처리를 수행한다. 우리는 제안된 예외처리 방법은 Sun의 CDC 가상 머신을 위해 개발된 AOTC 에 구현되었으며 SPECjvm98 벤치마크에서의 실험을 통해 setjmp/longjmp 방식에 비해 $1.3\%$에서 $154\%$까지의 성능향상이 가능함이 확인되었다.

  • 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

Efficient Access and Performance Improvement of Multi-Dimensional Array in Java Virtual Machine (자바가상머신에서 다차원 배열의 효율적인 접근과 성능 개선)

  • Lee, Ji-Hyun;Won, Hee-Sun;Moon, Kyung-Doek;Kim, Young-Kuk
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2003.05b
    • /
    • pp.1457-1460
    • /
    • 2003
  • 자바는 플랫폼에 독립적인 실행을 위해서 바이트코드를 사용하며, 자바가상머신에서 바이트코드를 해석하여 실행시키는 인터프리터 방식을 취하고 있으므로 느린 실행 시간을 갖는다. 이와 같은 느린 실행 시간에 영향을 주는 요인 중의 하나로써 다차원 배열(Multi-dimension Array)에 접근(Acess)할 때 비효율적인 방법으로 실행되는 것을 개선할 필요가 있다. 자바가상머신에서 오브젝트와 배열은 레퍼런스에 의해서 접근되어지고, 특히 다차원 배열은 배열 안에 또 다른 배열이 들어있는 자료구조를 취하기 때문에 다차원 배열의 크기가 커질수록 하나의 원소에 접근할 때 발생되는 레퍼런스(Reference)의 횟수가 많아질수록 성능 저하를 유발한다. 본 논문에서는 다차원 배열에 효율적으로 접근하기 위한 새로운 배열의 자료 구조를 제시하고, 다차원 배열에 접근하는 여러 개의 바이트코드 대신 이런 자료구조에 접근할 수 있는 새로운 바이트코드를 정의 및 구현하였다. 그리고 이를 실제 클래스파일에 적용하고, 간단한 성능 평가를 통해서 성능 개선 효과를 확인할 수 있다.

  • PDF