• 제목/요약/키워드: 중간코드

검색결과 197건 처리시간 0.025초

자바 바이트코드의 .NET MSIL 중간언어 번역기 (Java Bytecode-to-.NET MSIL IL Translator)

  • 정지훈;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2003년도 추계학술발표논문집 (중)
    • /
    • pp.663-666
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사의 제임스 고슬링(James Gosling)에 의해 고안된 언어로 운영체제 및 하드웨어 플랫폼에 독립적인 차세대 언어로 최근에 가장 널리 사용하는 범용 프로그래밍 언어 중 하나이다. 자바 프로그램은 컴파일러에 의해 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드로 변환된 클래스 파일로 생성되면 JVM(Java Virtual Machine)에 의해 실행된다. 마이크로소프트사의 .NET 플랫폼과 C# 언어는 프로그래머들의 요구를 충족시키고 썬사의 JVM 환경과 자바 언어에 대응하기 위해서 개발된 플랫폼과 언어이다. C#과 같은 .NET 언어는 컴파일러에 의해 MSIL(MicroSoft Intermediate Language) 코드로 번역되며 번역된 MSIL 코드는 .NET 플랫폼 환경에서 런타임 엔진인 CLR(Common Language Runtime)에 의해 실행이 된다. 자바로 작성된 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성된 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 이런 이유로 본 논문에서는 자바소스를 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 생성하고 생성된 Oolong 코드를 .NET의 MSIL 코드로 변환하여 자바로 구현된 프로그램이 .NET 환경에서 실행되도록 하는 Bytecode-to-MSIL 번역기 시스템을 구현하였다. 따라서, 자바 프로그래머는 JVM이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다. 번역기 시스템의 구현을 정형화하기 위해 Oolong 코드의 명령어들을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였으며, 파싱테이블을 가지고 파서를 설계하였다. 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 MSIL 코드를 생성하도록 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다.

  • PDF

효과 타입 시스템을 이용한 기계어 코드의 검증 (Verification of Machine Codes using an Effect Type System)

  • 정재윤;류석영;이광근
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제27권8호
    • /
    • pp.886-901
    • /
    • 2000
  • 네트웍을 이용한 분산 컴퓨팅 환경이나 소프트웨어의 안전성이 중요한 시스템 등에서, 외부로 부터 전달되는 코드의 안전성을 검증하는 일이 점점 더 중요한 문제가 되고 있다. 전자메일에 첨부되어 온 코드나 웹브라우저를 통해 외부로부터 전달된 코드를 수행하는 일이 일상생활에서 자주 발생하고 있다. 본 논문에서는 기계어 코드의 성질을 검증하는 방법을 제안한다. 코드제공자가 기계어를 만듦과 동시에 그 기계어 코드의 성질을 만들어내어 전달하면, 코드사용자는 전달받은 코드와 그 성질이 부합하는지를 검사하는 것이다. 소스언어의 안전성은 잘 정의된 컴파일러 시스템이 검증해 주지만, 중간언어나 기계어 코드의 성질을 검증하는 잘 정의된 방법은 아직 개발되어있지 않다. 중간언어로 etySECK을 설계하고 이 언어로 작성된 프로그램의 성질을 검증하는 방법을 제안한다. 그리고 타입과 효과분석방식을 사용하여 설계된 시스템의 안전성을 증명한다.

  • PDF

데이터 출현 빈도를 이용하여 코드 밀도를 조절하는 데이터 스크램블링 기법 (Data Scrambling Scheme that Controls Code Density with Data Occurrence Frequency)

  • 현철승;정관일;유수원;이동희
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제10권9호
    • /
    • pp.235-242
    • /
    • 2021
  • 기존 데이터 스크램블링 기법은 랜덤한 코드를 생성한다. 이와 다르게 우리는 생성하는 코드의 밀도를 다르게 만드는 가변 밀도 스크램블링 기법을 제안한다. 먼저 코드 밀도를 다르게 만드는 조건과 방법에 대해 설명한다. 다음으로 가변 밀도 스크램블링 기법을 플래시 메모리에 적용하여 특정 셀 상태가 더 많이 발생하도록 한다. 특히 플래시 메모리의 에러율을 제한하기 위하여, 가변 밀도 스크램블링 기법은 코드의 밀도를 조절하여 모든 셀 상태 중 중간 상태를 가지는 셀 비율을 높일 수 있다. 윈도우즈와 리눅스 시스템의 데이터에 가변 밀도 스크램블링 기법을 적용하였으며, 실험 결과는 가변 밀도 스크램블링 기법이 중간과 가까운 상태를 가지는 셀의 비율을 증가시킴을 보여준다.

