Interested Article - Встраиваемый C++
- 2021-04-17
- 1
Embedded C ++ ( EC ++ ) — это диалект языка программирования C++ для встраиваемых систем . Он был определён отраслевой группой, во главе с основными японскими производителями центральных процессоров (ЦП), включая NEC , Hitachi , Fujitsu и Toshiba , для устранения недостатков C++ для встроенных приложений. Целью работы является сохранение наиболее полезных объектно-ориентированных возможностей языка C++ с одновременным минимизацией размера кода при максимальной эффективности выполнения и упрощении построения компилятора . Официальный веб-сайт заявляет о своей цели: «предоставить программистам встроенных систем подмножество C++, которое среднему программисту C легко понять и использовать».
Отличия от C++
Встраиваемый C++ исключает некоторые возможности C++.
Возможность | ISO/ANSI C C++ | Встраиваемый C++ |
---|---|---|
Обработка исключений | Да | Нет |
Множественное наследование | Да | Нет |
mutable , | Да | Нет |
Пространства имён | Да | Нет |
Шаблоны | Да | Нет |
Динамическая идентификация типа данных ( typeid ) | Да | Нет |
Приведения типов
( static_cast , dynamic_cast , reinterpret_cast and const_cast ) |
Да | Нет |
Виртуальное наследование | Да | Нет |
Некоторые компиляторы, такие как компиляторы из Green Hills и IAR Systems, допускают включение определённых возможностей ISO/ANSI C++ в Embedded C++. IAR Systems называет это «Extended Embedded C++».
Компиляция
Программа EC++ может быть скомпилирована любым компилятором C++. Однако компилятору, специфичному для EC++, легче проводить оптимизацию.
Компиляторы, специфичные для EC++, предоставляются такими компаниями, как:
- IAR Systems
- Freescale Semiconductor (дочерняя компания Motorola в 2004 году, которая приобрела Metrowerks в 1999 году)
- Tasking Software, часть Altium Limited
Критика
Язык был плохо принят многими опытными программистами C++. В частности, Бьёрн Страуструп говорит: «Насколько я знаю, EC ++ мёртв (2004), и если нет, то так и должно быть». Фактически, официальный сайт EC++ на английском языке не обновлялся с 2002 года. Тем не менее Apple, Inc. приняла в качестве эксклюзивного языка программирования ограниченное подмножество C++ (на основе Embedded C++) для создания всех драйверов устройств I/O Kit для операционных систем Apple Mac OS X и iOS популярного MacBook, iPhone. и продукты для iPad. Инженеры Apple считали, что исключения, множественное наследование, шаблоны и функции информации о типах среды выполнения в стандартном C++ либо недостаточны, либо недостаточно эффективны для использования в высокопроизводительном многопоточном ядре.
См. также
- Сравнение свободного программного обеспечения EDA
- Сравнение программного обеспечения EDA
- Электронная автоматизация проектирования (ЭДА)
Примечания
- (англ.) . Дата обращения: 11 января 2019. 1 ноября 2018 года.
- от 17 октября 2018 на Wayback Machine (англ.)
- (англ.) . Дата обращения: 9 декабря 2012. 21 мая 2013 года.
- (англ.) . IAR Systems website . Дата обращения: 11 января 2019. Архивировано из 5 января 2015 года.
- (англ.) . Tasking website . 1 января 2009 года.
- (англ.) . Green Hills Software website . 25 октября 2008 года.
- (англ.) . Страуструп, Бьёрн 's FAQ . Дата обращения: 11 января 2019. 20 июля 2012 года.
- (англ.) . Amit Singh . Дата обращения: 11 января 2019. Архивировано из 19 апреля 2019 года.
- (англ.) . IOKit Device Driver Design Guidelines . Дата обращения: 11 января 2019. 28 августа 2016 года.
Ссылки
- — официальный сайт Встраиваемый C++
- (англ.)
- (англ.) , Джон Карбон (Embedded.com), 19 июня 1998 г.
- (англ.) , Миро Самек, Quantum Leaps, 26 июня 2007 г.
- (англ.) , подготовленный рабочей группой 21 подкомитета ISO 22
- 2021-04-17
- 1