• 제목/요약/키워드: C/A 코드

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

C++ 컴파일러에서 중간코드의 검증과 분석을 위한 역컴파일러의 설계 및 구현 (Design and Implementation of a Decompiler for Verification and Analysis of Intermediate Code in C++ Compiler)

  • 배성균;김영근;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2006년도 춘계학술발표대회
    • /
    • pp.1405-1408
    • /
    • 2006
  • C++ 언어는 객체지향 프로그래밍 언어로, 기존의 C++ 프로그램은 각각의 플랫폼에 따른 컴파일러를 통해 목적기계의 코드(object code)로 변환되므로 실행되는 플랫폼에 의존적인 단점이 있다. 이러한 단점을 보완하는 방법으로 스택기반의 가상기계와 가상기계의 입력형태인 중간코드를 이용하는 기법이 있다. EVM(Embedded Virtual Machine)은 ANSI C, ISO/IEC C++ 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템 기반의 가상기계이며, EVM에서 실행되는 중간코드인 SIL(Standard Intermediate Language)은 객체지향 언어와 순차적인 언어를 모두 수용하기 위한 명령 코드의 집합으로 설계되어 있다. 본 논문에서는 C++ 컴파일러를 통해 생성된 SIL 코드가 올바른지 검증하고 원시코드의 분석을 용이하게 하기 위해서 SIL 코드를 어셈블리 코드와 유사한 형태의 재 표현된 C++ 프로그램으로 역컴파일하는 시스템을 설계하고 구현하였다.

  • PDF

ANSI C 컴파일러에서 중간코드의 검증과 분석을 위한 역컴파일러의 개발 (Development of a Decompiler for Verification and Analysis of an Intermediate Code in ANSI C Compiler)

  • 김영근;권혁주;이양선
    • 한국멀티미디어학회논문지
    • /
    • 제10권3호
    • /
    • pp.411-419
    • /
    • 2007
  • EVM(Embedded Virtual Machine)은 모바일 디바이스, 셋톱박스, 디지털 TV에 탑재되어 하드웨어에 독립적으로 수행되는 스택기반 가상기계이며, SIL(Standard Intermediate Language)은 EVM의 중간언어로 객체지향 언어와 순차적인 언어를 위한 연산 코드 집합을 갖고 있다. 기존에는 C 프로그램을 실행하기위해 플랫폼에 의존적인 목적코드로 변환하여 실행하였다. 이런 문제를 해결하기 위해 본 연구팀은 EVM을 개발하면서 목적기계의 코드가 아닌 플랫폼에 독립적인 스택기반의 SIL 코드를 생성하는 ANSI C 컴파일러를 개발하였다. 본 논문에서는 ANSI C 컴파일러가 생성한 SIL 코드를 3-주소 코드 형태의 재 표현된 ANSI C 프로그램으로 변환하는 SIL-to-C 역컴파일러(Decompiler) 시스템을 설계하고 구현하였다. 이와 같은 작업은 ANSI C 컴파일러가 생성한 SIL 코드가 올바른지를 확인할 수 있는 검증 방법을 제시하며, 소프트웨어 오작동 및 버전 호환이 이루어지지 않을 때 소프트웨어의 구조를 변경하고 수정하여 성능을 개선하는 작업을 용이하게 한다.

  • PDF

임베디드 시스템을 위한 C# MSIL 코드의 Oolong 코드 번역에 관한 연구 (A Study on Translation of C# MSIL Code into Oolong Code for Embedded Systems)

  • 최성규;정지훈;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2003년도 춘계학술발표논문집 (중)
    • /
    • pp.983-986
    • /
    • 2003
  • 마이크로소프트사는 .NET 플랫폼을 개발하면서 C/C++의 강력함과 자바나 비주얼 베이직의 높은 생산성을 매우 효과적으로 결합한 프로피래밍 언어인 C#을 만들었다. C#은 컴파일 과정을 거치며 자바의 바이트 코드와 같은 중간 언어인 MSIL 코드를 갖는 파일을 출력하게 되는데, C# 이외에도 모든 .NET 언어들은 컴파일과정을 거치면서 MSIL 코드를 얻기 때문에 여러 .NET 언어들을 이용해서 하나의 응용 프로그램을 만들 수 있다. 썬 마이크로시스템즈사의 자바는 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트 코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 운영체제와 하드웨어에 독립적으로 수행이 가능한 차세대 언어이다. 본 논문에서는 임베디드 시스템에서의 적용을 위해 C#을 컴파일 하여 나오는 중간 언어 형태인 MSIL 코드를 자바의 중간언어의 한 종류인 Oolong 코드로 변환해 줌으로서 C#으로 구현된 프로그램이 자바 플랫폼에서 JVM에 의해 실행되도록 하는 MSIL-to-Oolong 번역기 시스템 구현하였다.

  • PDF