PCA 알고리즘과 개선된 퍼지 신경망을 이용한 여권 인식 및 얼굴 인증

  • Jung Byung-Hee;Park Choong-Shik;Kim Kwang-Baek
    • 한국지능정보시스템학회:학술대회논문집
    • /
    • 한국지능정보시스템학회 2006년도 춘계학술대회
    • /
    • pp.336-343
    • /
    • 2006
  • 본 논문에서는 여권 영 상에서 PCA 알고리즘을 이용한 얼굴 인증과 개선된 퍼지 신경망을 이용한 여권 코드 인식 방법을 제안한다. 본 논문에서는 여권영상에 대해 소벨 연산자를 이용하여 에지를 추출하고 에지가 추출된 영상을 수평 스미어링하여 여권코드 영역을 추출한다. 추출된 여권 코드 영역의 기울기를 검사하여 기울기 보정을 하고, 여권 코드 영역을 이진화 한다. 이진화된 여권 코드 영역에 대하여 8방향윤곽선 추적 알고리즘을 적용하여 여권 코드를 추출한다. 추출된 여권 코드는 퍼지 신경망을 개선하여 여권 코드 인식에 적용한다. 개선된 퍼지 신경 망은 입력층과 중간층 사이의 학습 구조로는 FCM 클러스터링 알고리즘을 적용하고 중간층과 출력층 사이의 학습은 일반화된 델타학습 방법을 적용한다. 그리고 학습 성능을 개선하기 위하여 중간층과 출력층의 가중치 조정에 적용되는 학습률을 동적으로 조정하기 위해 퍼지 제어 시스템을 적용한다. 제안된 퍼지 신경망은 목표값과 출력값의 차이에 대한 절대값이 ${\epsilon}$ 보다 적거나 같으면 정확으로 분류하고 크면 부정확으로 분류하여 정확의 총 개수를 퍼지 제어 시스템에 적용하여 학습률과 모멘텀을 동적으로 조정한다. 여권의 주어진 규격에 근거하여 사진 영역을 추출하고 추출된 사진 영역에 대하여 YCbCr와 RGB 정보를 이용하여 얼굴영역을 추출한다. 추출된 얼굴 영역을 PCA 알고리즘과 스냅샷(Snap-Shot) 방법을 적용하여 얼굴 영역의 위조를 판별한다. 제안된 방법의 여권 코드 인식과 얼굴 인증의 성능을 평가하기 위하여 실제 여권 영상에 적용한 결과, 기존의 방법보다 여권 코드 인식과 얼굴 인증에 있어서 효율적인 것을 확인하였다.s, whereas AVs provide much better security.크는 기준년도부터 2031년까지 5년 단위로 계획된 장래도로를 반영하여 구축된다. 교통주제도 및 교통분석용 네트워크는 국가교통DB구축사업을 통해 구축된 자료로서 교통체계효율화법 제9조의4에 따라 공공기관이 교통정책 및 계획수립 등에 활용할 수 있도록 제공하고 있다. 건설교통부의 승인절차를 거쳐 제공하며 활용 후에는 갱신자료 및 활용결과를 통보하는 과정을 거치도록 되어있다. 교통주제도는 국가의 교통정책결정과 관련분야의 기초자료로서 다양하게 활용되고 있으며, 특히 ITS 노드/링크 기본지도로 활용되는 등 교통 분야의 중요한 지리정보로서 구축되고 있다..20{\pm}0.37L$, 72시간에 $1.33{\pm}0.33L$로 유의한 차이를 보였으므로(F=6.153, P=0.004), 술 후 폐환기능 회복에 효과가 있다. 4) 실험군과 대조군의 수술 후 노력성 폐활량은 수술 후 72시간에서 실험군이 $1.90{\pm}0.61L$, 대조군이 $1.51{\pm}0.38L$로 유의한 차이를 보였다(t=2.620, P=0.013). 5) 실험군과 대조군의 수술 후 일초 노력성 호기량은 수술 후 24시간에서 $1.33{\pm}0.56L,\;1.00{\ge}0.28L$로 유의한 차이를 보였고(t=2.530, P=0.017), 술 후 72시간에서 $1.72{\pm}0.65L,\;1.33{\pm}0.3L$로 유의한 차이를 보였다(t=2.540, P=0.016). 6) 대상자의 술 후 폐환기능에 영향을 미치는 요인은 성별로 나타났다. 이에 따

  • PDF

