RISS 학술연구정보서비스

검색

인기 검색어

    다국어 입력

    http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

    변환된 중국어를 복사하여 사용하시면 됩니다.

    예시)
    • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
    • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
    닫기

    임베디드 시스템을 위한 C 언어 객체지향 툴킷 설계 및 구현 = Design and Implementation of an Object-Oriented Toolkit in C for Embedded Systems

    한글로보기

    https://www.riss.kr/link?id=T15533966

    • 0

      상세조회
    • 0

      다운로드
    서지정보 열기
    • 내보내기
    • 내책장담기
    • 공유하기
    • 오류접수

    부가정보

    국문 초록 (Abstract) kakao i 다국어 번역

    C 언어는 널리 사용되는 기계 친화적이고 빠른 프로그래밍 언어이다. 또한 제4차 산업혁명을 맞아 IoT, 임베디드 시스템 등이 중요한 역할을 차지하면서 큰 영향력을 발휘할 것으로 기대된다. 이러한 C 언어의 기본 패러다임은 절차적 프로그래밍이라고 할 수 있다. 하지만 절차적 프로그래밍 방식을 따르면 프로그램의 요구사항이 복잡해질 경우 프로그래밍과 유지보수가 몹시 어려워질 수 있다. 이에 대한 좋은 해결책으로 생각할 수 있는 것이 객체지향 프로그래밍(OOP: object-oriented programming)이다. 객체지향 프로그래밍은 현대의 주류 프로그래밍 패러다임 중 하나로, 객체를 중심으로 프로그래밍하는 방법이다. 이 방법은 현실 세계의 다양한 개념에 적용하기 용이하다. 또한, 모듈화와 유연성, 재사용성 등에 강점이 있어, 프로그래밍과 유지보수에 유리한 점이 있다. 하지만 C 언어로는 객체지향 프로그래밍을 하기 어렵다. 이에, 본 논문에서는 EMOOC(EMbedded Objected Oriented C)를 제안한다. EMOOC는 C 언어에서 객체지향 프로그래밍의 특성을 살릴 수 있도록 돕는다. 특히 임베디드 환경에서도 적용이 용이하도록 가볍고 호환성 있게 구현하였다. 본 논문에서는 EMOOC 및 EMOOC를 통해 객체 지향적으로 프로그래밍하는 방법을 소개하였다. 또한, 예제로서 스택, 우선순위 큐, 패턴을 응용한 두 개의 시뮬레이션을 구현하고, 일반적인 C, 다른 객체지향 툴킷인 ooc, C++와 비교 및 대조하였다. 그 결과 EMOOC는 비가상 함수를 사용할 때는 ooc 및 C++와 성능 차이가 크지 않았으며, 가상함수를 사용할 때는 ooc와 C++에 비해 빨랐다. 길이 또한 ooc로 구현한 코드에 비해 짧았다. 종합적으로 판단했을 때, C 언어에서 객체지향 프로그래밍을 할 때 EMOOC가 합리적인 선택이 될 수 있음을 알 수 있었다. 또, EMOOC는 성능이 나쁘지 않고 호환성 있으며 가벼우므로 임베디드 환경에도 적용해볼 수 있다.
    번역하기

    C 언어는 널리 사용되는 기계 친화적이고 빠른 프로그래밍 언어이다. 또한 제4차 산업혁명을 맞아 IoT, 임베디드 시스템 등이 중요한 역할을 차지하면서 큰 영향력을 발휘할 것으로 기대된다....

    C 언어는 널리 사용되는 기계 친화적이고 빠른 프로그래밍 언어이다. 또한 제4차 산업혁명을 맞아 IoT, 임베디드 시스템 등이 중요한 역할을 차지하면서 큰 영향력을 발휘할 것으로 기대된다. 이러한 C 언어의 기본 패러다임은 절차적 프로그래밍이라고 할 수 있다. 하지만 절차적 프로그래밍 방식을 따르면 프로그램의 요구사항이 복잡해질 경우 프로그래밍과 유지보수가 몹시 어려워질 수 있다. 이에 대한 좋은 해결책으로 생각할 수 있는 것이 객체지향 프로그래밍(OOP: object-oriented programming)이다. 객체지향 프로그래밍은 현대의 주류 프로그래밍 패러다임 중 하나로, 객체를 중심으로 프로그래밍하는 방법이다. 이 방법은 현실 세계의 다양한 개념에 적용하기 용이하다. 또한, 모듈화와 유연성, 재사용성 등에 강점이 있어, 프로그래밍과 유지보수에 유리한 점이 있다. 하지만 C 언어로는 객체지향 프로그래밍을 하기 어렵다. 이에, 본 논문에서는 EMOOC(EMbedded Objected Oriented C)를 제안한다. EMOOC는 C 언어에서 객체지향 프로그래밍의 특성을 살릴 수 있도록 돕는다. 특히 임베디드 환경에서도 적용이 용이하도록 가볍고 호환성 있게 구현하였다. 본 논문에서는 EMOOC 및 EMOOC를 통해 객체 지향적으로 프로그래밍하는 방법을 소개하였다. 또한, 예제로서 스택, 우선순위 큐, 패턴을 응용한 두 개의 시뮬레이션을 구현하고, 일반적인 C, 다른 객체지향 툴킷인 ooc, C++와 비교 및 대조하였다. 그 결과 EMOOC는 비가상 함수를 사용할 때는 ooc 및 C++와 성능 차이가 크지 않았으며, 가상함수를 사용할 때는 ooc와 C++에 비해 빨랐다. 길이 또한 ooc로 구현한 코드에 비해 짧았다. 종합적으로 판단했을 때, C 언어에서 객체지향 프로그래밍을 할 때 EMOOC가 합리적인 선택이 될 수 있음을 알 수 있었다. 또, EMOOC는 성능이 나쁘지 않고 호환성 있으며 가벼우므로 임베디드 환경에도 적용해볼 수 있다.

    더보기

    목차 (Table of Contents)

    • I 서론 ----- p.1
    • II 관련 연구 ----- p.5
    • 2.1. C 언어 객체지향 프로그래밍 기술 문서 ----- p.5
    • 2.2. C++ ----- p.6
    • I 서론 ----- p.1
    • II 관련 연구 ----- p.5
    • 2.1. C 언어 객체지향 프로그래밍 기술 문서 ----- p.5
    • 2.2. C++ ----- p.6
    • 2.3. Embedded C++ ----- p.6
    • 2.4. ooc 프로그래밍 언어 ----- p.7
    • 2.5. Dynace ----- p.8
    • 2.6. ooc 툴킷 ----- p.8
    • III EMOOC 설계 ----- p.10
    • 3.1. 기능 설계 ----- p. 12
    • 3.2. 구문 설계 및 다른 시스템과의 비교·대조 ----- p. 17
    • 3.2.1. 추상화 ----- p.18
    • 3.2.2. 캡슐화 ----- p.18
    • 3.2.3. 정보 은닉 ----- p.21
    • 3.2.4. 상속 ----- p.23
    • 3.2.5. 다형성 ----- p.24
    • 3.2.6. 시스템 별 구문 비교·대조 결과 ----- p.26
    • 3.3. 의미 설계 ----- p.29
    • IV EMOOC 구현 ----- p.31
    • 4.1. 클래스 구성 파일 ----- p.32
    • 4.2. 클래스 선언 ----- p.32
    • 4.3. 접근 제한 ----- p.33
    • 4.4. 멤버 함수 정의 ----- p.34
    • 4.5. 초기화 함수 정의 ----- p.35
    • 4.6. 생성자 정의 ----- p.36
    • 4.7. 소멸자 정의 ----- p.36
    • 4.8. 클래스 인스턴스 생성 및 사용 ----- p.37
    • 4.9. 아웃라인 클래스 ----- p.38
    • 4.10. 상속 ----- p.38
    • 3.11. 인터페이스 ----- p.39
    • V 사례 연구 ----- p.41
    • 5.1. 스택 ----- p.41
    • 5.1.1. 코드 라인 수 비교 ----- p.42
    • 5.1.2. 시간 측정 ----- p.43
    • 5.2. 큐, 우선순위 큐 ----- p.43
    • 5.2.1. 코드 라인 수 비교 ----- p.45
    • 5.2.2. 시간 측정 ----- p.45
    • 5.3. 선풍기 리모컨 테스팅 시뮬레이션: 반응자 패턴 응용 ----- p.45
    • 5.3.1. 코드 라인 수 비교 ----- p.47
    • 5.3.2. 시간 비교 ----- p.47
    • 5.4. 작업장 조명 기구 제어 시뮬레이션: 상태 패턴 응용 ----- p.48
    • 5.4.1. 코드 라인 수 비교 ----- p.50
    • 5.4.2. 시간 측정 ----- p.51
    • 5.5. 사례 연구 분석 ----- p.52
    • 5.5.1. 라인 수 분석 ----- p.52
    • 5.5.2. 수행 시간 분석 ----- p.53
    • VI 고찰 ----- p.55
    • VII 결론 ----- p.58
    • 부록 A: EMOOC 문법 ----- p.62
    • 부록 B: EMOOC 클래스 구성 파일 ----- p.66
    • 부록 C: EMOOC를 활용한 코드 예시 ----- p.69
    • C.1. 클래스 정의 예시: 큐(Queue) ----- p.69
    • C.2. 멤버 함수 정의 예시: 큐 ----- p.70
    • C.3. 초기화 함수 정의 예시: 큐 ----- p.71
    • C.4. 생성자 정의 예시: 큐 ----- p.72
    • C.5. 소멸자 정의 예시: 큐(private 멤버가 있을 경우) ----- p.73
    • C.6. 인스턴스 생성 예시: 큐 ----- p.73
    • C.7. 멤버 함수 사용 예시: 스택 ----- p.74
    • C.8. 아웃라인 클래스 정의 예시: 작업장 조명 제어 시뮬레이션의 State 클래스 ----- p.74
    • C.9. 상속 예시: 우선순위 큐 ----- p.75
    • C.9.1. 클래스 정의 ----- p.75
    • C.9.2. 초기화 함수 ----- p.75
    • C.9.3. 자식 클래스의 멤버 함수 사용 ----- p.76
    • C.10. 인터페이스 예시 ----- p.76
    • C.10.1. 인터페이스 정의 ----- p.76
    • C.10.2. 인터페이스 활용 ----- p.77
    더보기

    분석정보

    View

    상세정보조회

    0

    Usage

    원문다운로드

    0

    대출신청

    0

    복사신청

    0

    EDDS신청

    0

    동일 주제 내 활용도 TOP

    더보기

    주제

    연도별 연구동향

    연도별 활용동향

    연관논문

    연구자 네트워크맵

    공동연구자 (7)

    유사연구자 (20) 활용도상위20명

    이 자료와 함께 이용한 RISS 자료

    나만을 위한 추천자료

    해외이동버튼