x86 assembly-to-C 변환기 (x86 assembly-to-C Translator)

  • 이호진;이상희;박보현;김선욱
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 춘계학술발표대회
    • /
    • pp.37-40
    • /
    • 2010
  • 본 논문에서는 C 언어로부터 GNU 컴파일러에 의하여 생성된 x86 어셈블리 코드를 고수준의 언어인 C 코드로 변환하여 출력하는 컴파일러의 구현에 대하여 설명한다. 또한, 원천 C 코드와 새롭게 생성된 C 코드와의 성능 비교분석을 수행하였다.

모델 기반 자동코드 생성기 개발 (A Development of Model Based Automatic Code Generation)

  • 이정우;최경희;정기현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 춘계학술발표대회
    • /
    • pp.918-921
    • /
    • 2010
  • 본 연구에서는 Simulink Model(이하 Model)을 C Code 로 변환시켜주는 자동 코드 생성기, SimAutoCodeGenerator 를 제안하였다. Model 의 테스트케이스를 생성하기 위한 작업에서 반복적인 프로그램의 실행을 통한 테스터와의 다양한 피드백이 필요하다. 이때, Simulink는 이런 작업을 하는 데 있어서 적절한 정보를 제공하기 어려울 뿐만 아니라 테스트 케이스를 생성하는데 필요한, 실행 시 특정 시점으로 돌아가는 기능을 수행하기 위해서는 프로그램을 정지한 후 다시 실행해야하는 문제점을 가지고 있다. 본 연구에서는 이와같은 단점을 보완하기 위하여 Model 을 C 코드로 변환하였다. 생성된 C 코드는 Model 과의 일치성을 증명한 후 자동 테스트케이스 생성을 위한 프로그램에 쓰이게 될 것이다. 먼저 C 코드의 생성 메커니즘을 알아보고 생성된 C 코드와 Model 의 일치성을 증명하였다.

C++ 템플릿 기반의 Fixed-Point 연산 라이브러리 (C++ Template-based Fixed-Point Arithmetic Library)

  • 황석중;김선욱;민병권
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 춘계학술발표대회
    • /
    • pp.49-52
    • /
    • 2010
  • 디지털 신호처리 알고리즘들은 실제 시스템에 적용할 때 임베디드 시스템 등 하드웨어의 성능과 소비전력 및 비용에 제약이 있을 경우 연산 정밀도가 높은 floating-point 연산 대신 제한된 정밀도와 적은 연산 비용을 요구하는 fixed-point 연산을 사용하여 구현한다. 시스템의 개발단계에서는 적용할 알고리즘을 floating-point 연산을 이용한 코드를 먼저 작성한 후 이를 fixed-point 연산으로 대체하는 과정을 거치게 되는데, 이는 숙련된 개발자와 상당한 양의 개발기간을 요하는 까다로운 작업이다. 이에 본 연구에는 코드작성 편의를 높이고 개발기간을 단축하기 위해 C++ template 기반의 fixed-point 연산 라이브러리를 개발하였다. 이는 floating-point 연산 코드와 fixed-point 연산 코드를 별도로 개발할 필요 없이 하나의 코드를 이용하여 자유로이 연산 정밀도를 지정할 수 있으며 개발자는 기존의 floating-point 연산을 이용하는 코드를 작성하는 것처럼 쉽게 코드를 작성할 수 있도록 한다. 또한, template 기반으로 작성되어 기존의 연구들과 달리 추가적인 작업도구 없이도 범용 C++ 컴파일러가 최적화된 코드를 생성할 수 있도록 되어있는 것이 특징이다.

안전등급 PLC용 C-코드 발생기 시험 (Test of a C-code generator for safefy-grade PLCs)

  • 김석주;천종민;이종무;권순만
    • 대한전기학회:학술대회논문집
    • /
    • 대한전기학회 2007년도 심포지엄 논문집 정보 및 제어부문
    • /
    • pp.265-266
    • /
    • 2007
  • 본 논문에서는 안전등급 PLC(Programable Logic Controller) LD/FBD(Ladder/Function Block Diagram) 프로그램을 C-코드로 변환하는 C-코드 발생기의 시험에 관해서 다룬다. 개발된 C-코드 발생기는 로직 분석, 오류 검출, C-코드 생성 등 각 부분 별로 시험 항목을 설정하고 검증하는 방법에 대해서 서술한다. 또한 C-언어로 작성된 사용자 정의 함수/함수 블록에 관한 시험 항목을 기술한다.

  • PDF

