Русская Википедия:Встраиваемый C++
Embedded C ++ (EC ++) — это диалект языка программирования C++ для встраиваемых систем. Он был определён отраслевой группой, во главе с основными японскими производителями центральных процессоров (ЦП), включая NEC, Hitachi , Fujitsu и Toshiba, для устранения недостатков C++ для встроенных приложений. Целью работы[1] является сохранение наиболее полезных объектно-ориентированных возможностей языка C++ с одновременным минимизацией размера кода при максимальной эффективности выполнения и упрощении построения компилятора. Официальный веб-сайт заявляет о своей цели: «предоставить программистам встроенных систем подмножество C++, которое среднему программисту C легко понять и использовать».[2]
Отличия от C++
Встраиваемый C++ исключает некоторые возможности C++.
Возможность | ISO/ANSI C C++ | Встраиваемый C++ |
---|---|---|
Шаблон:Rh|Обработка исключений | ||
Шаблон:Rh|Множественное наследование | ||
Шаблон:Rh|mutable , спецификатор класса хранения | ||
Шаблон:Rh|Пространства имён | ||
Шаблон:Rh|Шаблоны | ||
Шаблон:Rh|Динамическая идентификация типа данных Шаблон:Small | ||
Шаблон:Rh|Приведения типов Шаблон:Small |
||
Шаблон:Rh|Виртуальное наследование |
Некоторые компиляторы, такие как компиляторы из Green Hills и IAR Systems, допускают включение определённых возможностей ISO/ANSI C++ в Embedded C++. IAR Systems называет это «Extended Embedded C++».[3]
Компиляция
Программа EC++ может быть скомпилирована любым компилятором C++. Однако компилятору, специфичному для EC++, легче проводить оптимизацию.
Компиляторы, специфичные для EC++, предоставляются такими компаниями, как:
- IAR Systems[4]
- Freescale Semiconductor (дочерняя компания Motorola в 2004 году, которая приобрела Metrowerks в 1999 году)
- Tasking Software,[5] часть Altium Limited
- Green Hills Software[6]
Критика
Язык был плохо принят многими опытными программистами 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]
См. также
- Сравнение свободного программного обеспечения EDA
- Сравнение программного обеспечения EDA
- Электронная автоматизация проектирования (ЭДА)
Примечания
Ссылки
- Шаблон:Официальный сайт
- Предпосылки и цели разработки спецификации Embedded C++Шаблон:Ref-en
- Embedded C++ даёт более быстрый кодШаблон:Ref-en, Джон Карбон (Embedded.com), 19 июня 1998 г.
- Создание ARM-систем Bare-Metal с помощью GNU: Часть 1. Начало работыШаблон:Ref-en, Миро Самек, Quantum Leaps, 26 июня 2007 г.
- Технический отчёт о производительности C ++Шаблон:Ref-en, подготовленный рабочей группой 21 подкомитета ISO 22