• 제목/요약/키워드: Static Type Assignment

검색결과 10건 처리시간 0.019초

Static Type Assignment for SSA Form in CTOC

  • Kim, Ki-Tae;Yoo, Weon-Hee
    • Journal of Information Processing Systems
    • /
    • 제3권1호
    • /
    • pp.26-32
    • /
    • 2007
  • Although the Java bytecode has numerous advantages, it also has certain shortcomings such as its slow execution speed and difficulty of analysis. In order to overcome such disadvantages, a bytecode analysis and optimization must be performed. The control flow of the bytecode should be analyzed; next, information is required regarding where the variables are defined and used to conduct a dataflow analysis and optimization. There may be cases where variables with an identical name contain different values at different locations during execution, according to the value assigned to a given variable in each location. Therefore, in order to statically determine the value and type, the variables must be separated according to allocation. In order to achieve this, variables can be expressed using a static single assignment form. After transformation into a static single assignment form, the type information of each node expressed by each variable and expression must be configured to perform a static analysis and optimization. Based on the basic type information, this paper proposes a method for finding the related equivalent nodes, setting nodes with strong connection components, and efficiently assigning each node type.

정적 단일 배정 형태를 위한 정적 타입 배정에 관한 연구 (A Study on Static Type Assignment for Static Single Assignment Form)

  • 김기태;유원희
    • 한국콘텐츠학회논문지
    • /
    • 제6권2호
    • /
    • pp.117-126
    • /
    • 2006
  • 자바 바이트코드는 많은 장점을 갖지만 수행 속도가 느리고 분석이 어렵다는 단점을 갖는다 이를 극복하기 위해 바이트코드에 대한 분석과 최적화가 수행되어야 한다. 우선 바이트코드에 대한 제어 흐름 분석을 수행한다. 제어 흐름 분석 후 데이터 흐름 분석과 최적화를 위해서 변수가 어디서 정의되고 어디서 사용되는지에 대한 정보가 필요하다. 각 위치에서 변수에 배정되는 값에 따라 동일한 이름의 변수가 다른 위치에서 다른 값을 가지는 경우가 발생한다. 따라서 정적으로 값과 타입을 결정하기 위해서 변수는 배정되는 것에 따라 분리되어야 한다. 이를 위해 단일 배정 형태를 이용하여 표현할 수 있다. 정적 단일 배정형태(SSA Form)로 변경한 후 정적 분석과 최적화를 위해서는 각 변수와 표현식이 나타내는 각각의 노드에 타입 정보를 설정해야 한다. 본 논문은 타입에 대한 기본 정보를 바탕으로 관련된 동등한 노드를 발견하고 강 결합 요소로 설정한 후 각 노드에 타입을 효율적으로 설정하는 방법을 제안한다

  • 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

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

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

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 형태의 표현식에 대해 최적화를 적용하기 위해 중복된 표현식을 제거한다. 본 논문에서는 좀더 최적화된 코드를 얻기 위해 부분 중복 표현식을 정의하고, 부분 중복 표현식을 제거하는 방법을 구현한다.

Compromise Scheme for Assigning Tasks on a Homogeneous Distributed System

  • Kim, Joo-Man
    • Journal of information and communication convergence engineering
    • /
    • 제9권2호
    • /
    • pp.141-149
    • /
    • 2011
  • We consider the problem of assigning tasks to homogeneous nodes in the distributed system, so as to minimize the amount of communication, while balancing the processors' loads. This issue can be posed as the graph partitioning problem. Given an undirected graph G=(nodes, edges), where nodes represent task modules and edges represent communication, the goal is to divide n, the number of processors, as to balance the processors' loads, while minimizing the capacity of edges cut. Since these two optimization criteria conflict each other, one has to make a compromise between them according to the given task type. We propose a new cost function to evaluate static task assignments and a heuristic algorithm to solve the transformed problem, explicitly describing the tradeoff between the two goals. Simulation results show that our approach outperforms an existing representative approach for a variety of task and processing systems.