LLVM 기반의 임베디드 시스템 성능 분석기의 연구 (A Study of LLVM-based Embedded System Performance Analyzer)

  • 조두산
    • 문화기술의 융합
    • /
    • 제8권1호
    • /
    • pp.577-582
    • /
    • 2022
  • 새로운 임베디드 시스템을 개발할 때 응용 프로그램과 에뮬레이터, 그리고 컴파일러를 동시에 개발한다. 모든 시스템 구성요소의 성능을 최적으로 개발하기 위해서는 응용 프로그램 개발시 부분 최적화를 동시에 진행하여야 한다. 이를 위하여 소스 레벨 성능 분석기를 개발하면 응용 프로그램 소스 코드를 모듈별로 성능 평가하여 최적화하는 것이 가능하다. 일반적으로 응용 프로그램의 성능은 반복문에서 결정된다. 소스코드를 중간표현 (Intermediate Representation) 코드 생성기를 이용하여 변환하고, 변환된 중간 표현 단계의 명령어들로 실행시간을 분석 할 수 있다. 실행시간 성능 평가 결과를 바탕으로 응용 프로그램 코드를 개선하면 최종적으로 개발된 통합 플랫폼에서 더 나은 결과물을 얻을 수 있다. 본 연구에서는 새로운 임베디드 시스템의 개발중에 응용 프로그램을 동시 개발하는 과정에서 사용 가능한 소스 레벨 성능 분석기에 대하여 기술하고 있다. 성능 분석기를 사용하면 최종 임베디드 시스템의 성능을 보다 빠르게 최적화하는 것이 가능하게 된다.

자바 언어를 위한 중간 언어 번역기 (Intermediate Language Translator for Jave Language)

  • 정지훈;박진기;이양선
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2003년도 추계학술발표대회(하)
    • /
    • pp.537-540
    • /
    • 2003
  • 자바와 .NET 언어는 프로그래머들이 프로그램을 개발하는데 가장 널리 사용되고 있는 언어이다. 프로그래머가 작성한 자바 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성한 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 그러므로 자바 프로그래머는 .NET 플랫폼 환경에 맞추어 프로그래밍하지 못하고, .NET 프로그래머는 JVM 플랫폼 환경에 맞추어 프로그래밍하지 못하는 단점이 있다. 본 논문에서 연구한 Bytecode-to-MSIL 번역기는 위의 단점을 해결한 것이다. 먼저 자바로 작성된 프로그램을 컴파일하여 생성된 클래스 파일(*.class)로부터 Oolong 역어셈블러를 이용하여 Oolong 코드를 추출한다. 추출된 Oolong 코드를 본 논문에서 연구한 Bytecode-to-MSIL 번역기로 .NET의 중간언어인 MSIL 코드로 변환하여 .NET 어셈블러로 실행파일을 만들어 자바 언어로 구현된 프로그램이 .NET 환경에서도 실행될 수 있도록 한다. 따라서, 자바 프로그래머나 .NET 프로그래머는 JVM 이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다.

  • PDF

LLVM의 해석기 가속을 위한 명령어 셋 디자인 (Instruction Set Design for Accelerating the LLVM Interpreter)

  • 정동헌;이석영;김재진;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2010년도 한국컴퓨터종합학술대회논문집 Vol.37 No.1(C)
    • /
    • pp.545-549
    • /
    • 2010
  • LLVM(Low-level Virtual machine)은 최적화된 컴파일 코드 생성을 위한 컴파일러 프레임워크를 목적으로 제작되었다. LLVM은 C언어로 작성된 코드를 효과적으로 머신에 비종속적인 중간코드로 표현하여 사용하므로 이를 잘 활용한다면 C언어를 위한 머신 비종속적인 '가상머신'으로 사용할 수 있다. 하지만 LLVM은 효과적인 컴파일러라는 원래의 설계목적 때문에 전반적으로 동적 수행에 대해 큰 고민 없이 디자인되었다. 이러한 디자인상의 한계는 가상 머신으로서의 성능에는 좋지 않은 영향을 끼치므로 이에 대한 보안이 필요하다. 우리는 LLVM의 명령어 셋에 추가명령어를 제안하여 LLVM 해석기의 성능향상을 얻어낼 것이다.

  • PDF

