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

Search Result 197, Processing Time 0.034 seconds

A Study on Informediated code for Analyzing Bytecodes (바이트코드 분석을 위한 중간코드에 관한 연구)

  • Kim, Kyung-Soo;Yoo, Weon-Hee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.11 no.1 s.39
    • /
    • pp.107-117
    • /
    • 2006
  • Java language creates class files through Java compiler. Class files include informations involved with achievement of program. We can do analysis and optimization for efficient codes by analyzing class files. This paper analyzes bytecodes using informations of Java class files. We translate stack-based Java bytecodes into 3-address codes. Then we translate into static single assignment form using the 3-address codes. Static single assignment form provides a compact representation of a variable's definition-use information. Static single assignment form is often used as an intermediate representation during code optimization. Static sing1e assignment form renames each occurrence of a variable such that each variable is defined only once.

  • PDF

A Study of The Binary Code to Intermediate Language Translator for Analysis of Software Weakness (소프트웨어 보안약점 분석을 위한 바이너리 코드-중간언어 변환기에 관한 연구)

  • Lee, Tae-Gue;Lim, Jung-Ho;Baik, Do-Woo;Son, Yunsik;Jeong, Junho;Ko, Kwangman;Oh, Seman
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2017.04a
    • /
    • pp.276-279
    • /
    • 2017
  • 오늘날 사회 전반적인 부분에서 소프트웨어의 비중은 지속적으로 증가하고 있다. 또한 소프트웨어는 점차 대규모화되고 있고 동시에 개인의 중요한 정보 등을 다루는 경우도 매우 늘어나고 있기에 소프트웨어의 보안성 검증은 매주 중요한 문제이다. 그러나 소스코드가 존재하지 않는 라이브러리의 경우 보안성 검증은 매우 어려운 문제로, 이를 해결하기 위해 바이너리 내에 존재하는 보안약점을 검사하기 위한 기술의 개발이 매우 요구되는 상황이며, 이를 위해 중간언어를 활용하여 보안약점을 분석하는 기술이 활발히 논의되고 있다. 본 논문에서는 바이너리 코드내에 존재하는 보안약점을 효과적으로 분석하기 위해서 바이너리 코드로부터 보안약점 분석에 효과적인 중간언어로 변환하는 시스템을 제안한다.

An Efficient Approach to Testing Retargetable Compiler Using Intermediate Representation (중간표현을 이용한 재목적 컴파일러의 효율적인 테스트 방법)

  • Jang, Han-Il;Woo, Gyun;Chae, Heung-Seok
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.10b
    • /
    • pp.575-579
    • /
    • 2006
  • 컴파일러에 결함이 있다는 것은 곧 잘못된 코드를 생성한다는 것을 의미하므로 양질의 컴파일러 구성은 양질의 소프트웨어 생산을 위한 기본 요구조건이 된다. 임베디드 시스템이 널리 사용되면서 더욱 다양하고 복잡한 임베디드 프로세서가 개발되었고 이는 새로이 설계된 프로세서를 위한 새로운 컴파일러 개발의 필요를 야기하고 있다. 본 논문에서는 프로그램의 중간 표현을 기반으로 하는 효율적인 테스팅 방법을 제안한다. 언어의 구문 규칙을 모두 사용하는 테스트 케이스를 통해 컴파일러를 테스트하는 방법이 이미 연구되었으나, 기존의 소스 코드 수준의 방법으로는 테스트 케이스의 중복성이 존재하는 단점이 있다. 본 논문에서는 중간 표현의 구문 규칙을 이용해서 중복된 테스트 케이스를 제거하여 테스팅 효율을 증가시킬 수 있음을 기술한다. 또한 본 논문에서 제안하는 방법을 GCC의 중간 언어인 RTL에 적용한 예를 통해 설명한다.

  • PDF

Implementation and Analysis of Optimizers on Tuple codes (튜플 코드 상에서의 최적화기 구현과 분석)

  • 송진국
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.3 no.4
    • /
    • pp.723-736
    • /
    • 1999
  • Code optimization phase in a compiler are very important because the phase reduces the running time and the storage size of machine codes. I developed flow analyzers and optimizers on intermediate codes. The flow analyzers generate control-flow and data-flow information. The optimizers transform the intermediate codes into the improved codes using this information. This paper describes the development of flow analyzers and optimizers. I also examined the execution performance, the cost and the dependency of each optimization.

  • PDF

