• 제목/요약/키워드: bytecode

검색결과 90건 처리시간 0.024초

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

  • 지정훈;우균;조환규
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권7호
    • /
    • pp.442-451
    • /
    • 2008
  • 대부분의 표절검사 시스템들은 소스코드를 이용해 유사도를 계산하고 표절 프로그램을 찾아낸다. 소스코드를 이용하여 표절검사를 수행할 경우, 소스코드 보안문제가 발생할 수 있다. 목적 코드를 이용한 표절검사는 소스코드 보안문제에 대한 좋은 대안이 될 수 있다. 본 논문에서는 자바 프로그램의 표절검사에 대하여 소스코드 없이 바이트코드를 이용해 표절검사를 수행하는 방법을 제시한다. 바이트코드를 이용한 표절검사는 크게 두 단계로 진행된다 먼저, 자바 클래스 파일로부터 메소드의 코드영역을 분석해 토큰 시퀀스를 생성한 다음 적응적 지역정렬을 이용해 유사도를 계산한다. 실험 결과, 소스코드와 바이트코드의 유사도는 비슷한 분포를 보였다. 또한, 소스코드 쌍과 바이트코드 쌍의 유사도 상관관계가 충분히 높게 측정되었다. 본 논문에서 제안한 바이트코드 표절검사 시스템은 소스코드를 이용해 직접 표절을 검사하기 전 단계에서 1차적인 검증도구로 활용할 수 있다.

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

  • 양희재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2005년도 추계종합학술대회
    • /
    • pp.816-819
    • /
    • 2005
  • 자바 프로그램의 실행 환경인 자바가상기계에서는 거의 모든 바이트코드들이 메모리 상에서의 자료 이동을 필요로 한다. 자료 이동은 에너지 소비를 일으키므로 이것의 최소화는 JVM의 에너지 효율성 향상에 매우 중요하다. 특히 자바 반복문은 반복 회수에 비례하는 양만큼의 자료 이동을 요구하므로 JVM의 에너지 효율을 높이기 위해서는 무엇보다도 자바 반복문의 에너지 효율을 높이는 것이 중요하다. 본 논문에서는 자바 반복문을 바이트코드 수준에서 분석하여 에너지 효율성을 높일 수 있는 여러 방법들을 제안하였다.

  • PDF

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

  • Jeon-Geun Kang;Haeng-Kon Kim
    • 한국컴퓨터산업학회논문지
    • /
    • 제3권8호
    • /
    • pp.963-980
    • /
    • 2002
  • 소프트웨어 재공학은 기존 시스템의 유지보수 문제에 대한 해결책으로 많은 연구가 이루어 지고 있다. 재공학은 역공학과 순공학을 이용하여 기존 시스템에 대한 이해와 새로운 시스템의 개발을 의미하며 기존 시스템에서의 컴퍼넌트들로부터 필요한 기능을 가져와 재구성 하는 것이다. 본 논문에서는 기존의 프로시져 언어에 의해 컴파일된 바이너리 코드를 입력으로 받아서 웹 기반 자바 바이트 코드로 변환한다. 즉 바이너리-바이너리 단계에서 수행되는 소프트웨어 시스템을 제안한다. 이를 위해 먼저 Pascal-L 에 의해 작성된 기존의 프로그램 언어를 Jasmin 이라는 어셈블리 코드로 먼저 번역하고 사용자 읽기 가능한 자바 바이트 코드 상태인 Jasmin 어셈블리가 실제 자바 코드로 변환된다. 이 시스템은 결국 기존의 원시코드가 번역기를 통해 실행 가능한 바이너리 코드 형식으로 실행된다. 이 번역과정은 먼저 주어진 바이너리코드에서 언어구조를 식별하는 과정과 변수 객체의 위치를 분석하고 초기화 하는 과정 그리고 주어진 바이너리 코드를 Jasmin 코드로의 매핑하는 단계등으로 구성된다.

  • PDF

Bytecode-to-C 변환기의 설계 및 구현 (Design and Implementation of Bytecode-to-C Converter)

  • 권혜은;김상훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 봄 학술발표논문집 Vol.28 No.1 (A)
    • /
    • pp.52-54
    • /
    • 2001
  • 자바프로그램이 사용하는 바이트코드는 자바가상머신을 통해 플랫폼에 독립적인 특징을 갖는다. 이러한 장점은 인터프리터를 통해 실행되므로 실행속도의 저하와 플랫폼에 의존적인 작업이 어려운 문제점등을 가진다. 이러한 문제점을 보완하기 위한 기술로 JIT 컴파일러와 JNI 기술이 사용된다. 본 논문에서는 JIT 컴파일러가 가지는 실행속도의 향상과 JNI 프로그램의 편리한 작성에 도움을 주고, JVM에 독립적인 번역기를 설계하고 구현하였다. 번역기는 클래스파일을 읽어들여 이 프로그램을 위한 스텁 자바프로그램과 C 프로그램을 생성하고, 기존 C 컴파일러를 사용하여 번역하고 최적화 시키는 과정으로 이루어진다.

