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

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

CTOC에서 복사 전파 (Copy Propagation in CTOC)

  • 김기태;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제12권1호
    • /
    • pp.1-8
    • /
    • 2007
  • 자바 바이트코드는 다양한 장점을 갖지만. 실행속도가 느리고 분석이 어렵다는 단점이 존재한다. 따라서 네트워크와 같은 실행환경에서 효과적으로 실행되기 위해서는 최적화된 코드로 변환이 요구된다. 최적화된 코드로 변환하기 위해 CTOC가 구현되었다. CTOC는 기존의 바이트코드를 이용해서 CFG를 생성한 후 분석과 최적화를 위해 SSA Form을 생성하였다. 하지만 SSA Form으로 변환하는 과정에서 ${\phi}$-함수의 삽입으로 인해 노드의 개수가 늘어나는 현상이 발생하였다. 노드의 개수를 줄이기 위한 한 가지 방법으로 SSA Form에서 적용 가능한 최적화인 복사 전파를 수행하였다. 복사 전파란 하나의 변수 값이 다른 변수의 값으로 복사하는 과정이다. 복사 전파에 의한 변환은 변환 자체로는 큰 효과를 나타내지 못하는 경우가 존재하지만 이후 최적화 과정에서 변수가 사용되지 않는 경우 해당 변수에 대한 복사식을 제거할 수 있는 가능성을 제공하기 때문에 중요한 과정이다. 본 논문은 SSA Form에서 좀 더 최적화된 코드를 얻기 위한 복사 전파 수행을 보인다.

  • PDF

CTOC에서 자바 바이트코드 최적화를 위한 Value Numbering (Value Numbering for Java Bytecodes Optimization in CTOC)

  • 김기태;김지민;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제11권6호
    • /
    • pp.19-26
    • /
    • 2006
  • CTOC에서 SSA Form으로 변경된 표현식에 대해 최적화를 적용하기 위해선 중복된 표현식을 제거하여야 한다. 본 논문에서는 이를 위해 VN(Value Numbering)을 적용하였다. VN을 수행하기 위해서 우선 SSA Form 형태로 정보를 유지하는 SSAGraph를 생성하고, 그래프에서 동등한 노드를 찾은 후, SCC(Strong1y Connected Component)를 생성한다. SCC를 통해 동등한 노드에 같은 valnum을 설정하게 된다. VN을 수행한 결과 SSA Form 수행 과정에서 추가되었던 많은 노드에 대한 제거를 확인할 수 있었다. 설정된 valnum은 최적화와 타입 추론에 적용된다.

  • PDF

SSA Form에서 부분 중복 제거를 이용한 최적화 (Optimization Using Partial Redundancy Elimination in SSA Form)

  • 김기태;유원희
    • 정보처리학회논문지D
    • /
    • 제14D권2호
    • /
    • pp.217-224
    • /
    • 2007
  • CTOC에서는 정적으로 값과 타입을 결정하기 위해 변수를 배정에 따라 분리하는 SSA Form을 사용한다. SSA Form은 최근 데이터 흐름분석과 코드 최적화를 위해 컴파일러의 중간 표현으로 많이 사용되고 있다. 하지만 기존의 SSA Form은 표현적보다는 주로 변수에 관련된 것이다. 따라서 SSA Form 형태의 표현식에 대해 최적화를 적용하기 위해 중복된 표현식을 제거한다. 본 논문에서는 좀더 최적화된 코드를 얻기 위해 부분 중복 표현식을 정의하고, 부분 중복 표현식을 제거하는 방법을 구현한다.

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

  • 김기태;유원희
    • 정보처리학회논문지D
    • /
    • 제13D권7호
    • /
    • pp.939-946
    • /
    • 2006
  • 자바 바이트코드는 많은 장점을 갖지만 수행 속도가 느리고 분석이 어렵다는 단점을 갖는다. 이를 극복하기 위해 바이트코드에 대한 분석과 최적화가 수행되어야 한다. 최적화된 코드를 위해 CTOC를 구현하였다. 바이트코드에 대해 분석과 최적화를 수행하기 위해서는 우선 CFG를 생성해야 한다. 바이트코드의 특성 때문에 기존의 제어 흐름 분석 기술을 바이트코드에 적합하게 확장해야 한다. 또한 정적으로 분석하기 위해 CFG를 SSA Form으로 변환한다. SSA Form으로 변환하기 위해서는 지배 관계, 지배자 트리, 직접 지배자, $\phi$-함수, 재명명, 지배자 경계 등 많은 정보에 대한 계산을 수행한다. 본 논문은 기존의 CFG로부터 SSA Form으로 변환을 위해 알고리즘과 변환 과정을 기술한다. SSA Form이 적용된 그래프는 추후에 타입 추론과 최적화를 위해 사용된다.

