임베디드 C++

임베디드 C++(Embedded C++, EC++)는 임베디드 시스템용 방언인 C++ 프로그래밍 언어이다. NEC, 히타치, 후지쯔, 도시바 등 주요 일본 중앙 처리 장치(CPU) 제조업체들이 주도하는 산업 그룹에 의해 정의되었으며, 임베디드 애플리케이션을 위한 C++의 단점을 해결하고자 했다. 이 노력의 목표는 C++ 언어의 가장 유용한 객체 지향 기능을 유지하면서 코드 크기를 최소화하고 실행 효율성을 극대화하며 컴파일러 구축을 단순화하는 것이다. 공식 웹사이트는 목표를 "평균 C 프로그래머가 이해하고 사용하기 쉬운 C++의 하위 집합을 임베디드 시스템 프로그래머에게 제공하는 것"이라고 명시하고 있다.EC++ Questions and Answers

 C++와의 차이점 
임베디드 C++는 C++의 일부 기능을 제외한다.

 기능  ISO/ANSI C++  임베디드 C++ 예외 처리    다중 상속    mutable, 저장소 클래스 지정자    이름공간    템플릿    런타임 타입 정보 (typeid)    스타일 캐스트(static_cast, dynamic_cast, reinterpret_cast, 및 const_cast)    가상 기반 클래스   

그린 힐즈(Green Hills) 및 IAR 시스템즈(IAR Systems)와 같은 일부 컴파일러는 ISO/ANSI C++의 특정 기능을 임베디드 C++에서 활성화할 수 있도록 허용한다. IAR 시스템즈는 이를 "확장 임베디드 C++"라고 부른다.

 컴파일 
EC++ 프로그램은 모든 C++ 컴파일러로 컴파일할 수 있다. 하지만 EC++에 특화된 컴파일러는 최적화 작업을 더 쉽게 수행할 수 있다.

EC++에 특화된 컴파일러는 다음 회사에서 제공한다.
 IAR 시스템즈
 프리스케일 세미컨덕터, (1999년에 Metrowerks를 인수한 모토로라가 2004년에 분사)
Tasking Software, Altium Limited의 일부
 Green Hills Software

 비판 
이 언어는 많은 전문 C++ 프로그래머들에게 좋지 않은 평가를 받았다. 특히 비야네 스트롭스트룹은 "내가 아는 한 EC++는 죽었다 (2004년), 만약 그렇지 않다면 그래야 한다."라고 말했다. 실제로 공식 영어 EC++ 웹사이트는 2002년 이후 업데이트되지 않았다. 그럼에도 불구하고, C++의 제한된 하위 집합 (임베디드 C++ 기반)은 애플에 의해 인기 있는 매킨토시, 아이폰, 아이패드 제품의 macOS, iPadOS 및 iOS 운영 체제용 모든 I/O 키트 장치 드라이버를 생성하는 독점적인 프로그래밍 언어로 채택되었다. 애플 엔지니어들은 표준 C++의 예외, 다중 상속, 템플릿 및 런타임 타입 정보 기능이 고성능, 다중 스레드 커널에서 사용하기에 불충분하거나 충분히 효율적이지 않다고 느꼈다.

 각주 

 외부 링크 

 임베디드 C++ 사양 개발의 배경 및 목표
 임베디드 C++는 더 빠르고 작은 코드를 생성한다, John Carbone (Embedded.com), 1998년 6월 19일
 GNU로 베어메탈 ARM 시스템 구축하기: 1부 - 시작하기, Miro Samek, Quantum Leaps, 2007년 6월 26일
 C++ 성능에 대한 기술 보고서, ISO 소위원회 SC 22의 WG 21 작성

분류:임베디드 시스템
분류:하드웨어 기술 언어
분류:C++ 프로그래밍 언어 계열