• Title/Summary/Keyword: C/A 코드

검색결과 679건 처리시간 0.031초

C 소스코드를 이용한 PAD 생성 시스템 구현 (Implementation of the PAD Generating System Based on C Source Code)

  • 천준석;임진수;우균
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 춘계학술발표대회
    • /
    • pp.1089-1092
    • /
    • 2013
  • 컴퓨터 하드웨어의 발달로 인해 하드웨어의 성능을 충분히 발휘할 수 있는 소프트웨어의 개발이 요구되고 있다. 소프트웨어가 복잡해질수록 개발 시 인적 비용, 물적 비용, 시간 비용이 증가하는데, 실제 개발 비용보다는 개발 후 유지보수에 사용되는 비용이 훨씬 크다. 유지보수는 코드 수정을 통해 이루어지는데, 다른 사람이 작성한 코드를 수정할 경우에는 코드의 이해가 요구된다. 코드는 흐름도를 이용하게 되면 좀 더 쉽게 이해할 수 있는데, 복잡한 코드를 흐름도로 작성할 경우 흐름도가 자체가 복잡해져서 코드 이해가 어려워지는 경우가 많다. 이러한 단점을 보완하기 위한 방법의 하나로 1979년 PAD가 개발되었다. 이 논문은 C 소스코드를 입력받아 PAD를 자동으로 생성하는 시스템을 제안한다. 이 시스템을 이용하면 유지보수 비용에 소비되는 시간과 노력을 절약할 수 있을 것으로 생각된다.

VHDL 컴파일러 후반부의 VHDL-to-C 사상에 관한 설계 및 구현 (A design and implementation of VHDL-to-C mapping in the VHDL compiler back-end)

  • 공진흥;고형일
    • 전자공학회논문지C
    • /
    • 제35C권12호
    • /
    • pp.1-12
    • /
    • 1998
  • 본 논문은 VHDL 컴파일러 시스템에서 후반부의 VHDL-to-C 사상 과정을 설계 및 구현한 연구에 관하여 기술한다. 컴파일러 전반부가 VHDL 설계 프로그램으로부터 발생시킨 중간 형식의 분석 데이터는 컴파일러 후반부의 VHDL-to-C 사상을 통해서 VHDL 어의가 구현된 C 코드 모델로 변환된다. 기본적으로 VHDL 어의를 표현하기 위한 C 코드 모델은 선언부, 구축부, 초기화부 및 실행부의 4개 기능적 템플릿으로 구성된다. 사상 과정에서는 사상 단위와 기능분류에 따른 129개 C 사상 템플릿과 반복적 알고리듬을 통하여 터미널 정보를 이용해서 C 코드를 생성하게 된다. C 프로그램의 구성은 코드를 직접 템플릿으로 출력하거나, 생성된 코드를 데이터큐에 중간 저장시키고 상위사상 결과에 결합시켜서 이루어진다. 설계 및 구현된 VHDL-to-C 사상기는 Validation Suite의 96% VHDL 구문 구조에 대해서 100% C 코드 모델을 완벽하게 사상할 수 있음을 보였다. 또한 VHDL-to-C 사상의 성능에서 생성된 코드의 메모리 오버헤드가 해석기 방식보다는 작고 직접코드 방식보다는 크지만 VHDL 프로그램 크기에 대해서 완만한 증가 경향을 보이고 있으며, 사상처리 시간에서는 사상 메카니즘의 구현에서 최적화 및 개선이 요구됨을 나타내었다.

  • PDF

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

  • 정지문;윤종희;이종원;백윤흥
    • 정보처리학회논문지A
    • /
    • 제18A권3호
    • /
    • pp.109-114
    • /
    • 2011
  • IR(Intermediate Representation) 최적화 과정은 컴파일러 back-end의 중요한 부분으로서 sub-expression elimination, dead code elimination 등 최적화 기법들을 사용한다. 하지만 IR 최적화 단계에서 생기는 에러들을 검출하고 디버깅하는데 많은 어려움이 있다. 그 첫 번째 이유로는 컴파일 된 어셈블리 코드를 해독하여 에러를 체크하기 어렵고 두 번째로는 IR 최적화 단계에서 에러가 생겼는지 결정 짓기 어렵기 때문이다. 이런 이유들로 인하여, 우리는 C 레벨에서 IR 코드변환 무결점 여부를 체크하기 위한 기법들에 관한 연구를 진행하여 왔다. 우리는 MeCC(Memory Comparison-based Clone) 탐색기를 기반으로 하여, 최적화하기 전 IR코드와 최적화 한 후의 IR코드를 각각 C코드로 다시 변환한 뒤, 이 두 개의 C코드를 MeCC의 입력으로 주고, 결과의 일치 여부를 확인하는 방법을 사용한다. 하지만 MeCC가 완벽한 결과를 알려주지 않기 때문에, 우리는 각 IR 최적화 기법마다의 특징에 대한 정보를 사전에 처리해서 그 결과의 정확도를 높였다. 이 논문에서는 dead code elimination, instruction scheduling 및 common sub-expression elimination 등 최적화 기법들을 이용한 변환 코드들을 예시로 실험하여 최종적으로 MeCC에서의 C 레벨 코드의 정확한 에러 체크 동작여부를 보여준다.

