• Title/Summary/Keyword: Java Bytecode

Search Result 69, Processing Time 0.031 seconds

Translation of Java Bytecode into C code with the JNI (자바 바이트코드로부터 JNI를 사용한 C 코드의 변환)

  • 권혜은;김상훈
    • The Journal of Information Technology
    • /
    • v.4 no.1
    • /
    • pp.1-7
    • /
    • 2001
  • The well-known tradeoff of Java's portability is the inefficiency of its basic execution model, which relies on the interpretation of an virtual machine. Many solutions have been proposed to overcome this problem, such as just-in-time(JIT) and offline bytecode compilers. However, JIT compiler can not avoid the overhead of runtime. since it translate bytecode into native code at runtime. And, pure offline bytecode compiler limits the ability of dynamic class loading. In this paper, we present an approach which preserves the ability to dynamically load bytecode, and is more efficient than JIT. In contrast to existing bytecode-to-C translator using the old NMI, our translator maintain complete compatibility and portability through using the Java Native Interface(JNI) standard. We have designed and implemented an translator for converting bytecode to C code with JNI.. named MyJNItool.

  • PDF

Design and Implementation of a Java Bytecode-to-SAF Translator for the Ubiquitous Game Platform (유비쿼터스 게임 플랫폼을 위한 Java Bytecode-to-SAF 번역기의 설계 및 구현)

  • Park, Sang-Hoon;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1512-1515
    • /
    • 2007
  • 본 연구팀은 유비쿼터스 환경에서 다양한 분야의 콘텐츠를 보다 쉽게 개발하고 실행할 수 있는 통합 소프트웨어 개발 솔루션인 유비쿼터스 게임 플랫폼(Ubiquitous Game Platform)을 개발하였다. 유비쿼터스 게임 플랫폼은 C/C++ 언어와 자바 언어를 모두 지원하며, 가상기계 방식이기 때문에 여러 임베디드 기기에서 독립적으로 수행이 가능하다는 장점이 있다. 본 논문에서는 유비쿼터스 게임 플랫폼에서 자바 언어로 작성된 콘텐츠를 실행할 수 있도록 하기 위해 자바 바이트코드를 유비쿼터스 게임 플랫폼의 중간언어 형식인 SAF(Standard Assembly Format)로 변환해주는 Java Bytecode-to-SAF 번역기를 설계하고 구현하였다. Java Bytecode-to-SAF 번역기를 통해 C/C++ 콘텐츠뿐만 아니라 자바 콘텐츠도 하나의 플랫폼에서 실행이 가능해져서 개발자에게 효율적이며, 능률적인 개발 환경을 제공하고, 한번 개발한 콘텐츠를 타 기종으로 이식하기 위한 시간과 비용 소모를 줄여 생산성을 높일 수 있다.

  • PDF

Energy Efficiency of Iteration Statement in Java (자바 반복문의 에너지 효율성)

  • Yang, Hee-Jae
    • Proceedings of the Korean Institute of Information and Commucation Sciences Conference
    • /
    • v.9 no.2
    • /
    • pp.816-819
    • /
    • 2005
  • In Java virtual machine which is the running environment of Java programs, almost every bytecode execution requires data transfers in memory. Data transfer incurs energy consumption and hence minimizing the transfer operation is very important for improving the energy efficiency of JVM. As the number of data transfers for a Java iterative statement is directly proportional to the iteration count, improving the energy efficiency of iterative statement is crucial to keep the energy efficiency of JVM high. This paper analyzes Java iterative statement at bytecode level and proposes some points how to improve the energy efficiency.

  • PDF

A Study On The Optimization of Java Class File under Java Card Platform (자바카드 플랫폼상에서 자바 클래스 파일의 최적화 연구)

  • 김도우;정민수
    • Journal of Korea Multimedia Society
    • /
    • v.6 no.7
    • /
    • pp.1200-1208
    • /
    • 2003
  • Java Card technology allows us to run Java applications on smart cards and other memory-constrained devices. Java Card technology supports high security, portability and ability of storing and managing multiple applications. However, constrained memory resources of the Java Card Platform hinder wide deployment of the Java Card applications. Therefore, in this paper we propose a bytecode optimization algorithm to use the memory of a Java Card efficiently. Our algorithm can reduce the size of the bytecode by sharing the memory of the parameters of the catch clause in the try-catch-finally sentence.

  • PDF

Implementation of Java Bytecode Framework (자바 바이트코드 프레임워크 구현)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Weon-Hee
    • The Journal of the Korea Contents Association
    • /
    • v.10 no.3
    • /
    • pp.122-131
    • /
    • 2010
  • In this paper, we design and implement CTOC, a new bytecode analysis and translation tool. We also propose E-Tree, a new intermediate code, to efficiently deal with intermediate codes translated from bytecodes. E-Tree is expressed in a tree form by combining relevant bytecode instructions in basic blocks of eCFG to overcome the weaknesses of bytecodes such as complexity and analytical difficulty. To demonstrate the usefulness and possible extensibility of CTOC, we show the creation process of eCFG and E-Tree through practical bytecode analysis and translation and shows the optimization process of a bytecode program as an example of possible extensibility.