CTOC에서 루프 트리 구성하기 (Constructing A Loop Tree in CTOC)

  • 김기태;김제민;유원희
    • 정보처리학회논문지D
    • /
    • 제15D권2호
    • /
    • pp.197-206
    • /
    • 2008
  • 최근 많이 사용되고 있는 자바 바이트코드의 분석과 최적화를 효율적으로 수행하기 위해 CTOC 프레임워크가 구현되었다. CTOC에서는 바이트코드에 대해 분석과 최적화를 수행하기 위해 가장 먼저 eCFG를 생성하였다. 분석하기 어렵다는 바이트코드의 특성 때문에 기존의 바이트 코드를 제어 흐름 분석에 적합하게 확장하여 제어 흐름 그래프를 작성하였다. 이를 확장된 제어 흐름 그래프인 eCFG라 부른다. 또한 정적으로 분석하기 위해 eCFG를 SSA Form으로 변환 하였다. 변환 시 많은 프로그램에서 루프가 발견되었다. 이전 CTOC에서는 루프에 대한 처리를 수행하지 않은 상태에서 직접 SSA Form으로 변환을 수행하였다. 하지만 SSA Form으로 변환하기 이전에 루프에 대한 부분을 처리하면 더욱 효율적인 SSA Form을 생성할 수 있게 된다. 본 논문은 루프에 대한 처리를 효율적으로 하기 위해 eCFG를 SSA Form으로 변환하는 과정 이전에 루프를 발견하고 이와 관련된 루프 트리를 생성하는 과정을 보인다.

CTOC에서 루프 벗기기 구현 (Implementation of Loop Peeling in CTOC)

  • 김기태;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제13권5호
    • /
    • pp.27-35
    • /
    • 2008
  • 최근 웹 어플리케이션 분야에서 많이 사용되고 있는 자바 바이트코드의 분석과 최적화 과정을 효율적으로 수행하기 위해 CTOC 프레임워크를 개발하였다. CTOC는 바이트코드에 대해 분석과 최적화를 수행하기 위해 E-Tree를 중간 표현으로 사용하는 eCFG를 생성한다. eCFG는 바이트코드에 대한 제어 흐름 분석에 적합하도록 확장한 제어 흐름 그래프이다. 또한, 바이트코드를 정적으로 분석하기 위해 E-Tree를 SSA Form으로 변환한다. 이러한 변환과정 중 프로그램의 많은 부분에서 루프가 발견된다. 하지만 기존의 CTOC에서는 루프에 대한 처리를 수행하지 않은 상태에서 직접 SSA Form으로 변환을 수행하였다. 하지만 SSA Form으로 변환 이전에 루프를 처리하면 더욱 효율적인 SSA Form을 생성할 수 있게 된다. 따라서 본 논문에서는 루프에 대한 처리를 효율적으로 하기 위해 E-Tree를 SSA Form으로 변환하는 과정 이전에 eCFG에서 루프를 발견하고 이와 관련된 루프 트리를 생성한 후 루프 벗기기를 수행하는 과정을 보인다.

  • PDF

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

  • 고광만
    • 한국멀티미디어학회논문지
    • /
    • 제5권3호
    • /
    • pp.342-350
    • /
    • 2002
  • 자바 프로그래밍 언어는 웹 브라우저에서 실행되는 작은 크기의 응용 프로그램 수행에서는 실행 속도 문제가 중요한 요소가 아니지만 대형 프로그램의 수행에서는 실행 속도가 현저히 저하되는 단점을 지니고 있다. 이러한 문제점을 해결하기 위해 전통적인 컴파일 방법을 사용하여 바이트코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 본 연구에서도 자바 응용 프로그램의 실행 속도의 개선을 위해 바이트코드로부터 직접 i386코드를 생성하는 네이티브 코드 생성 시스템을 위한 중간 코드 변환기를 설계하고 구현한다. 중간 코드 변환기는 자바 언어 의 중간 코드인 *.class 파일을 입력으로 받아 레지스터 기반의 중간 코드로 변환한다.

  • PDF

