• Title/Summary/Keyword: Compiler

Search Result 524, Processing Time 0.036 seconds

Compiler triggered C level error check (컴파일러에 의한 C레벨 에러 체크)

  • Zheng, Zhiwen;Youn, Jong-Hee M.;Lee, Jong-Won;Paek, Yun-Heung
    • The KIPS Transactions:PartA
    • /
    • v.18A no.3
    • /
    • pp.109-114
    • /
    • 2011
  • We describe a technique for automatically proving compiler optimizations sound, meaning that their transformations are always semantics-preserving. As is well known, IR (Intermediate Representation) optimization is an important step in a compiler backend. But unfortunately, it is difficult to detect and debug the IR optimization errors for compiler developers. So, we introduce a C level error check system for detecting the correctness of these IR transformation techniques. In our system, we first create an IR-to-C converter to translate IR to C code before and after each compiler optimization phase, respectively, since our technique is based on the Memory Comparison-based Clone(MeCC) detector which is a tool of detecting semantic equivalency in C level. MeCC accepts only C codes as its input and it uses a path-sensitive semantic-based static analyzer to estimate the memory states at exit point of each procedure, and compares memory states to determine whether the procedures are equal or not. But MeCC cannot guarantee two semantic-equivalency codes always have 100% similarity or two codes with different semantics does not get the result of 100% similarity. To increase the reliability of the results, we describe a technique which comprises how to generate C codes in IR-to-C transformation phase and how to send the optimization information to MeCC to avoid the occurrence of these unexpected problems. Our methodology is illustrated by three familiar optimizations, dead code elimination, instruction scheduling and common sub-expression elimination and our experimental results show that the C level error check system is highly reliable.

A Design and Implementation of WML Compiler for WAP Gateway for Wireless Internet Services (무선 인터넷 서비스를 위한 WAP 게이트웨이용 WML 컴파일러의 설계 및 구현)

  • Choi, Eun-Jeong;Han, Dong-Won;Lim, Kyung-Shik
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.7 no.2
    • /
    • pp.165-182
    • /
    • 2001
  • In this paper, we describe a design and implementation of the Wireless Markup Language(WML) compiler to deploy wireless Internet services effectively. The WML compiler translates textual WML decks into binary ones in order to reduce the traffic on wireless links that have relatively low bandwidth to wireline links and mitigate the processing overhead of WML decks on, wireless terminals that have relatively low processing power to fixed workstations. In addition, it takes over the overhead of eXtensible Markup Language(XML) well-formedness and validation processes. The WML compiler consists of the lexical analyzer and parser modules. The granunar for the WML parser module is LALR(1) context-free grammar that is designed based on XML 1.0 and WML 1.2 DTD(Document Type Definition) with the consideration of the Wireless Application Protocol Binary XML grammar. The grammar description is converted into a C program to parse that grammar by using parser generator. Even though the tags in WML will be extended or WML DTD will be upgraded, this approach has the advantage of flexibility because the program is generated by modifying just the changed parts. We have verified the functionality of the WML compiler by using a WML decompiler in the public domain and by using the Nokia WAP Toolkit as a WAP client. To measurethe compressibility gain of the WML compiler, we have tested a large number of textual WML decks and obtained a maximum 85 %. As the effect of compression is reduced when the portion of general textual strings increases relative to one of the tags and attributes in a WML deck, an extended encoding method might be needed for specific applications such as compiling of the WML decks to which the Hyper Text Markup Language document is translated dynamically.

  • PDF

Reconsidering the Approach to (<황조가>에 대한 접근 방식 재고 - 편찬자의 의도를 중심으로 -)

  • Cho, Ha-youn
    • Journal of Korean Classical Literature and Education
    • /
    • no.37
    • /
    • pp.47-73
    • /
    • 2018
  • This thesis aims to find out the purpose of recording . I tried to understand the reason that the compiler of included this song in the record of King Yuri. The result of tracking the intention of the compiler in this thesis is as follows. I think that was chosen as a symbol of King Yuri's character, especially connected with his inner side. By introducing a hobby that contained the inner side of King Yuri, the compiler implied that his failures and mistakes in subsequent governments stem from human limitations that did not adequately refine his qualities. I think that the compiler who showed the character of King Yuri through only one short song also showed the highest level of enjoying poetry. The enjoyment of literature is a pleasure in understanding the life of someone through literature and bring it back into their lives. In this respect, by pursuing the intend of the compiler, we will be close to the value of the song, .