초기 코드백터 결정에 의한 LBG 알고리즘의 성능 개선 (Improvement of performance for the LBG algorithm by the decision of initial codevectors)

  • 홍지훈;조제황
    • 한국음향학회지
    • /
    • 제14권2호
    • /
    • pp.16-29
    • /
    • 1995
  • LBG 알고리즘은 국소적 최적 코드북 만을 보장하기 때문에 초기 코드벡터의 결정이 코드북의 성능을 결정한다. 본 논문에서는 초기 코드벡터의 결정에 있어서 이산여현변환 후에 발생되는 DC 항, 저주파 항, 중간주파 항, 그리고 고주파 항을 특징벡터로 하여 결정반지름에 의한 초기 코드벡터 결정 방법을 제안한다. 결정반지름이 증가함에 따라 소속되는 벡터수와 초기 코드벡터의 거리 표준편차가 증가함을 알 수 있다. 초기 코드백터의 결정에 있어서 DC 항은 $128\times128$ 영상과 $256\times256$ 영상의 모든 경우에 있어서 소속률이 0.9 이상인 결정반지름을 선택하고, 저주파 항, 중간주파 항, 그리고 고주파 항은 소속률이 약 0.6 이하의 결정반지름을 선택할 때 보다 우수한 성능의 코드북을 얻을 수 있다.

  • PDF

자바 바이트코드를 위한 최적화기의 설계 및 구현 (Design and Implementation of a Java Bytecode Optimizer)

  • 황순명;오세만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2000년도 추계학술발표논문집 (상)
    • /
    • pp.211-214
    • /
    • 2000
  • 자바 클래스 파일은 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드와 자료 구조로 구성됨으로서 네트워크를 통하여 플랫폼에 독립적으로 인터프리티브 컴파일링 시스템에서 실행된다. 그러나 클래스 파일을 생성하는 자바 컴파일러는 각 플랫폼에 독립적인 바이트코드 표현에 제약을 받기 때문에 효율적인 코드를 생성하는데 한계가 있다. 또한 자바 가상 기계에서 동적 링킹을 지원하기 위하여 고안된 상수 풀(constant pool)의 크기가 상대적으로 큰 특징을 갖는다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 작은 크기와 효율적인 코드에 대한 변환이 요구된다. 본 논문에서는 자바 클래스 파일이 인터넷 및 분산환경 시스템에서 효율적으로 실행되기 위해서 클래스 파일의 크기를 줄이는 방법과 자바 컴파일러가 생성한 바이트코드에 대해 최적화를 수행하는 최적화 방법론을 제시하고, 코드 최적화기를 설계 및 구현한다. 최적화된 클래스 파일은 코드 크기를 줄이고, 효율적인 코드를 생성함으로서 네트워크 상의 전송 속도뿐만 아니라 가상 기계에서 좀 더 빠르게 실행할 수 있다.

  • PDF

자바 바이트코드 최적화기의 설계 (Design of a Java Bytecode Optimizer)

  • 황순명;오세만
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 봄 학술발표논문집 Vol.27 No.1 (A)
    • /
    • pp.56-58
    • /
    • 2000
  • 자바 클래스 파일은 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드와 자료 구조로 구성됨으로서 네트워크를 통하여 플랫폼에 독립적으로 인터프리티브 컴파일링 시스템에서 실행된다. 그러나 클래스 파일을 생성하는 자바 컴파일러는 각 플랫폼에 독립적인 바이트코드 표현에 제약을 받기 때문에 효율적인 코드를 생성하는데 한계가 있다. 또한, 자바 가상 기계에서 동적 링킹을 지원하기 위하여 고안된 상수 풀(constant pool)의 크기가 상대적으로 큰 특징을 갖는다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 작은 크기와 효율적인 코드에 대한 변환이 요구된다. 본 논문에서는 자바 클래스 파일이 인터넷 및 분산환경 시스템에서 효율적으로 실행되기 위해서 클래스 파일의 크기를 줄이는 방법과 자바 컴파일러가 생성한 바이트코드에 대해 최적화를 수행하는 최적화 방법론을 제시하고, 코드 최적화기를 설계한다. 최적화된 클래스 파일은 코드 크기를 줄이고, 효율적인 코드를 생성함으로서 네트워크상의 전송 속도뿐만 아니라 가상 기계에서 좀 더 빠르게 실행할 수 있다.

  • PDF