C++ 원시코드에서 객체 모델로의 역공학 기술에 관한 연구 및 구현 (A Study on the reverse engineering technique)

  • 유일준;홍찬기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (1)
    • /
    • pp.511-513
    • /
    • 1998
  • 본 연구에서는 Object Modeling Technique를 기반으로 C++ 원시코드로부터 클래스 계층구조의 정보를 추출하여 데이터베이스에 저장하고 계층구조를 이해하기 위한 클래스 계층구조를 디자인으로 도식화하여 이를 다시 디자인 상태에서 C++ 원시코드와 동적 연결이 가능한 역공학 도구를 제안한다. 본 연구는 C++ 원시코드와 클래스 계층 구조를 표현하는 디자인과 상호 동적 연결이 가능하므로 C++원시코드의 이해와 관리가 효율적이다.

HTML5 환경에서 No ActiveX를 위한 C/C++ 코드 재활용 시스템 설계 (Design of C/C++ Code Recycle System for No ActiveX in HTML5 Environment)

  • 최태범;박석천;오정복
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2015년도 춘계학술발표대회
    • /
    • pp.629-632
    • /
    • 2015
  • ActiveX는 DLL(C/C++ 컴포넌트) 연동과 로컬 리소스를 사용하여 웹의 한계를 극복할 수 있는 웹 애플리케이션을 기술이다. 최근 까지 국내에서 널리 활용되어 왔지만 호완성과 보안문제로 인해 폐지될 예정이다. 현재 HTML5가 대안으로 고려되고 있지만 지원되는 API 안에서만 자유롭고 DLL(C/C++ 컴포넌트) 호출이 불가능하기 때문에 ActiveX를 완벽하게 대체하기는 사실상 불가능하다. 따라서 본 논문에서는 기존의 ActiveX의 DLL(C/C++ 컴포넌트) 코드를 재활용하기 위해 GNU 빌드 시스템과 통합 빌드 시스템을 통해 코드 의존성을 분석하고 LLVM을 통해 비트코드로 컴파일한 후 최종적으로 Emscripten을 통해 자바스크립트 코드로 재활용하는 시스템을 설계 하였다.

GPS 수신 시스템에서 디지탈 지연동기 루프 회로 설계 및 분석 (The Circuit Design and Analysis of the Digital Delay-Lock Loop in GPS Receiver System)

  • 금홍식;정은택;이상곤;권태환;유흥균
    • 한국통신학회논문지
    • /
    • 제19권8호
    • /
    • pp.1464-1474
    • /
    • 1994
  • GPS(Global Positional System)는 인공위성을 이용하여 언제, 어디서나 자신의 위치를 정확히 측정할 수 있는 항법 시스템이다. 본 논문에서는 이 GPS 신호에서 항법 데이터를 복원하는 수신기의 지연동기 루프를 이론적으로 해석하고, 디지털 로직으로 설계하였다. 또한 동기과정의 논리동작을 분석하였다. 설계한 시스템은 수신된 C/A(coarse/acquisition) 코드와 수신기에서 발생된 C/A 코드와의 상관값을 구하는 상관기, 선택된 위성의 C/A 코드를 발생시키는 C/A코드 발생기, 그리고 C/A코드의 위상과 클럭속도를 조절할 수 있도록 C/A 코드 발생기의 클럭을 만드는 직접 디지탈 클럭 발생기로 구성된다. 제안한 디지탈 지연동기루프 시스템을 해석한 결과, 시스템 입력 신호전력이 -113.98dB이상이면 시스템이 90%이상의 검파 능력을 갖음을 확인하였다. 디지탈동기루프이 입력신호 즉, A/D 컴버터 전단의 입력신호 크기에 따라 디지탈 동기 루프의 성능 그래프와 문턱전압의 크기에 따른 성능분석의 그래프를 시뮬레이션을 통하여 분석하였다. 그리고 설계된 디지탈 지연동기루프를 로직 시뮬레이션한 결과, GPS 항법 데이타를 정확히 복원함을 확인하였다. 개선됨을 알 수 있었다.

  • PDF