• Title/Summary/Keyword: Java Programs

Search Result 171, Processing Time 0.024 seconds

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

  • Eun-Mi Kim
    • 한국컴퓨터산업학회논문지
    • /
    • 제2권3호
    • /
    • pp.407-416
    • /
    • 2001
  • 본 논문에서는 C++ 프로그램을 측정하기 위하여 제안된 척도 $\pi_{java}$ c++/를 기반으로 Java 프로그램 복잡도를 측정하기 위한 척도 $\pi_{java}$ Java/을 제안한다. C++를 측정하기 위해 많은 척도들이 제안되어 왔으나 이들은 Java 프로그램만이 가지는 특성들을 고려하지 않았기 때문에 C++ 프로그램과 다른 성질을 가지고 있는 Java프로그램에 이들을 그대로 적용하는 것은 어렵다. 따라서, 본 논문에서는C++와 Java 언어의 공통점과 차이점을 분석한 결과와 본 연구팀이 C++ 프로그램의 복잡도를 측정하기 위해 제안했던 척도 $\pi_{java}$ c++/을 바탕으로 Java 프로그램의 복잡도를 측정하기 위한 새로운 척도 $\prod$$_{Java}$을 제안한다. 마지막으로 제안한 척도를 Weyuker의 성질에 적용하여 분석하며, 기존의 척도들과도 비교한다.

  • PDF

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

  • 김영주;구인본;배병진;전용기
    • 정보처리학회논문지A
    • /
    • 제16A권2호
    • /
    • pp.55-60
    • /
    • 2009
  • 병행 Java 프로그램의 경합은 프로그램의 비결정성을 초래하므로 반드시 탐지되어야 한다. 이러한 경합을 수행 중에 탐지하기 위해서는 스레드에 대한 수행양상과 모든 접근사건들을 감시할 수 있어야 한다. 기존의 경합탐지 기법들은 프로그램의 수행중에 기록된 파일들을 분석하거나 대상 프로그램을 수정하여 감시하므로 스레드나 모든 접근사건들에 대한 감시가 현실적으로 어렵다. 본 연구에서는 JDI(Java Debug Interface)를 이용하여 스레드에 대한 수행양상과 모든 접근사건을 감시하여 확장적 경합탐지를 할 수 있는 투명한 감시도구를 제안한다. 여기서 JDI는 JDPA(Java Platform Debugger Architecture)에서 제공하는 상위 레벨의 100% 순수 자바 인터페이스로써 자바프로그램의 수행중에 특정 정보를 제공할 수 있다. 그리고 제안된 도구의 투명성을 입증하기 위해서 벤치마크 프로그램으로 실험한 결과, 모든 스레드와 접근사건들을 프로그램 수정없이 감시할 수 있었고 프로그램의 감시시간이 20배 이상 증가되었다.

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

  • Lee, Yang-Sun;Na, Seung-Won;Hwang, Dae-Hoon
    • 한국멀티미디어학회논문지
    • /
    • 제7권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

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

  • 이성은
    • 한국컴퓨터정보학회논문지
    • /
    • 제11권3호
    • /
    • pp.173-186
    • /
    • 2006
  • 본 논문에서는 기존의 비컴포넌트 자바 프로그램을 EJB 컴포넌트 프로그램으로 변환하기 위한 프로세스를 제안한다. 자바 프로그램의 재사용성을 높이기 위해 다음과 같은 방법으로 접근한다. 먼저 기존에 존재하는 비 컴포넌트 자바 프로그램으로부터 컴포넌트 모델에 적합한 구성 요소를 추출하며, 추출된 구성 요소를 중심으로 컴포넌트로 변환하기 위한 기법을 제시한다. 기존 프로그램 코드의 재사용을 극대화하며, EJB의 특성을 고려한 컴포넌트 구성이 가능하도록 클래스 클러스터링과 메소드 단위 중심의 클래스 재구성 방법을 혼합하여 제안한다.

  • PDF

