Встроенный С++
Embedded C++ ( EC++ ) — диалект языка программирования C++ для встраиваемых систем . Он был определен отраслевой группой во главе с крупными японскими производителями центральных процессоров (ЦП), включая NEC , Hitachi , Fujitsu и Toshiba , для устранения недостатков C++ для встроенных приложений. Цель усилий [ 1 ] заключается в том, чтобы сохранить наиболее полезные объектно-ориентированные функции языка C++, минимизируя при этом размер кода, одновременно максимизируя эффективность выполнения и упрощая конструкцию компилятора . На официальном сайте цель заявлена как «предоставить программистам встраиваемых систем подмножество C++, которое будет легко понять и использовать среднестатистическому программисту на C». [ 2 ]
Отличия от С++
[ редактировать ]Встроенный C++ исключает некоторые возможности C++.
Особенность | ISO/ANSI С С++ | Встроенный С++ |
---|---|---|
Обработка исключений | ||
Множественное наследование | ||
mutable , спецификатор класса хранения
|
||
Пространства имен | ||
Шаблоны | ||
Информация о типе времени выполнения ( typeid )
|
||
Стиль каста ( static_cast , dynamic_cast , reinterpret_cast , и const_cast )
|
||
Виртуальные базовые классы |
Некоторые компиляторы, например от Green Hills и IAR Systems, позволяют включать определенные функции ISO/ANSI C++ во встроенный C++. IAR Systems называет это «Расширенный встроенный C++». [ 3 ]
Сборник
[ редактировать ]Программа EC++ может быть скомпилирована любым компилятором C++. Но компилятору, специфичному для EC++, может быть проще выполнить оптимизацию.
Компиляторы, специфичные для EC++, предоставляются такими компаниями, как:
- ИАР Системы [ 4 ]
- Freescale Semiconductor (выделение компании Motorola в 2004 году, которая приобрела Metrowerks в 1999 году)
- Программное обеспечение для задач, [ 5 ] часть Altium Limited
- Программное обеспечение Зеленых холмов [ 6 ]
Критика
[ редактировать ] этой статьи Разделы «критика» или «противоречие» могут поставить под угрозу ее нейтральность . ( май 2018 г. ) |
Этот язык был плохо принят многими опытными программистами C++. В частности, Бьерн Страуструп говорит: «Насколько мне известно, EC++ мертв (2004 г.), а если нет, то так и должно быть». [ 7 ] Фактически, официальный сайт EC++ на английском языке не обновлялся с 2002 года. Тем не менее, ограниченное подмножество C++ (основанное на Embedded C++) было принято Apple Inc. в качестве эксклюзивного языка программирования для создания всех драйверов устройств I/O Kit для Операционные системы Apple macOS, iPadOS и iOS для популярных продуктов Macintosh, iPhone и iPad. [ 8 ] Инженеры Apple считали, что исключения, множественное наследование, шаблоны и функции информации о типах во время выполнения стандарта C++ либо недостаточны, либо недостаточно эффективны для использования в высокопроизводительном многопоточном ядре. [ 9 ]
Ссылки
[ редактировать ]- ^ «Обоснование EC++» .
- ^ Вопросы и ответы EC++
- ^ «Встроенный и расширенный встроенный C++» . Архивировано из оригинала 21 мая 2013 года . Проверено 9 декабря 2012 года .
- ^ «IAR Systems — Компиляторы и отладчики» . Сайт компании «ИАР Системс» .
- ^ «Технология встроенного компилятора C++» . Сайт с заданием . Архивировано из оригинала 1 января 2009 г.
- ^ «Green Hills Оптимизация компиляторов C/C++/EC++» . Веб-сайт программного обеспечения Green Hills . Архивировано из оригинала 25 октября 2008 г.
- ^ «Что вы думаете об EC++?» . Бьярна Страуструпа Часто задаваемые вопросы .
- ^ «Что такое Mac OS X?» . Амит Сингх . Архивировано из оригинала 19 апреля 2019 г. Проверено 4 марта 2015 г.
- ^ «Среда выполнения libkern C++» . Рекомендации по разработке драйверов устройств IOKit .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Предыстория и цели разработки спецификаций встроенного C++
- Embedded C++ ускоряет работу с меньшим размером кода , Джон Карбон (Embedded.com), 19 июня 1998 г.
- Создание «голых» систем ARM с помощью GNU: Часть 1. Начало работы , Миро Самек, Quantum Leaps, 26 июня 2007 г.
- Технический отчет о производительности C++ , подготовленный рабочей группой 21 подкомитета ISO SC 22.