Program Translation from Conventional Programming Source to Java Bytecode (기존 프로그래밍 원시코드에서 자바 바이트 코드로의 변환)

  • Jeon-Geun Kang;Haeng-Kon Kim
    • Journal of the Korea Computer Industry Society
    • /
    • v.3 no.8
    • /
    • pp.963-980
    • /
    • 2002
  • Software reengineering is making various research for solutions against problem of maintain existing systems. Reengineering has a meaning of development of software on exizting systems through the reverse engineering auf forward engineering. Most of the important concepts used in reengineering is composition that is restructuring of the existing objects. Is there a compiler that can compile a program written in a traditional procedural language (like C or Pascal) and generate a Java bytecode, rather than an executable code that runs oかy on the machine it was compiled (such as an a.out file on a Unix machine)\ulcorner This type of compiler may be very handy for today's computing environment of heterogeneous networks. In this paper we present a software system that does this job at the binary-to-binary level. It takes the compiled binary code of a procedural language and translates it into Java bytecode. To do this, we first translate into an assembler code called Jasmin [7] that is a human-readable representation of Java bytecode. Then the Jasmin assembler converts it into real Java bytecode. The system is not a compiler because it does not start at the source level. We believe this kind of translator is even more useful than a compiler because most of the executable code that is available for sharing does not come with source programs. Of course, it works only if the format of the executable binary code is known. This translation process consists of three major stages: (1) analysis stage that identifies the language constructs in the given binary code, (2) initialization stage where variables and objects are located, classified, and initialized, and (3) mapping stage that maps the given binary code into a Jasmin assembler code that is then converted to Java bytecode.

  • PDF

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

  • 김기태;유원희
    • Proceedings of the Korea Society for Industrial Systems Conference
    • /
    • 2002.06a
    • /
    • pp.148-155
    • /
    • 2002
  • Multithreaded models improve the efficiency of parallel systems by combining inner parallelism, asynchronous data availability and the locality of von Neumann model. This model executes thread code which is generated by compiler and of which quality is given by the method of generation. But multithreaded models have the demerit that execution model is restricted to a specific platform. On the contrary, Java has the platform independency, so if we can translate from threads code to Java bytecode, we can use the advantages of multithreaded models in many platforms. Java executes Java bytecode which is intermediate language format for Java virtual machine. Java bytecode plays a role of an intermediate language in translator and Java virtual machine work as back-end in translator. But, Java bytecode which is translated from multithreaded models have the demerit that it is not secure. This paper, multhithread code whose feature of platform independent can execute in java virtual machine. We design and implement translator which translate from thread code of multithreaded code to Java bytecode and which check secure problems from Java bytecode.

  • PDF

Static Single Assignment Form for Java Bytecodes in CTOC (CTOC에서 자바 바이트코드를 위한 정적 단일 배정 형태)

  • Kim, Ki-Tae;Yoo, Weon-Hee
    • The KIPS Transactions:PartD
    • /
    • v.13D no.7 s.110
    • /
    • pp.939-946
    • /
    • 2006
  • Although the Java bytecode has numerous advantages, there are also shortcomings such as slow execution speed and difficulty in analysis. In order to overcome such disadvantages, bytecode analysis and optimization must be performed. We implements CTOC for optimized codes. An extended CFG must be first created in order to analyze and optimize a bytecode. Due to unique bytecode properties, the existing CFG must be expanded according to the bytecode. Furthermore, the CFG must be converted into SSA Form for a static analysis, for which calculation is required for various information such as the dominate relation, dominator tree, immediate dominator, $\phi$-function, rename, and dominance frontier. This paper describes the algorithm and the process for converting the existing CFG into the SSA From. The graph that incorporates the SSA Form is later used for type inference and optimization.

A Plagiarism Detection Technique for Java Program Using Bytecode Analysis (바이트코드 분석을 이용한 자바 프로그램 표절검사기법)

  • Ji, Jeong-Hoon;Woo, Gyun;Cho, Hwan-Gue
    • Journal of KIISE:Software and Applications
    • /
    • v.35 no.7
    • /
    • pp.442-451
    • /
    • 2008
  • Most plagiarism detection systems evaluate the similarity of source codes and detect plagiarized program pairs. If we use the source codes in plagiarism detection, the source code security can be a significant problem. Plagiarism detection based on target code can be used for protecting the security of source codes. In this paper, we propose a new plagiarism detection technique for Java programs using bytecodes without referring their source codes. The plagiarism detection procedure using bytecode consists of two major steps. First, we generate the token sequences from the Java class file by analyzing the code area of methods. Then, we evaluate the similarity between token sequences using the adaptive local alignment. According to the experimental results, we can find the distributions of similarities of the source codes and that of bytecodes are very similar. Also, the correlation between the similarities of source code pairs and those of bytecode pairs is high enough for typical test data. The plagiarism detection system using bytecode can be used as a preliminary verifying tool before detecting the plagiarism by source code comparison.

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