Dataflow Block Clustering for Parallel Embedded Software Development Environment (병렬 내장형 소프트웨어 개발환경을 위한 데이터 플로우 블록 클러스터링)

  • Cho, Yong-Woo;Kwon, Seong-Nam;Ha, Soon-Hoi
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2008.06b
    • /
    • pp.337-341
    • /
    • 2008
  • 갈수록 복잡해지는 내장형 시스템을 개발함에 있어서 소프트웨어 개발의 중요성은 날로 커지고 있다. 기존 연구에서 소프트웨어 개발 효율을 높이기 위해 소프트웨어의 재사용 가능성을 높이고 병렬성 명세를 용이하게 하고자 중간단계코드(CIC)를 정의하였다. 이 중간단계 코드는 각 태스크의 순수 알고리즘을 기술하는 C형태의 태스크 코드와 그 외의 정보를 포함하는 XML형태의 아키텍쳐 정보 파일로 구성된다. 이 CIC는 사용자가 직접 기술할 수 있고 각종 모델로부터 자동 생성할 수도 있다. 이 논문에서는 후자에 초점을 두고 데이터 플로우 모델에 사용된 블록들을 클러스터링하여 태스크 코드를 생성하는 기법을 제안하였다. 이것을 위해 블록 클러스터링 알고리즘은 주어진 클러스터의 크기로 블록이 묶일 때까지 블록의 수행시간 정보를 고려하여 함수 병렬성을 최대한 보존하며 블록들을 묶어나간다. H.263 코덱 예제를 이용한 실험을 통해 제안하는 방법이 다양한 클러스터의 크기 조건에 대해서 다양한 클러스터링 결과를 제공함을 보였다.

  • PDF

Active Code based Real-Time Traceback System (액티브코드 기반의 실시간 역추적 시스템)

  • 지정훈;남택용;손승원
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2002.10c
    • /
    • pp.487-489
    • /
    • 2002
  • 본 논문에서는 액티브코드를 이용한 실시간 역추적시스템에 대하여 논한다. 본 시스템은 우회공격의 연결특성을 이용하여 TCP 응용프로그램의 응답메시지에 액티브코드를 덧붙였다. 덧붙여진 액티브코드는 침입자의 근원지 소스측으로 실시간 이동하면서 네트워크 중간노드에서 침입자의 공격에 유연하게 대응한다. 또한, 본 시스템에서는 데이터은닉기법을 적용하여 중간 경유호스트에서 별도의 역추적 시스템을 도입할 필요가 없도록 기존의 환경에 투명성을 부여하였다. 이러한 방법을 통해, 기존의 호스트기반역추적 시스템의 신뢰성문제와 deployment문제를 해결하였다. 본 시스템을 통하여 기존의 네트워크환경에 최소한의 변경으로 침입자의 공격에 실시간적이며 능동적인 대응을 할 수 있다.

  • PDF

Verification of Bytecode by Generating Verification Condition for Intermediate Language (중간언어의 VC 생성을 통한 바이트코드 검증)

  • Hu, Hye-Rim;Kim, Je-Min;Park, Joon-Seok;Yoo, Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2011.04a
    • /
    • pp.269-272
    • /
    • 2011
  • 프로그램 신뢰성을 높이기 위한 방법 중 하나로 쓰이는 것이 명세 된 언어의 검증이다. 명세 된 언어를 검증하기 위해 소스 프로그램을 논리식으로 바꾸어 검증하는 방법을 사용한다. 소스 프로그램 뿐만 아니라 바이트코드 역시 프로그램 신뢰성을 높이기 위해서 검증이 필요하다. 본 논문에서는 바이트 코드의 검증을 위해 바이트코드의 정보를 가지고 있는 중간언어의 verification condition을 생성하는 방법을 보인다.

