Английская Википедия:Embedded C++

Материал из Онлайн справочника
Версия от 09:59, 3 марта 2024; EducationBot (обсуждение | вклад) (Новая страница: «{{Английская Википедия/Панель перехода}} '''Embedded C++''' ('''EC++''') is a dialect of the C++ programming language for embedded systems. It was defined by an industry group led by major Japanese central processing unit (CPU) manufacturers, including NEC, Hitachi, Fujitsu, and Toshiba, to address the shortcomings of C++ for embedded a...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Embedded C++ (EC++) is a dialect of the C++ programming language for embedded systems. It was defined by an industry group led by major Japanese central processing unit (CPU) manufacturers, including NEC, Hitachi, Fujitsu, and Toshiba, to address the shortcomings of C++ for embedded applications. The goal of the effort[1] is to preserve the most useful object-oriented features of the C++ language yet minimize code size while maximizing execution efficiency and making compiler construction simpler. The official website states the goal as "to provide embedded systems programmers with a subset of C++ that is easy for the average C programmer to understand and use".[2]

Differences from C++

Embedded C++ excludes some features of C++.

Feature ISO/ANSI C C++ Embedded C++
Шаблон:Rh2 scope="row" | Exception handling Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | Multiple inheritance Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | mutable, a storage class specifier Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | Namespaces Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | Templates Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | Run-time type information (typeid) Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | Style casts
(static_cast, dynamic_cast, reinterpret_cast, and const_cast)
Шаблон:Ya Шаблон:Na
Шаблон:Rh2 scope="row" | Virtual base classes Шаблон:Ya Шаблон:Na

Some compilers, such as those from Green Hills and IAR Systems, allow certain features of ISO/ANSI C++ to be enabled in Embedded C++. IAR Systems calls this "Extended Embedded C++".[3]

Compilation

An EC++ program can be compiled with any C++ compiler. But, a compiler specific to EC++ may have an easier time doing optimization.

Compilers specific to EC++ are provided by companies such as:

Criticism

Шаблон:Criticism section The language has had a poor reception with many expert C++ programmers. In particular, Bjarne Stroustrup says, "To the best of my knowledge EC++ is dead (2004), and if it isn't it ought to be."[7] In fact, the official English EC++ website has not been updated since 2002. Nevertheless, a restricted subset of C++ (based on Embedded C++) has been adopted by Apple Inc. as the exclusive programming language to create all I/O Kit device drivers for Apple's macOS, iPadOS and iOS operating systems of the popular Macintosh, iPhone, and iPad products.[8] Apple engineers felt the exceptions, multiple inheritance, templates, and runtime type information features of standard C++ were either insufficient or not efficient enough for use in a high-performance, multithreaded kernel.[9]

References

Шаблон:Reflist

External links

Шаблон:C++ programming language Шаблон:Embedded systems