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

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

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++원시코드의 이해와 관리가 효율적이다.

XML에 기반을 둔 C 원시 코드의 주석 관리 시스템 (An XML-based Comment Management System for C Source Code)

  • 박근옥;임종태
    • 정보처리학회논문지D
    • /
    • 제11D권4호
    • /
    • pp.799-808
    • /
    • 2004
  • C 언어가 주로 사용되는 미션 크리티컬 응용 소프트웨어 영역에는 문서화, 간결성, 정확성을 갖는 원시 코드가 요구된다. 본 연구는 XML 기반의 C 원시 코드의 주석관리 체계를 제안한다. 이 주석 관리체계는 주석 사용자 모듈, 검토자 모듈, 주석 추출 모듈, 주석 추적 연계 모듈, 주석 태그 정의 모듈, 저장관리 모들을 포함하는 6개 모듈로 구성된다. 본 연구에서 정의된 XML 주석 태그는 IEEE 표준 1028과 IEEE 표준 1012를 적용하는 개발공정 활동의 범주를 포함한다. C 원시 코드에 주석을 삽입하고 추출하기 위하여 XML 스키마가 사용되며. 주석 추출 결과의 시각적 표시 처리를 위하여 XSL-FO가 사용된다.

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

EVM SIL에서 C 프로그램 생성을 위한 역컴파일러의 설계 및 구현 (Design and Implementation of Decompiler for Generating C Program from EVM SIL)

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

  • 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

ODBC API의 C++ 클래스 설계 및 구현 (The Design and Implementation of C++ Classes Wrapping ODBC API)

  • 김승민;홍은지;이재호;박현주;김선호;전준범;정소영;유석인
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (1)
    • /
    • pp.306-308
    • /
    • 1998
  • PC를 클라이언트로, UNIX등의 운영체제를 탑재한 워크스테이션을 서버 플랫폼으로 구축되는 데이터베이스 응용 프로그램들은 데이터베이스 접근 API로 대부분 ODBC를 사용한다. 그런데, ODBC API에서 제공하는 자료형과 관련 함수들이 아주 복잡해서 이해와 사용이 어렵고, C 함수 형태의 API를 제공하기 때문에 C++나 자바와 같은 객체 지향 언어로 ODBC를 이용하여 클라이언트 시스템을 구현할 때는 OLE DB나 JDBC등의 클래스 라이브러리 API를 사용하는 것에 비해 이해하기 쉬운 프로그램 원시코드 생성이 어렵다. 본 연구에서는 데이터베이스 응용 프로그래머의 요구사항을 효과적으로 반영하여 ODBC API들을 C++클래스 형태로 설계 및 구현하였다. 구현된 C++ 클래스 형태의 데이터베이스 인터페이스를 사용하면, 보다 더 간결한 프로그램 원시 코드로 데이터베이스 응용 프로그램을 작성할 수 있다.

ASN.1 원시 코드 자동 생성기 (ASN.1 Source Code Auto-Generator)

  • 정진영;김영철
    • 한국컴퓨터정보학회논문지
    • /
    • 제8권4호
    • /
    • pp.28-34
    • /
    • 2003
  • ASN.1은 망 관리에 필요한 기초적인 제반기술이다. ASN.1의 개발에는 ASN.1 명세 언어를 파싱하는 컴파일러 작업과 컴파일 결과 생성된 자료들을 DB에 입력하고, 입력된 자료를 사용자에게 프리티프린팅하여 보여주는 작업이 요구된다. 본 논문에서는 ASN.1 명세를 객체지향 언어인 C++로 자동적으로 변환하여 주는 원시 코드 자동 생성기를 설계하고 구현한다. 이와 함께 ASN.1 개발환경에 필요한 그래픽 사용자 인터페이스, DB 인터페이스 및 ASN.1 브라우저를 포함하는 통합 환경을 제공한다. 본 시스템의 구현은 Objectivity 데이타베이스를 이용하였고, 컴파일러 작업에서는 컴파일러 보조 도구인 flex와 byacc을 이용하였으며, 인터페이스 언어로는 Tcl/Tk를 사용하였다.

  • PDF