스택기반코드에서 효율적인 3-주소 코드로의 변환기 설계 (Design of Translator for Efficient 3-Address Code from Stack Based Code)

  • 김지민;김기태;조선문;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 추계학술발표논문집(상)
    • /
    • pp.433-436
    • /
    • 2004
  • 자바 언어는 객체지향 언어로써 인터프리터에 의하여 실행되고 구조 중립적이다. 자바 언어는 인터프린트 과정을 거치므로 다른 언어에 비해서 실행이 느리다는 단점을 가지고 있다. 자바 바이트코드의 실행 비용을 줄이기 위한 연구의 일환으로 본 논문에서는 자바 바이트코드 최적화기인 CTOC 중에서 스택기반 코드를 받아 들여 스택을 사용하지 않는 3-주소 코드로 변화시키는 CTOC-TR의 설계에 대하여 논한다. CTOC-TR은 총 3단계를 변환 과정을 수행하는데 첫 단계에서는 타입 없는 3-주소코드를 생성한다. 두 번째 단계에서는 스택변수와 지역변수를 나누는 과정을 수행하는데 이 과정은 타입을 정해주기 위해서 꼭 필요한 과정이다. 마지막으로 타입 추론 함수를 이용하여 나누어진 변수에 타입을 지정한다. 그 후 생성된 3-주소 코드를 분석기와 최적화기에 입력시켜 효율적인 3-주소 코드를 생성한다.

  • PDF

CTOC에서 3-주소 코드를 위한 정적 타입 추론 (Inference of Static Types for 3-Address Codes in CTOC)

  • 김기태;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 추계학술발표논문집(상)
    • /
    • pp.437-440
    • /
    • 2004
  • 자바 바이트 로드 명령어는 타입에 관한 정보를 포함하고 있다. 그러나 기본적으로 스택 기반으로 동작이 수행되기 때문에 지역 변수를 위한 명시적인 타입을 가지지 않는다. 하지만 프로그램의 최적화나 역컴파일을 위해서는 지역 변수의 타입을 아는 것이 중요하다. 본 논문은 스택을 사용하지 않는 3-주소 코드에서 지역 변수를 위한 정적 타입 추론을 구현한다. 이를 위해 본 논문에서는 SSA와 방향성 그래프를 적용한다.

  • PDF

CTOC에서 3주소 코드를 효율적인 스택 기반 코드로의 변환기 설계 (Design of Translator for Efficient Stack Based Codes from 3-Address Codes in CTOC)

  • 김영국;김기태;조선문;김웅식;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (1)
    • /
    • pp.766-768
    • /
    • 2004
  • 자바는 객체 지향 언어이고, 분산 환경을 지원하고, 플랫폼에 독립적인 장정을 갖지만 다른 C나 C++같은 컴파일언어에 비해서는 실행속도가 느리다는 단점을 가진다. 이러한 단점을 극복하기 위한 방법으로 네이티브 코드로의 변환, 코드 최적화, JIT 컴파일 방법 등을 이용한다. 그러나 이전 방법들은 다음과 같은 한계점을 가진다. 클래스 파일을 네이티브 코드로의 변환은 플랫폼의 종속되고, 코드 최적화 방법은 고유의 최적화 방법만을 적용할 수 있었고, JIT컴파일 방법은 한 번의 실행 후 다음 실행해야 속도향상을 꾀할 수 있었다. 본 논문은 바이트 코드를 최적화하기 위한 자바최적화 프레임워크를 설명하고 자바최적화 프레임워크의 구성을 하는 부분 중 3주소형식의 중간코드를 스택기반 코드로 변환하는 부분을 설계하고. 3주소 코드로 변환한 중간 코드를 스택 기반 코드로 변환하면서 생기는 과다한 load/store의 문제점을 지적하고 그것을 해결할 수 있는 변환기를 제안한다.

  • PDF

