Встраиваемый C++

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Embedded C ++ ( EC ++ ) - это диалект языка программирования C++ для встраиваемых систем. Он был определен отраслевой группой, во главе с основными японскими производителями центральных процессоров (ЦП), включая NEC, Hitachi , Fujitsu и Toshiba, для устранения недостатков C++ для встроенных приложений. Целью работы [1] является сохранение наиболее полезных объектно-ориентированных возможностей языка C++ с одновременным минимизацией размера кода при максимальной эффективности выполнения и упрощении построения компилятора. Официальный веб-сайт заявляет о своей цели: «предоставить программистам встроенных систем подмножество C++, которое среднему программисту C легко понять и использовать». [2]

Отличия от C++[править | править код]

Встраиваемый C++ исключает некоторые возможности C++.

Возможность ISO/ANSI C C++ Встраиваемый C++
Обработка исключений Да Нет
Множественное наследование Да Нет
изменяемый , спецификатор класса хранения Да Нет
Пространства имен Да Нет
Шаблоны Да Нет
Динамическая идентификация типа данных (typeid) Да Нет
Приведения типов
(static_cast, dynamic_cast, reinterpret_cast and const_cast)
Да Нет
Виртуальное наследование Да Нет

Некоторые компиляторы, такие как компиляторы из Green Hills и IAR Systems, допускают включение определенных возможностей ISO/ANSI C++ в Embedded C++. IAR Systems называет это «Extended Embedded C++». [3]

Компиляция[править | править код]

Программа EC++ может быть скомпилирована любым компилятором C++. Однако компилятору, специфичному для EC++, легче проводить оптимизацию.

Компиляторы, специфичные для EC++, предоставляются такими компаниями, как:

Критика[править | править код]

Язык был плохо принят со многими опытными программистами C++. В частности, Бьёрн Страуструп говорит: «Насколько я знаю, EC ++ мертв (2004), и если нет, то так и должно быть».[7] Фактически, официальный сайт EC++ на английском языке не обновлялся с 2002 года. Тем не менее Apple, Inc. приняла в качестве эксклюзивного языка программирования ограниченное подмножество C++ (на основе Embedded C++) для создания всех драйверов устройств I/O Kit для операционных систем Apple Mac OS X и iOS популярного MacBook, iPhone. и продукты для iPad.[8] Инженеры Apple считали, что исключения, множественное наследование, шаблоны и функции информации о типах среды выполнения в стандартном C++ либо недостаточны, либо недостаточно эффективны для использования в высокопроизводительном многопоточном ядре.[9]

См. также[править | править код]

Примечания[править | править код]

  1. EC++ Rationale (англ.) (недоступная ссылка — история ).
  2. [EC++ Вопросы и ответы(англ.)
  3. Embedded and Extended Embedded C++ (англ.). Проверено 9 декабря 2012. Архивировано 21 мая 2013 года.
  4. IAR Systems - Compilers and debuggers (англ.). IAR Systems website.
  5. Embedded C++ compiler technology (англ.). Tasking website. Архивировано 1 января 2009 года.
  6. Green Hills Optimizing C/C++/EC++ Compilers (англ.). Green Hills Software website. Архивировано 25 октября 2008 года.
  7. What do you think of EC++? (англ.). Страуструп, Бьёрн's FAQ.
  8. What is Mac OS X? (англ.). Amit Singh.
  9. The libkern C++ Runtime (англ.). IOKit Device Driver Design Guidelines.

Ссылки[править | править код]