비주얼 C++소스 코드를 위한 obfuscator 구현 (Implementation of an Obfuscator for Visual C++ Source Code)

  • 장혜영;조성제
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권2호
    • /
    • pp.59-69
    • /
    • 2008
  • 자동화된 obfuscation은 보안 목적으로 코드를 이해하기 어렵게 만들어 역공학 공격을 방어하는데 가장 효과적인 방식이라고 알려져 있다. 본 논문에서는 역공학 공격과 같은 소프트웨어 지적재산권의 침해로부터 마이크로소프트사의 비주얼 C++ 소스 프로그램을 보호하기 위한 obfuscation 기법을 제안하고 구현하였다. 즉, 원본 비주얼 C++ 소스 프로그램을 기능은 동일하지만 이해하기에는 훨씬 힘든 또 다른 프로그램으로 변환시켜 주는 도구인 코드 obfuscator를 구현하였다. 비주얼 C++ 소스를 다루기 위해 ANTLR이라는 파서 생성기를 도입하여, '주석 제거', '식별자 스크램블', '변수 분할', '배열 중첩', '클래스 삽입', '루프 조건 확장'. '부가 피연산자 삽입', '무의미 코드 삽입' 등의 변환 방식들을 구현하였다. 또한, 복잡도, 복원력, 비용 등의 측면에서 본 obfuscator의 성능과 유효성을 평가하였다. 원본 소스 코드와 비교하여 실험한 결과, 변환된 소스 코드가 실행시간 오버헤드를 일부 유발시키긴 하지만 프로그램 보호에는 효과적임을 알 수 있었다.

GPS 신호 획득 과정에서의 C/A 코드 반복 횟수 추정 알고리즘 설계

  • 유원재;최광호;임준후;김라우;소형민;이형근
    • 한국항해항만학회:학술대회논문집
    • /
    • 한국항해항만학회 2015년도 추계학술대회
    • /
    • pp.270-272
    • /
    • 2015
  • 선박의 항해 도중 GPS 위성을 이용하여 위치를 추정하는 방법이 널리 사용되고 있다. 본 연구에서는 재밍으로 인하여 항해 중에 간헐적인 GPS 신호의 획득은 가능하나 지속적인 신호 추적이 불가하여 GPS 위성의 코드 위상 측정치만 얻을 수 있는 상황을 가정하였다. 동 시간대의 기준국에서 수신한 항법 메시지와 신호 획득 과정에서 측정된 코드 위상 만을 이용하여 GPS C/A 코드의 반복 횟수를 정확히 추정하고 대략적인 위치 해를 계산하는 알고리즘을 개발하였다.

  • PDF

Core-A프로세서용 MicroC/OS-II 이식 (Porting MicroC/OS-II to Core-A processor)

  • 심정민;지정훈;우균
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2009년도 추계학술발표대회
    • /
    • pp.49-50
    • /
    • 2009
  • 본 논문에서는 국산 임베디드 프로세서인 Core-A에서 동작하는 실시간 운영체제 이식에 대해 설명한다. 운영체제 이식을 위해서는 코드 작성에 앞서 컴파일과 디버깅을 위한 개발 환경을 구축하고 운영체제 이식을 위해 새로 작성할 부분을 파악할 필요가 있다. 이식할 운영체제인 MicroC/OS-II는 교육용으로 널리 쓰이는 실시간 운영체제로 C와 Assembly로 작성되어 있으며, 프로세서에 독립적인 코드와 프로세서에 의존적인 코드가 분리되어 있어 이식이 용이하다. Core-A로의 운영체제 이식은 Context Switching이나 Critical Section과 같이 레지스터를 직접 다루어야 하는 프로세서에 의존적인 코드를 수정하여 이루어졌다

DEX와 ELF 바이너리 역공학 기반 안드로이드 어플리케이션 호출 관계 분석에 대한 연구 (Android Application Call Relationship Analysis Based on DEX and ELF Binary Reverse Engineering)

  • 안진웅;박정수;응웬부렁;정수환
    • 정보보호학회논문지
    • /
    • 제29권1호
    • /
    • pp.45-55
    • /
    • 2019
  • DEX 파일과, SO 파일로 알려진 공유 라이브러리 파일은 안드로이드 어플리케이션의 행위를 결정짓는 중요한 구성요소이다. DEX 파일은 Java 코드로 구현된 실행파일이며, SO 파일은 ELF 파일 형식을 따르며 C/C++와 같은 네이티브 코드로 구현된다. Java 영역과 네이티브 코드 영역은 런타임에 상호작용할 수 있다. 오늘날 안드로이드 악성코드는 지속적으로 증가하고 있으며, 악성코드로 탐지되는 것을 회피하기 위한 다양한 우회 기법을 적용한다. 악성코드 분석을 회피하기 위하여 분석이 어려운 네이티브 코드에서 악성 행위를 수행하는 어플리케이션 또한 존재한다. 기존 연구는 Java 코드와 네이티브 코드를 모두 포함하는 함수 호출 관계를 표시하지 못하거나, 여러 개의 DEX을 포함하는 어플리케이션을 분석하지 못하는 문제점을 지닌다. 본 논문에서는 안드로이드 어플리케이션의 DEX 파일과 SO 파일을 분석하여 Java 코드 및 네이티브 코드에서 호출 관계를 추출하는 시스템을 설계 및 구현한다.

