• 제목/요약/키워드: 정적타입추론

검색결과 7건 처리시간 0.023초

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

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

  • PDF

바이트코드를 위한 정적 단일 배정문 기반의 정적 타입 추론 (Static Type Inference Based on Static Single Assignment for Bytecode)

  • 김지민;김기태;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제11권4호
    • /
    • pp.87-96
    • /
    • 2006
  • 바이트코드는 많은 장점을 가지고 있으나 수행 속도가 느리고 프로그램의 분석과 최적화에 알맞은 표현은 아니다. 분석과 최적화를 위하여 바이트코드를 정적 단일 배정문(SSA Form)으로 변환이 수행되어야 한다. 그러나 바이트코드에서 SSA Form으로 변환 시 어떤 변수는 타입 정보를 상실한다. 이를 해결하기 위하여 본 논문에서는 바이트코드에 대한 확장된 제어 흐름 그래프를 생성한다. 또한 정적으로 분석하기 위해 제어 흐름 그래프를 SSA Form으로 변환한다. SSA Form으로 변환을 위하여 지배자. 직접 지배자. 지배자 경계. ${\phi}$-함수, 재명명 등 많은 정보에 대한 계산을 수행한다. 생성된 SSA Form에 알맞은 타입을 선언하기 위해서 다음과 같은 동작들을 수행한다. 먼저 클래스의 호출그래프와 상속 그래프를 생성한다. 그리고 각 노드에 대한 정보를 수집한다. 수집된 정보를 기반으로 동등한 타입의 노드를 찾고 강 결합 요소로 설정한 후 각 노드에 타입을 효율적으로 설정하는 방법을 제안하였다.

  • PDF

Cartesian Product Algorithm을 사용한 JavaScript-to-C++ 타입 추론 컴파일러 (JavaScript-to-c++ Type Inferencing Transcompiler Using Cartesian Product Algorithm)

  • 김재주;한환수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2015년도 추계학술발표대회
    • /
    • pp.910-913
    • /
    • 2015
  • 자바스크립트는 웹 페이지를 제어하기 위한 표준적인 스크립트 언어로 오랫동안 사용되어 왔다. 최근 웹 앱이나 서버사이드 응용 프로그램을 자바스크립트로 작성하게 되면서, 자바스크립트 프로그램을 더욱 빠르게 동작하도록 만드는 것이 중요한 이슈가 되었다. 본 논문에서는 암시적인 동적 타입 시스템을 사용하는 자바스크립트 언어에 Cartesian Product Algorithm을 적용하여 타입을 추론하고, 이 정보를 바탕으로 정적 타입 시스템인 C++ 코드로 변환하는 컴파일러의 구조와 알고리즘을 제시한다.

CTOC에서 정적 단일 배정문 형태를 이용한 지역 변수 분리 (Split Local Variables Using Static Single Assignment Form in CTOC)

  • 이갑래;유원희;김기태
    • 한국콘텐츠학회논문지
    • /
    • 제5권3호
    • /
    • pp.73-81
    • /
    • 2005
  • CTOC(Classes To Optimized Classes)는 자바 바이트코드의 최적화와 분석을 위해 현재 개발 중인 프레임워크이다. CTOC는 스택 기반인 바이트코드를 최적화와 분석을 쉽게 하기 위해 3-주소 형태로 변환한다. 바이트코드가 타입에 관한 정보를 포함하지만 스택 기반의 동작을 수행하기 때문에 지역 변수를 위한 명시적인 타입을 갖지 못하는 경우가 발생한다. 따라서 바이트코드에서 3-주소 형태로 변환하는 과정에 사용되는 모든 변수는 정적 타입을 가져야 하는 문제점이 발생한다. 왜냐하면, 프로그램의 최적화나 분석을 위해서는 지역 변수의 타입을 알아야 하기 때문이다. 본 논문은 CTOC 프레임워크의 전반부로 바이트코드를 스택을 사용하지 않는 3-주소 형태로 변환하는 과정을 수행한다. 이 과정에서 스택 코드 형태인 CTOC-B 코드를 생성하고, 제어 흐름 그래프를 생성하여 바이트코드 수준에서 분석을 수행한다. 또한 정적 타입을 제공하기 위한 중간 과정으로 타입을 갖지 않는 CTOC-T 코드를 생성한다. 이를 위해 정적 단일 배정문 형태(Static Single Assignment Form)를 사용하여 모든 변수를 분리하고 각 변수에 새로운 이름으로 재명명하는 동작을 수행한다. 분리된 변수들은 추후 정적 타입 추론을 위한 준비 단계로 사용된다.

  • PDF

개선된 퍼지 추론 규칙을 이용한 색채 정보 인식에 관한 연구 (A Study on Color Information Recognition with Improved Fuzzy Inference Rules)

  • 우승범;김광백
    • 한국콘텐츠학회:학술대회논문집
    • /
    • 한국콘텐츠학회 2009년도 춘계 종합학술대회 논문집
    • /
    • pp.105-111
    • /
    • 2009
  • RGB 모델을 통한 정적인 추론 규칙을 적용한 기존의 색채 정보 인식 방법은 RGB모델이 가지는 인간 시각과의 괴리감과 특정한 환경에서만 적용할 수 있는 문제점이 있다. 본 논문에서는 HSI 모델을 적용하여 색채에 대한 인간 인식 과정과 유사한 형태의 추론 방식과, 사용자에 의해서 추론규칙을 추가, 수정, 삭제 할 수 있는 방법을 제안한다. 본 논문에서는 H, S, I 각각의 소속구간에 대하여 H는 Sine, Cosine 함수를 사용하여 소속구간을 설계하였으며, S, I는 삼각 타입의 소속 함수로 설계하였다. 설계된 각각의 소속구간에 대하여 소속구간 병합을 적용하여 소속도를 계산하고, 계산된 결과들은 미리 제시된 추론규칙에 적용하여 색채를 추론한다. 제안된 두 가지 방법을 적용하여 실험한 결과, 기존의 방법보다 제안된 방법이 비교적 직관적이며 효율적인 형태로 결론을 도출할 수 있음을 확인하였다.

  • PDF

개선된 퍼지 추론 기법을 이용한 칼라 분석 (Color Analysis with Enhanced Fuzzy Inference Method)

  • 김광백
    • 한국컴퓨터정보학회논문지
    • /
    • 제14권8호
    • /
    • pp.25-31
    • /
    • 2009
  • RGB 모델을 통한 정적인 추론 규칙을 적용한 기존의 색채 정보 인식 방법은 RGB 모델이 가지는 인간 시각과의 괴리감과 특정한 환경에서만 적용할 수 있는 문제점이 있다. 본 논문에서는 HSI 모델을 적용하여 색채에 대한 인간 인식 과정과 유사한 형태의 추론 방식과, 사용자에 의해서 추론 규칙을 추가, 수정, 삭제 할 수 있는 방법을 제안한다. 본 논문에서는 각각의 H, S, I 소속 구간에 대하여 H는 Sine, Cosine 함수를 사용하여 소속 구간을 설계하며, S, I는 삼각형 타입의 소속 함수로 설계한다. 설계된 각각의 소속 구간에 대하여 소속 구간 병합을 적용하여 소속도를 계산하고, 계산된 결과들은 미리 제시된 추론 규칙에 적용하여 색채를 추론한다. 제안된 두가지 방법을 적용하여 실험한 결과, 기존의 방법보다 제안된 방법이 비교적 직관적이며 효율적인 형태로 결론을 도출할 수 있음을 확인하였다.

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이 적용된 그래프는 추후에 타입 추론과 최적화를 위해 사용된다.