기존 프로그래밍 원시코드에서 자바 바이트 코드로의 변환 (Program Translation from Conventional Programming Source to Java Bytecode)

  • Jeon-Geun Kang;Haeng-Kon Kim
    • 한국컴퓨터산업학회논문지
    • /
    • 제3권8호
    • /
    • pp.963-980
    • /
    • 2002
  • 소프트웨어 재공학은 기존 시스템의 유지보수 문제에 대한 해결책으로 많은 연구가 이루어 지고 있다. 재공학은 역공학과 순공학을 이용하여 기존 시스템에 대한 이해와 새로운 시스템의 개발을 의미하며 기존 시스템에서의 컴퍼넌트들로부터 필요한 기능을 가져와 재구성 하는 것이다. 본 논문에서는 기존의 프로시져 언어에 의해 컴파일된 바이너리 코드를 입력으로 받아서 웹 기반 자바 바이트 코드로 변환한다. 즉 바이너리-바이너리 단계에서 수행되는 소프트웨어 시스템을 제안한다. 이를 위해 먼저 Pascal-L 에 의해 작성된 기존의 프로그램 언어를 Jasmin 이라는 어셈블리 코드로 먼저 번역하고 사용자 읽기 가능한 자바 바이트 코드 상태인 Jasmin 어셈블리가 실제 자바 코드로 변환된다. 이 시스템은 결국 기존의 원시코드가 번역기를 통해 실행 가능한 바이너리 코드 형식으로 실행된다. 이 번역과정은 먼저 주어진 바이너리코드에서 언어구조를 식별하는 과정과 변수 객체의 위치를 분석하고 초기화 하는 과정 그리고 주어진 바이너리 코드를 Jasmin 코드로의 매핑하는 단계등으로 구성된다.

  • PDF

자바클래스 파일을 생성하는 C컴파일러 설계 (Design of C Compiler to Generate Java Class File)

  • 최원호;정민수;김도우;진민;윤기송
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.418-420
    • /
    • 1999
  • 기존의 고급 언어들로 작성된 응용 프로그램들은 인터넷이나 다른 플랫폼(Platform)에서 수행되는 것이 어렵다. 본 논문에서는 자바의 플랫폼 독립적인 특성을 C언어와 같은 고급 언어에 적용해 보고자 한다. 즉 C 언어로 작성된 원시 코드(Source code)를 컴파일러를 이용해서 자바 가상 기계가 인식할 수 있는 목적 코드인 바이트 코드(Bytecode)로 변환하여 자바 가상 기계(Java Virtual Machine)가 탑재되어 있는 어떠한 플랫폼에서도 수행할 수 있도록 하는 것이다. 따라서, 본 논문에서는 C 언어로 작성된 응용 프로그램을 이기종 플랫폼 상에서 실행 가능하도록 바이트 코드를 생성하는 컴파일러를 설계하고자 한다.

  • PDF

MDA기반 컴포넌트 설계정보 관리도구의 개발에 관한 연구 (Development of a tool for managing component model based on Model Driven Architecture)

  • 안용수;황상원;남영광;이병윤;권오천
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2011년도 춘계학술발표대회
    • /
    • pp.1371-1374
    • /
    • 2011
  • MDA(Model Driven Architecture)는 추상적인 모델 계층을 사용하기 때문에 다양한 플랫폼에 적용가능하고, 각 모델 계층과 코드 생성의 자동화를 통해 개발의 효율성을 극대화한다. 본 연구에서는 XML 형태로 저장된 설계정보를 분석하여 MDA 기반 컴포넌트 설계 정보를 관리하는 도구를 개발하였다. 이 도구는 UML로 작성된 설계모델를 XMI(XML Metadata Interchage) 형태로 저장하여 각종 설계도구에서 Java, C++과 같은 언어에 대한 실제 프로그램 골격코드가 자동으로 생성되도록 하였다. 역으로 골격코드를 기반으로 구현된 콤포넌트의 원시코드를 수집하여 다시 컴포넌트 설계모델 정보를 추출하는 기능을 구현하였고, 이를 다시 시각적 정보로 재구성 하였다. 이러한 기능들은 기존의 단방향적 개발 구조 방식에서 벗어나 이미 개발되거나 개발 중인 프로그램에 대한 분석 및 평가 등을 통해서 재사용성을 높여주는 순환적인 개발 구조 방식을 제공한다.