Translation Java Bytecode to EVM SIL Code for Embedded Virtual Machines

  • Lee, Yang-Sun;Park, Jin-Ki
    • 한국멀티미디어학회논문지
    • /
    • 제8권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: 효과적인 Java 프로그램 변이 생성 도구 (Mutagen4J: Effective Mutant Generation Tool for Java Programs)

  • 전이루;김윤호;홍신;김문주
    • 정보과학회 논문지
    • /
    • 제43권9호
    • /
    • pp.974-982
    • /
    • 2016
  • 프로그램 변이 분석은 분석대상 프로그램의 코드를 변형한 다양한 프로그램 변이를 활용해 분석대상 프로그램의 특성을 분석하는 기법이다. 효과적인 변이 분석을 위해서는 분석대상 프로그램의 동작을 다양하게 변화시키는 유용한 변형 연산자의 사용이 필수적이다. 현재까지 Java 프로그램을 대상으로 제안된 변이 생성 도구들은 변형 연산자의 종류가 제한적이거나, 최근 Java 언어 요소로 작성된 분석대상 프로그램의 경우 올바른 변이 생성을 지원하지 못하는 한계가 있다. 본 논문은 Java 프로그램을 위한 새로운 변이 생성 도구 Mutagen4J를 소개한다. Mutagen4J는 기존 연구를 통해 유용한 것으로 알려진 프로그램 변형 연산자를 추가로 지원하며, 최근 Java 언어요소를 처리함으로써, Java 프로그램에 대한 효과적인 변이 분석을 지원한다. 기존 Java 프로그램 변이 생성 도구와 비교 실험을 수행한 결과, Mutagen4J이 기존 도구보다 유용한 변이를 평균 2.3배 생성하였다.

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

  • Sun, Yu;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • 제6권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)

  • 고훈준
    • 한국콘텐츠학회논문지
    • /
    • 제9권1호
    • /
    • pp.81-88
    • /
    • 2009
  • 기존 연구에서는 자바 프로그램에서 논리적인 오류를 찾기 위한 기술로 HDTS를 제안했었다. HDTS는 알고리즈믹 프로그램 디버깅 기술을 이용하여 실행트리에서 오류를 포함하고 있는 메소드를 찾고, 단계적 프로그램 디버깅 기술을 이용하여 오류를 포함하고 있는 메소드에서 오류가 있는 문장을 찾아낸다. 그리고 분할 기술을 이용하여 오류를 포함하고 있는 메소드 내의 문장 중에서 디버깅에 관련이 없는 문장과 실행트리에서 불필요한 노드를 제거하여 노드의 수를 줄임으로서 사용자가 디버깅하는 횟수를 최소화할 수 있는 프로그램 디버깅 기술이다. 본 논문은 자바 프로그램을 디버깅할 수 있는 HDTS 시스템을 구현하기 위한 설계를 한다. 먼저, 자바의 부분언어를 정의하고 자바 원시 코드를 번역할 수 있는 번역기와 실행할 수 있는 가상머신을 설계한다. 그리고 사용자가 디버깅하기 위한 사용자 그래픽 인터페이스를 설계한다.

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

  • 고훈준;유원희
    • 한국산업정보학회:학술대회논문집
    • /
    • 한국산업정보학회 2002년도 춘계학술대회 논문집
    • /
    • pp.170-176
    • /
    • 2002
  • 자바 언어는 다양한 플랫폼과 다양한 분야에서 사용되고 있는 대표적인 객체지향 언어이다. 자바 언어는 객체지향의 특징 때문에 전통적인 절차지향 언어 보다 프로그램의 구조가 단순하다. 그러나 복잡한 자바 프로그램을 디버깅하는 일은 쉽지 않다. 디버깅은 항상 소프트웨어 발전의 많은 비용이 드는 부분이다. 자바 프로그램의 구문 오류는 현재 디버깅 시스템에 의해서 쉽게 발견된다. 그러나 자바 프로그램에 포함된 논리적인 오류는 발견하기가 어렵다. 자바 프로그램을 위한 기존의 디버깅 기술은 절차지향언어에서 사용하는 순차적인 방법을 사용하고 있다. 불행히도, 이 전통적인 방법들은 종종 특별한 프로그램의 오류를 찾는데 적당하지 않다. 이는 프로그램의 크기가 커지고 복잡해짐에 따라 디버깅하는데 걸리는 시간이 프로그램을 개발하는 시간의 많은 부분을 차지하게 된다. 디버거 사용자가 자바 프로그램 내에 포함되어 있는 오류를 쉽게 찾아내는 일은 효율적인 소프트웨어 개발에서 매우 중요하다. 본 논문에서는 사용자가 자바프로그램을 좀 더 빠르게 디버깅을 할 수 있도록 알고리즈믹 디버깅 방법을 적용한다. 알고리즈믹 디버깅 방법은 함수의 호출관계를 실행 트리로 구성하고 이를 검사하여 에러가 포함 되어 있는 함수를 발견하는 방법이다. 따라서 기존의 순차적인 방법보다 디버깅하는 횟수를 줄일 수 있다.

  • PDF

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

  • 김경성;박종천
    • 한국전산유체공학회지
    • /
    • 제15권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.