대소관계 그래프를 이용한 Just-in-Time 컴파일 환경에서의 배열 경계 검사 제거 (Array Bounds Check Elimination using Ineguality Graph in Java Just-in-Time Compiler)

  • 최선일;문수묵
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권12호
    • /
    • pp.1283-1291
    • /
    • 2005
  • Just-in-Time 컴파일러를 이용하여 자바의 성능을 향상시키려면 여러 문제들을 극복하여야 한다. 이 문제 중 중요한 부분을 차지하는 것이 배열경계 검사(Array bounds check) 명령어를 어떻게 최적화하느냐는 것이다 정적인 컴파일 환경의 경우에는 이미 많은 연구가 진행되어 매우 강력한 성능을 가지는 알고리즘이 알려져 있으나 컴파일 시간이 수행시간의 일부인 Just-in-Time 컴파일 환경에 이를 적용하기에는 컴파일에 시간을 너무 많이들이는 결과를 낳아 적절하지 않다. 현재 Just-in-Time 컴파일러들은 가볍고 단순한 반면에 중복된 배열 경계 검사를 찾아내는 능력이 다소 부족한 알고리즘을 사용하거나 아니면 강력하지만 정적 단일 배정(Static Single Assignment) 형태로 명령어 표현 방식을 변환해 주어야만 하는 알고리즘을 사용하고 있다. 정적 단일 배정 형태로의 변환 및 되돌림은 가볍고 빠른 컴파일러를 지향하는 Just-in-Time 컴파일러에 부합되지 않는다. 본 논문은 변수 간의 대소관계를 표현하는 그래프를 배열 경계 검사 알고리즘에 적용하는 것을 통해 충분한 성능을 내면서도 정적 단일 배정 형태로의 변환을 필요로 하지 않는 알고리즘을 제안한다. Java에서의 모든 최적화는 Java 언어 명세에서 강제하고 있는 정확한 예외 처리(precise exception) 규칙을 따라야 한다. 명령어의 위치를 바꿈으로써 성능 향상을 꾀하는 최적화의 경우 이것으로 인해 많은 제약을 받게 되는데, 배열 경계 검사 최적화(Array bounds check elimination optimization) 또한 이 규칙에 의해 많은 최적화 기회를 잃는다. 우리는 이 제약을 극복하여 배열 경계 검사최적화의 적용 범위를 넓힐 수 있는 새로운 방법도 아울러 제안하고자 한다.

CTOC에서 죽은 코드 제거 구현 (Implementation of Dead Code Elimination in CTOC)

  • 김기태;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제12권2호
    • /
    • pp.1-8
    • /
    • 2007
  • 자바 바이트코드가 많은 장점을 갖지만, 수행 속도가 느리고 분석하기 어렵다는 단점이 존재한다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 최적화된 코드로 변환이 요구된다. 최적화된 코드로 변환하기 위해 CTOC를 구현하였다. 정적으로 값과 타입을 결정하기 위해 CTOC는 변수를 배정에 따라 분리하는 SSA Form을 사용하였다. 또한 문장의 표현을 위해 트리 구조를 사용하였다. 하지만 SSA Form 변환 과정에서 $\phi$-함수의 삽입에 의해 오히려 노드의 수가 증가하게 되었다. 본 논문은 SSA Form에서 더욱 최적화된 코드를 얻기 위해 죽은 코드를 제거하는 과정을 보인다. 각 노드에 대해 새로운 live 필드를 추가하고 트리 구조에서 죽은 코드 제거 과정을 수행한다. 실험 결과를 통해 죽은 코드 제거 후 상당한 노드의 수가 줄어든 것을 확인할 수 있다.

  • PDF

장상논(臟象論)과 어조주갑류(魚鳥走甲類)에 대한 고찰 (Concepts on Appearance Diagnosis and Four HyungSang Types - Fish, Bird, Horse, and Turtle -)

  • 김종원;전수형;지규용;김경철;이인선;이광영;김규곤;이용태
    • 동의생리병리학회지
    • /
    • 제23권1호
    • /
    • pp.34-40
    • /
    • 2009
  • After a research on appearance diagnosis and fish, bird, horse, and turtle types, this study concluded as following. Appearance diagnosis is a technique that exams five jang organs by color and shape of eye, nose, mouth, and ear. Four HyungSang types-including fish, bird, horse and turtle types-are evaluated upon the external shape that are created while type of seed changes. Appearance diagnosis focuses on five jang organs. Four HyungSang types focus on external shape, but are eventually related to five jang organs. Thus, two different techniques possess a point in common; five jang organs. The assignment of nose, eye, ear and mouth to the Five elements varies between two techniques. On the viewpoint of formation, appearance diagnosis assigns them to metal-water-wood-fire-earth and movement, and four HyungSang types do to wood-fire-earth-metal-water and constitution. On the viewpoint of body/use and static/dynamic, appearance diagnosis assigns them to metal-water-wood-fire-earth and constitution, and four HyungSang types do to wood-fire-earth-metal-water and movement. If nose, eye, ear, and mouth are assigned by on four HyungSang types, which are based on external shape, the assignment can be utilized in diagnosis. If, however, they are assigned by appearance diagnosis, it can be focus on treatment. Five jang organs and six fu organs are affected by internal conditions because they are located inside of human body, while four HyungSang types are affected by external conditions because it deals with external shape. If a disease occurs in the developed part of the body, it would be difficult to be cured because four HyungSang types depend on external shapes.