• Title/Summary/Keyword: Java Programs

Search Result 171, Processing Time 0.021 seconds

Design of the Metrics Suite $\pi_{java}$for Java Program Complexity (자바 프로그램의 복잡도 측정을 위한 척도 $\pi_{java}$의 설계)

  • Eun-Mi Kim
    • Journal of the Korea Computer Industry Society
    • /
    • v.2 no.3
    • /
    • pp.407-416
    • /
    • 2001
  • In this paper we propose a suite of metrics $\pi_{java}$ Java/, for evaluating the complexity of Java Programs based on a suite of metrics $\pi_{java}$ c++/, which we previously presented for C++ programs. So far, a lot of metrics for C++ are proposed for C++ programs. But since the specific properties of Java programs are not explicitly considered in those metrics, it is hard to apply them to Java programs. Thus we aim to develop a metric suite that is applicable to Java Programs. At first, we decide if any properties are commonly possessed by both C++ programs and Java programs, or not. For example, the multiple inheritance of the class in C++ is not implemented in Java. On the other hand, the features such as package and interface are newly implemented in Java, and therefore we cannot discuss the complexity of Java programs without considering these new features. Then we define a new suite of metrics $\pi_{java}$ Java/ for Java programs by deleting 3 metrics $\pi_{java}$/c++/, and then incorporating 3 metrics which are newly defined or modified for Java programs to $\pi_{java}$ c++/. Finally, we analytically evaluate the new metric with regard to Weyuker's measurement principles and also compare it with conventional metrics for Java.

  • PDF

A Transparent Monitor Based on JDI for Scalable Race Detection of Concurrent Java Programs (병행 Java 프로그램의 확장적 경합탐지를 위한 JDI 기반의 투명한 감시도구)

  • Kim, Young-Joo;Kuh, In-Bon;Bae, Byoung-Jin;Jun, Yong-Kee
    • The KIPS Transactions:PartA
    • /
    • v.16A no.2
    • /
    • pp.55-60
    • /
    • 2009
  • Race conditions in current Java programs must be detected because it may cause unexpected result by non-deterministic executions. For detecting such races during program execution, execution flows of all threads and all access events can be monitored. It is difficult for previous race detection techniques to monitor all threads and access events in actuality because these techniques analyze the files traced during program execution or modify original source programs and then monitor these programs. This paper presents a transparent scalable monitoring tool to detect races using JDI(Java Debug Interface) where JDI is 100% pure java interface to provide in JDPA(Java Platform Debugger Architecture) and is able to provide information corresponding to events occurred in run-time of programs. This tool thus can monitor execution flows of all threads and all access events without program modification. We prove transparency of the presented tool and grasp the efficiency of it using a set of published benchmark programs. As a result of this, the suggested tool can monitor all threads and accesses of these programs without their modification, and their monitoring time is increased to more than 20 times.

Intermediate Language Translator for Execution of Java Programs in .NET Platform

  • Lee, Yang-Sun;Na, Seung-Won;Hwang, Dae-Hoon
    • Journal of Korea Multimedia Society
    • /
    • v.7 no.6
    • /
    • pp.824-831
    • /
    • 2004
  • This paper presents the java bytecode-to-.NET MSIL intermediate language translator which enables the execution of the java program in .NET environments without JVM(java Virtual Machine), translating bytecodes produced by compiling java programs into MSIL codes. 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. .NET language such as 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. For this reason, we designed and implemented the java bytecode-to-.NET MSIL translator system for programs written in java language to be executed in the. NET platform without JVM. This work improves the execution speed of programs, enhances the productivity, and provides a environment for programmers to develop application programs without limitations of programming languages.

  • PDF

A Process for Transforming Non-component Java Programs into EJB Programs (비 컴포넌트 자바 프로그램에서 EJB 프로그램으로의 변환 프로세스)

  • Lee, Sung-Eun
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.3
    • /
    • pp.173-186
    • /
    • 2006
  • In this paper, we suggest a process that transforms non-component Java programs into EJB component programs. We approach following methods to increase reusability of existing Java-based programs. We extract proper factors from existing non-component Java programs to construct for component model, and we suggest a transformation technique using extracted factors. Extracted factors are transformed into EJB components. With consideration for reusability of existing programs and EJB's characteristic, we suggest a process that mixes class clustering and method oriented class restructuring.

  • PDF

Translation Java Bytecode to EVM SIL Code for Embedded Virtual Machines

  • Lee, Yang-Sun;Park, Jin-Ki
    • Journal of Korea Multimedia Society
    • /
    • v.8 no.12
    • /
    • pp.1658-1668
    • /
    • 2005
  • This paper presents the bytecode-to-SIL translator which enables the execution of the java program in EVM(Embedded Virtual Machine) environment without JVM(java Virtual Machine), translating bytecodes produced by compiling java programs into SIL(Standard Intermediate Language) codes. EVM, what we are now developing, is a virtual machine solution that can download and execute dynamic application programs written in sequential languages like C language as well as object oriented languages such as C#, Java, etc. EVM is a virtual machine mounted on embedded systems such as mobile device, set-top box, or digital TV, and converts the application program into SIL, an assembly language symbolic form, and execute it. SIL is a virtual machine code for embedded systems, based on the analysis of existing virtual machine codes such as bytecode, MSIL, etc. SIL has such features as to accommodate various programming languages, and in particularly has an operation code set to accept both object-oriented languages and sequential languages. After compiling, a program written in java language is converted to bytecode, and also executed by JVM platform but not in other platform such as .NET, EVM platform. For this reason, we designed and implemented the bytecode-to-SIL translator system for programs written in java language to be executed in the EVM platform without JVM. This work improves the execution speed of programs, enhances the productivity, and provides an environment for programmers to execute application programs at various platforms.

  • PDF