Automatic Generation of Code Optimizer for DFA Pattern Matching (DFA 패턴 매칭을 위한 코드 최적화기의 자동적 생성)

  • Yun, Sung-Lim;Oh, Se-Man
    • The KIPS Transactions:PartA
    • /
    • v.14A no.1 s.105
    • /
    • pp.31-38
    • /
    • 2007
  • Code Optimization is converting to a code that is equivalent to given program but more efficient, and this process is processed in Code Optimizer. This paper designed and processed Code Optimizer Generator that automatically generates Code Optimizer. In other words Code Optimizer is automatically generated for DFA Pattern Matching which finds the optimal code for the incoming pattern description. DFA Pattern Matching removes redundancy comparisons that occur when patterns are sought for through normalization process and improves simplification and structure of pattern shapes for low cost. Automatic generation of Code Optimization for DFA Pattern Matching eliminates extra effort to generate Code Optimizer every time the code undergoes various transformations, and enables formalism of Code Optimization. Also, the advantage of making DFA for optimization is that it is faster and saves cost of Code Optimizer Generator.

Online Partial Evaluation of Actions (액션의 온라인 부분계산)

  • Gang, Hyeon-Gu;Do, Gyeong-Gu
    • Journal of KIISE:Software and Applications
    • /
    • v.26 no.12
    • /
    • pp.1531-1541
    • /
    • 1999
  • 프로그래밍 언어의 의미를 정형적으로 표기하는 기법인 액션의미론을 기반으로 한 컴파일러 생성기는 프로그래밍언어의 액션의미구조가 주어지면 그 언어의 컴파일러를 자동으로 생성한다. 생성된 컴파일러는 먼저 원시 프로그램을 그에 상응하는 액션 프로그램으로 확장한 후, 목적 프로그램으로 컴파일 한다. 여기서 액션 프로그램은 일종의 중간코드로 쓰이므로, 효율적인 목적코드를 생성하기 위해서 중간코드의 성능향상이 필요하다. 본 논문에서는 액션 프로그램을 부분계산을 통해 효율적인 코드로 자동 변환해 주는 온라인 액션 부분계산기를 설계하고 구현한다. 선행 연구된 오프라인 방식에서 전역분석을 하지 않고는 불가능했던 요약캡슐의 몸통, 펼치기의 몸통에 대한 부분계산이 온라인 방법을 사용하면 가능함을 보이고, 명령형 액션의 부분계산도 추가적으로 수행할 수 있도록 확장한다. Abstract Action Semantics is a framework for formally defining the semantics of programming languages. Action semantics-directed compiler generators take an action semantics definition of a programming language and automatically generate a compiler of the language. The generated compiler first expands a source program into an action denotation of the program, and then compiles it to a target code. In these compiler-generation systems, it is important to statically process the expanded action denotation - used as an intermediate code - as much as possible so that the generated compiler can produce better target code. In this paper, we develop an automatic action-transformation method based on online partial evaluation. The previous off-line method was rather weak because it could not partially evaluate actions inside the body of abstraction and unfolding-action without performing separate global analysis. The proposed online method remedies the problem, thus naturally improves the quality of residual actions. Moreover, we also extend the method to partially evaluate imperative actions.

A Design and Implementation of Parallel Programming Environment using Graph Type Intermediate Representation Form (그래프 중간표현 형태를 기반으로 한 병렬 프로그래밍 환경의 설계 및 구현)

  • 이원용;박두순;송상주
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.10c
    • /
    • pp.850-852
    • /
    • 2001
  • 본 논문에서는 사용자의 병렬 프로그램 작성을 도와주는 병렬 프로그래밍 환경을 제공한다. 병렬 프로그램은 다양한 하드웨어의 특성에 따라 또는 프로그램의 특성에 따라 사용자가 병렬 프로그램을 작성하여야 하기 때문에 병렬프로그램을 작성하는 것이 매우 어렵다. 본 논문에서는 많은 병렬화 연구에서 제시되고 있는 그래프 중간 표현 형태를 그래프 사용자 인터페이스로 구현하였다. 이 병렬 환경에서는 프로그램 편집기능, 종속성 분석기능, 루프 변환기능, CFG, DPG, HTG등 중간 코드를 그래프 중간 표현 형태를 통해 보여 줌으로 최적의 병렬프로그래밍 환경을 제공한다.

  • PDF