Boosting the Performance of Python-based Geodynamic Code using the Just-In-Time Compiler (Just-In-Time 컴파일러를 이용한 파이썬 기반 지구동역학 코드 가속화 연구)

  • Park, Sangjin;An, Soojung;So, Byung-Dal
    • Geophysics and Geophysical Exploration
    • /
    • v.24 no.2
    • /
    • pp.35-44
    • /
    • 2021
  • As the execution speed of Python is slower than those of other programming languages (e.g., C, C++, and FORTRAN), Python is not considered to be efficient for writing numerical geodynamic code that requires numerous iterations. Recently, many computational techniques, such as the Just-In-Time (JIT) compiler, have been developed to enhance the calculation speed of Python. Here, we developed two-dimensional (2D) numerical geodynamic code that was optimized for the JIT compiler, based on Python. Our code simulates mantle convection by combining the Particle-In-Cell (PIC) scheme and the finite element method (FEM), which are both commonly used in geodynamic modeling. We benchmarked well-known mantle convection problems to evaluate the reliability of our code, which confirmed that the root mean square velocity and Nusselt number obtained from our numerical modeling were consistent with those of the mantle convection problems. The matrix assembly and PIC processes in our code, when run with the JIT compiler, successfully achieved a speed-up 30× and 258× faster than without the JIT compiler, respectively. Our Python-based FEM-PIC code shows the high potential of Python for geodynamic modeling cases that require complex computations.

A Study on the Development of Semi-automated Analog Cell Compiler for MML Library (MML(merged memory logic) 라이브러리 구축을 위한 반자동 아날로그 컴파일러 개발에 관한 연구)

  • 최문석;송병근곽계달
    • Proceedings of the IEEK Conference
    • /
    • 1998.10a
    • /
    • pp.695-698
    • /
    • 1998
  • Today SOC(system on a chip) is a trend in VLSI design society. Especially MML(merged memory Logic) process provides designers with good chances to implement SOC which is consists of DRAM, SRAM, Logic and A/D mixed mode ciruit blocks. Designers need good circuit library which is reliable and easy to tune for specific design. For this need we present semi-automated analog compiler methodology. And we aplied this design methodology to resistor-string DAC design.

  • PDF

The Design of A Code Generator for RISC Architecture (RISC 아키텍춰의 코드 생성기 설계)

  • 박종덕;임인칠
    • Journal of the Korean Institute of Telematics and Electronics
    • /
    • v.27 no.8
    • /
    • pp.1221-1230
    • /
    • 1990
  • This paper presents a code generation method and an effective handling algorithm of ingeger constant multiplication for RISC machines in compiler design. As RISC Architectures usually use faster and more simply formed instructions than CISC's and most RISC processors do not have an integer multiplication instruction, it is required an effective algorithm to process integer multiplication. For the proposed code generator, Portable C Compiler(PCC) is redesigned to be suitable for an RISC machine, and composed an addition chain is built up to allow fast execution of constant multiplication, a part of integer one whicch appears very frequency in code generation phase.

  • PDF

An interactive environment for simulation and real-time implementation of control systems

  • Koga, Masanobu
    • 제어로봇시스템학회:학술대회논문집
    • /
    • 1995.10a
    • /
    • pp.336-339
    • /
    • 1995
  • An approach to efficient implementation of real-time control systems is presented in this paper. A compiler for translation of control algorithms is used in combination with a general program for real-time control. The compiler translates control algorithms written for the simulation in a design language to an implementation language. The translated algorithms are then automatically incorporated in the real-time control program.

  • PDF

Design and Implementation of a Language Supporting Compositional Approach to Multiparadigm Programming (결합 방식 멀티패러다임 프로그래밍을 지원하는 언어의 설계 및 구현)

  • Choi, Jong-Myung;Yoo, Chae-Woo
    • The KIPS Transactions:PartA
    • /
    • v.10A no.6
    • /
    • pp.605-614
    • /
    • 2003
  • In this paper we introduce a new style multiparadigm language named Argos which applies a compositional approach [20] to multiparadigm programming. Argos is a superset of the Java, and its grammar has an extension point which allows other languages to be used in Argos programs. Therefore, Argos can support object-oriented programming and multiparadigm programming by enabling each method in a class to be implemented with one of the Java, C, Prolog, Python, and XML languages. Since Argos allows the existing languages to be used, it has advantages such as easiness of learning and high reusability. The Argos compiler is implemented according to the delegating compiler object (DCO) model[28,29]. The compiler partitions a program Into several parts according to the languages used in methods and delivers the parts the languages' processors which compile the parts.