Mutagen4J: Effective Mutant Generation Tool for Java Programs (Mutagen4J: 효과적인 Java 프로그램 변이 생성 도구)

  • Jeon, Yiru;Kim, Yunho;Hong, Shin;Kim, Moonzoo
    • Journal of KIISE
    • /
    • v.43 no.9
    • /
    • pp.974-982
    • /
    • 2016
  • Mutation analysis (or software mutation analysis) generates variants of a target program by injecting systematic code changes to the target program, and utilizes the variants to analyze the target program behaviors. Effective mutation analyses require adequate mutation operators that generate diverse variants for use in the analysis. However, the current mutation analysis tools for Java programs have limitations, since they support only limited types of mutation operators and do not support recent language features such as Java8. In this study, we present Mutagen4J, a new mutant generation tool for Java programs. Mutagen4J additionally supports mutation operators recently shown to generate various mutants and fully supports recent Java language features. The experimental results show that Mutagen4J generates useful mutants for analyses 2.3 times more than the existing Java mutation tools used for the study.

On-line Trace Based Automatic Parallelization of Java Programs on Multicore Platforms

  • Sun, Yu;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • v.6 no.2
    • /
    • pp.105-118
    • /
    • 2012
  • We propose two new approaches that automatically parallelize Java programs at runtime. These approaches, which rely on run-time trace information collected during program execution, dynamically recompile Java byte code that can be executed in parallel. One approach utilizes trace information to improve traditional loop parallelization, and the other parallelizes traces instead of loop iterations. We also describe a cost/benefit model that makes intelligent parallelization decisions, as well as a parallel execution environment to execute parallelized programs. These techniques are based on Jikes RVM. Our approach is evaluated by parallelizing sequential Java programs, and its performance is compared to that of the manually parallelized code. According to the experimental results, our approach has low overheads and achieves competitive speedups compared to the manually parallelizing code. Moreover, trace parallelization can exploit parallelism beyond loop iterations.

Design of Hybrid Debugging System for Java Programs (자바 프로그램을 위한 복합 디버깅 시스템의 설계)

  • Kouh, Hoon-Joon
    • The Journal of the Korea Contents Association
    • /
    • v.9 no.1
    • /
    • pp.81-88
    • /
    • 2009
  • In the previous work, we presented HDTS for locating logical errors in Java programs. The HDTS locates an erroneous method at an execution tree using an algorithmic program debugging technique and locates a statement with errors in the erroneous method using a step-wise program debugging. The technique can remove the unnecessary statements and nodes in debugging using a program slicing technique at the execution tree. So HDTS reduces the number of program debugging. In this paper, we design HDTS system for debugging java programs. We define small subset of Java language and design the translator that translates java source codes and the virtual machine that runs java programs. We design GUI(Graphical User Interface) for debugging.

A Efficient Debugging Method for Java Programs (자바 프로그램을 위한 효율적인 디버깅 방법)

  • 고훈준;유원희
    • Proceedings of the Korea Society for Industrial Systems Conference
    • /
    • 2002.06a
    • /
    • pp.170-176
    • /
    • 2002
  • Java language is a representative object-oriented language that is used at the various platform and fields. A structure of java language is simpler than traditional procedural-oriented language because of characters of object-oriented language But it is difficult to debug complicated java programs. Debugging has always been a costly part of software development. Syntax errors of java programs is easily found by the current debugging system. But it is difficult to locate logical errors included in java programs. Traditional debugging techniques locating logical errors in java program have been still used with conventional methods that are used at procedural-oriented languages. Unfortunately, these traditional methods are often inadequate for the task of isolating specific program errors. Debugger users may spend considerable time debugging code of program development with sequential methods according as program size is large and is complicated. It is important to easily locate errors included in java program in the software development. In this paper, we apply algorithmic debugging method that debugger user can easily debug programs to java program. This method executes a program and makes an execution tree from calling relation of functions. And it locates errors at the execution tree. So, Algorithmic debugging method can reduce the number of debugging than conventional sequential method.

  • PDF

DEVELOPMENT OF WEB-BASED JAVA PROGRAM FOR NUMERICAL ANALYSIS OF PIPE FLOW (관내 유동 해석을 위한 웹기반 자바 프로그램 개발)

  • Kim, K.S.;Park, J.C.
    • Journal of computational fluids engineering
    • /
    • v.15 no.1
    • /
    • pp.88-94
    • /
    • 2010
  • In general, flow analysis programs have been built in not JAVA language but such as Fortran, C or C++ because of a merit in performance of computation. However, most developer of those languages are not free for use. User should purchase the development tools of programs, and install it on their own computer. Fortunately, JAVA is a free software, and can be used to develop WEB-based programs. It is well known that the JAVA language is time consuming for calculating. However, the performance of computer power has been increased continuously, so it is sure that the former states can be overcome. In the present study, a flow analysis program, which is interactive with Graphics, using the Web-based programing language, JAVA, has been developed for solving the two-dimensional flow motion.