유니코드의 구조와 문제점 (A Study on the Unicode Architecture)

  • 주리정
    • 한국정보관리학회:학술대회논문집
    • /
    • 한국정보관리학회 2001년도 제8회 학술대회 논문집
    • /
    • pp.23-28
    • /
    • 2001
  • 유니코드는 현재 또는 과거에 존재했던 다양한 언어의 문자를 처리하기 위한 국제 표준코드이며 2바이트로 형성될 수 있는 65,000여 개의 영역에 전세계문자들을 차례대로 배열, 각 문자에 일련의 코드값을 지정하였다. 우리나라는 ISO 10646-1:1993의 유니코드 체계를 그대로 수용하여 1995년 KS C 5700-1995 표준규격으로 채택하였다. 이러한 유니코드의 경우 한글과 한자의 정렬문제, 옛한글이나 구결문자의 표현에 있어 제약이 있다. 이에 본고에서는 유니코드의 기본적인 개념, 그리고 한글 유니코드와 그 문제점에 대해 고찰하였다.

  • PDF

JVM 플랫폼에서 .NET 프로그램을 실행하기 위한 MSIL-to-Bytecode 번역기의 설계 및 구현 (Design and Implementation of the MSIL-to-Bytecode Translator to Execute .NET Programs in JVM Platform)

  • 이양선;황대훈;나승원
    • 한국멀티미디어학회논문지
    • /
    • 제7권7호
    • /
    • pp.976-984
    • /
    • 2004
  • 마이크로소프트사는 .NET 플랫폼을 개발하면서 자바 언어에 대응하기 위해 C# 프로그래밍 언어를 만들었다. C#과 같은 .NET 언어로 작성된 프로그램은 컴파일 과정을 거치면서 MSIL 코드를 출력하기 때문에 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서는 실행이 되지 않는다. 자바는 썬 마이크로시스템즈사가 개발한 언어로서 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 하드웨어나 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어이다. 본 논문에서는 .NET 언어로 작성된 프로그램을 컴파일 하여 생성된 MSIL 코드를 자바의 중간 언어인 바이트코드 코드로 변환해 줌으로서 .NET 언어로 구현된 프로그램이 .NET 플랫폼 없이 자바의 플랫폼인 JVM에 의해 실행되도록 하는 MSIL-to-Bytecode 번역기를 설계하고 구현하였다. 이와 같은 작업이 프로그래머로 하여금 프로그래밍 언어의 제약 없이 응용 프로그램을 개발할 수 있는 환경을 제공한다.

  • PDF

소프트웨어 재공학과 유지보수 지원을 위한 툴의 개발 (Development of the Tool for Software Re-engineering and Maintenance)

  • 김행곤;황선명
    • 한국정보처리학회논문지
    • /
    • 제1권3호
    • /
    • pp.299-310
    • /
    • 1994
  • 소프트웨어 재공학 툴은 소프트웨어 유지보수 생산성과 그작업의 품질 향상에 기 여한다. 재공학은 프로그램의 구성요소에 대한 기능 변경이 아닌 행위 변경(객체의 이 름과 정의, 재구성프로세스 논리)을 일반적으로 관리한다. 본 논문은 객체 지향 프로 그램언어(C++)로 작성된 원시 코드의 유지 보수를 위한 소프트웨어 재공학 툴인 InMaC++(Interactive Maintenance for C++)의 개발에 대해 서술한다. InMaC++ 는 원시 코드와 다이어그램(설계정보) 형태 모두를 표현할 수 있고 편집 기능이 가능 하며 원시 코드에서 다이어그램으로 다이어그램에서 원시 코드로의 변형이 가능하다. 따라서 이들 변형을 통해 기존 코드의 유지보수와 재공학이 가능하다. 특히 시스템의 검색기능은 그래픽 인터페이스로 구현되었으며 InMaC++는 객체 지향 프로그램의 메 소트, 속성, 클래스등의 구성 요소를 기반한 데이터베이스를 포함 하고 있으며, 이 모 델은 구현과 사용의 편리성과 툴의 구성을 용이하게 하기 위해 4가지의 객체 클래스와 3가지 관계를 정의하고 이들 객체 클래스의 검색을 위해 시스템 제공 단순 질의어가 제공한다.

  • PDF