패턴 매칭 기법을 이용한 자바 바이트코드 변환기의 설계 및 구현 (Design and Implementation of Java Bytecode Translator usin Pattern Matching Technique)

  • 고광만
    • 전자공학회논문지CI
    • /
    • 제39권4호
    • /
    • pp.1-9
    • /
    • 2002
  • 자바 언어의 실행 속도를 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 패턴 매칭 이용한 코드 생성 기법은 코드 확장 기법에 비해 양질의 코드를 생성할 수 있는 장점을 가지고 있다. 본 연구에서는 바이트코드로부터 효과적으로 네이티브 코드를 생성하기 위해 레지스터 기반의 중간 언어를 효율적으로 생성할 수 있는 정형화된 패턴 기술 방법과 패턴 매칭 기법에 대해 제시한다. 또한 기술된 정형화 패턴을 활용하여 양질의 레지스터 기반 중간 코드를 생성하는 중간 코드 변환기를 설계하고 구현하였다.

자바 Bytecode 에서 MSIL 로의 변환을 위한 번역기의 설계 및 구현 (Design and Implementation of a Translator for Translating Java Bytecode into MSIL)

  • 민정현;오세만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 춘계학술발표논문집 (하)
    • /
    • pp.743-746
    • /
    • 2001
  • 자바는 객체지향 언어이고, 한번 작성된 프로그램은 자바 가상 기계가 있는 모든 곳에서 수정없이 실행될 수 있기 때문에 소프트웨어의 개발과 유지 보수에 많은 장점을 가진 언어이다. 이러한 특징으로 인하여 개발되는 제품들이 자바로 구현되는 경우가 많다. 그러나 아직 대다수 소프트웨어 개발자들은 주로 C 언어나 C++ 언어를 사용하고 있으며, 최근에는 C#이라는 언어를 사용하고 있다. 자바가 플랫폼에 독립적인 장점은 가지고 있지만, 다수의 개발자 및 사용자가 마이크로소프트 윈도우 운영체제를 사용하고 있다는 것을 감안한다면 그리 탁월한 장점만은 될 수 없다. 또한, 최근의 개발동향이 COM(Component Object Model)을 지향하고 있고, 이는 더 이상 개발자들에게 프로그래밍 언어에 구애를 받지 않고 오직 개발 제품에 대한 집중력을 가질 수 있는 환경을 제공할 수 있다면, 그 개발 효율에 있어서 상당한 이점을 가질 수 있다는 의미이다. 따라서, COL(Component Object Language)을 기반으로 하고 있는 C# (C sharp)언어를 사용하여 개발을 함에 있어서 자바의 언어를 C# 언어로 변환할 수 있다면, 신생 언어인 C#에 있어서 기존 자바로 되어 있는 유용한 개발 제품들을 보다 효율적으로 이용할 수 있을 것이다. 본 논문에서는 두 언어(자바, C#)를 하나로 잇는 교량(bridge)역할을 할 수 있도록 자바의 중간 언어인 Bytecode를 C#의 중간 언어인 MSIL(Microsoft Intermediate Language)로 바꿀 수 있는 중간 언어 번역기를 설계하고 구현하였다. 이를 위한 방법으로는 먼저, 자바 Bytecode 와 MSIL 의 어셈블리 형태에서의 명령어 매칭과정을 매핑 테이블을 이용하여 처리하였고, MSIL 에서 자바 Bytecode 의 함수와 같은 기능을 하는 메소드의 변환을 위하여 마크로 변환기법을 이용하여 해결하였다.I/O ratio 2.5). BTEX의 상대적 함량도 실내가 실외보다 높아 실내에도 발생원이 있음을 암시하고 있다. 자료 분석결과 유치원 실내의 벤젠은 실외로부터 유입되고 있었고, 톨루엔, 에틸벤젠, 크실렌은 실외뿐 아니라 실내에서도 발생하고 있었다. 정량한 8개 화합물 각각과 총 휘발성 유기화합물의 스피어만 상관계수는 벤젠을 제외하고는 모두 유의하였다. 이중 톨루엔과 크실렌은 총 휘발성 유기화합물과 좋은 상관성 (톨루엔 0.76, 크실렌, 0.87)을 나타내었다. 이 연구는 톨루엔과 크실렌이 총 휘발성 유기화합물의 좋은 지표를 사용될 있고, 톨루엔, 에틸벤젠, 크실렌 등 많은 휘발성 유기화합물의 발생원은 실외뿐 아니라 실내에도 있음을 나타내고 있다.>10)의 $[^{18}F]F_2$를 얻었다. 결론: $^{18}O(p,n)^{18}F$ 핵반응을 이용하여 친전자성 방사성동위원소 $[^{18}F]F_2$를 생산하였다. 표적 챔버는 알루미늄으로 제작하였으며 본 연구에서 연구된 $[^{18}F]F_2$가스는 친핵성 치환반응으로 방사성동위원소를 도입하기 어려운 다양한 방사성의 약품개발에 유용하게 이용될 수 있을 것이다.었으나 움직임 보정 후 영상을 이용하여 비교한 경우, 결합능 변화가 선조체 영역에서 국한되어 나타나며 그 유의성이 움직임 보정 전에 비하여 낮음을 알 수 있었다. 결론: 뇌활성화 과제 수행시에 동반되는 피험자의 머리 움직임에 의하여 도파민 유리가 과대평가되었으며 이는 이 연구에서 제안한 영상정합을 이용한 움직임 보정기법에 의해서 개선되었다. 답이 없는 문제, 문제 만들기, 일반화가 가능한 문제 등으로 보고, 수학적 창의성 중 특히 확산적 사고에 초점을 맞추어 개방형 문제가 확산적 사고의 요소인 유창성, 독창성, 유연성 등에 각각 어떤 영향을 미치는지 20주의 프로그램을 개발, 진행하여 그 효과를

  • PDF

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

  • 김기태;유원희
    • 한국산업정보학회:학술대회논문집
    • /
    • 한국산업정보학회 2002년도 춘계학술대회 논문집
    • /
    • pp.148-155
    • /
    • 2002
  • 다중스레드 모델은 데이터플로우 모델의 내부적인 병렬성, 비동기적 자필 가용성과 폰 노이만 모델의 실행 지역성을 결합하여 병렬처리 시스템의 성능을 향상시켰다. 이 모델은 프로그램의 실행을 위하여 컴파일러에 의해 생성된 스레드를 수행하며, 스레드의 생성 방법에 따라 자원 활용 빈도나 동기화 빈도와 같은 스레드의 질이 결정되는 특징이 있다. 하지만 다중스레드 모델은 실행 모델이 특정 플랫폼에 제한되는 단점을 가지고 있다. 이에 반해 자바는 플랫폼에 독립적인 특징을 가지고 있어 다중스레드 모델의 스레드 코드를 실행 단위인 자바 언어로 변환하면 다중스레드 모델의 특징을 여러 플랫폼에서 수정 없이 사용할 수 있게 된다. 자바는 원시 언어를 중간 언어 형태의 바이트코드로 변환하여 각 아키텍처에 맞게 설계된 자바 가상 머신이 설치된 시스템에서 자바 언어를 수행한다. 이러한 자바 언어의 바이트코드는 번역기의 중간 언어와 같은 역할을 수행하고, 이때 자바 가상 머신은 번역기의 후위부와 같은 역할을 한다. 스레드 코드에서 번역된 자바 바이트코드는 다양한 플랫폼에서 실행될 수 있다는 장점은 있지만 신뢰할 수 없다는 만점이 있다. 또한 자바 언어 자체의 문제에 의해 안전하지 못한 코드가 생성 될 수도 있다. 본 논문은 다중스레드 코드가 플랫폼에 독립적인 특성을 갖출 수 있도록 다중스레드 코드를 자바 가상 머신에서 실행 가능하도록 한다. 또한 번역시에 자바에서 발생할 수 있는 문제들을 고려하여 안전한 바이트코드를 생성한다. 즉, 다중스레드 모델의 스레드 코드를 플랫폼에 독립적이고 외부 공격으로부터 안전한 자바 바이트코드로 변환하는 번역기를 선계, 구현한다.구센타와 병원간에 임상정보와 유전체 분석정보의 공유가 필수적으로 발생하게 됨으로, 유전체 정보와 임상정보의 통합은 미래 의료환경에 필수기능이 될 것이다. 3) 각 생명공학 연구소에서 사용하는 첨단 분석 장비와 생명공학 정보시스템의 자동 연계가 필요하다. 현재 국내에는 전국적인 초고속정보망이 가동되어 웹을 기반으로 하는 생명정보의 공유는 기술적으로 문제가 될 수 없으나 임상정보의 유전체연구에 그리고 유전체연구정보의 임상활용은 다양한 문제를 내포하고 있다. 이에 영상을 포함한 환자정보의 유전체연구센터와 병원정보시스템과의 효율적인 연계통합 운영을 위해 국내에서는 초기 도입단계에 있는 국제적인 보건의료정보의 표준인 Health Level 7 (textural information 공유), DICOM (image 및 wave 공유), 관련 ISO표준, WHO의 ICD9/10 (질병분류), LOINC (검사 및 관련용어), SNOMED International (의학용어) 등을 활용하여야 한다.matrix. The prediction system gives about 50% of sensitivity and 98% of specificity, Based on the PID matrix, we develop a system providing several interaction information-finding services in the Internet. The system, named PreDIN (Prediction-oriented Database of Interaction Network) provides interacting domain finding

  • PDF