바이트코드 최적화 프레임워크의 설계 (Design of Bytecode Optimization Framework)

  • 김영국;김경수;김기태;조선문;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.297-300
    • /
    • 2004
  • 자바는 객체지향 언어이고 바이트코드로 번역 이후에는 플랫폼에 독립적으로 가상머신에 의해 실행될 수 있기 때문에 소프트웨어 개발과 유지보수에 많은 장점을 갖는다. 이러한 특징으로 인해 플랫폼에 독립적인 소프트웨어 개발에는 자바가 많이 이용된다. 그러나 바이트코드로 작성된 프로그램은 가상기계에서 인터프리터 방식으로 수행된다. 때문에 프로그램의 실행속도가 느리게 실행되는 문제점을 가지고 있다. 실행속도의 문제점을 해결하기 위한 여러 가지 방법들이 연구가 진행중이다. 본 논문은 자바 바이트코드가 가상기계에서 인터프리터 방식으로 수행할 때 바이트코드의 크기를 줄여 해석하는 부담을 줄이기 위해서 바이트 코드를 최적화하는 프레임워크를 구성한다. 프레임워크를 이용하여 바이트코드를 3주소 형태의 CTOC-T(Class To Optimizer Classes-Three Address Code)로 변환하여 프로그램을 분석을 할 수 있다. 또한 CTOC-T는 3주소 형태이므로 3주소 최적화 기법을 적용하여 최적화된 바이트코드를 생성하는 프레임워크를 설계한다.

  • PDF

스택-기반 코드로부터 분석을 위한 CFG 생성기의 구현 (Implementation of the CFG generator for the analysis from The stack-based codes)

  • 김영국;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (2)
    • /
    • pp.433-435
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 중간코드로 사용하는 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 코드가 생성된다. 이러한 불필요한 코드를 제거하기 위한 정보를 필요로 한다. 필요한 정보를 얻기 위한 분석기로 CFG생성기를 설계 및 구현한다.

  • PDF

하폐수의 재사용 및 방류를 위한 폭기조 내 표준산소전달 효율 모니터링 시스템에 관한 연구 (Study on the Standard Oxygen Transfer Efficiency Monitoring System in the Aeration Tank for Reuse and Discharge of Wastewater)

  • 김홍석;김용범;고경한;김상우;심환보
    • 자원리싸이클링
    • /
    • 제28권6호
    • /
    • pp.73-78
    • /
    • 2019
  • 본 연구에서는 활성 슬러지 하수처리장에서 배출되는 off-gas에 대한 포집 및 측정 모니터링을 통해 폭기조의 산소전달효율을 측정하고 청수와 비교하여 시스템의 신뢰성을 검증하는 연구를 수행하였다. 먼저, 청수를 기반으로 용존산소, 산소전달계수 및 표준산소전달효율을 측정하였으며 각각 8.60 mg/L, 9.49/hr, 23.96%의 값이 얻어졌다. 한편, 하수처리장 현장에서 진행한 off-gas 시험 결과 표준산소전달효율이 22.81%로 계산되어 청수와의 차이가 거의 없는 것으로 나타났다. 이는 현장에 설치된 산기관의 성능 및 폭기조의 상황을 모니터링 시스템을 이용해 실시간으로 확인함으로써 신뢰성있는 데이터를 확보할 수 있음을 의미한다.