Встроенный C ++ - Embedded C++

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

Отличия от C ++

Встроенный C ++ исключает некоторые функции C ++.

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

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

Компиляция

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

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

Критика

Этот язык был плохо принят многими опытными программистами на C ++. Особенно, Бьярне Страуструп говорит: «Насколько мне известно, EC ++ мертв (2004), и если это не так, то должно быть».[7] Фактически, официальный английский веб-сайт EC ++ не обновлялся с 2002 года. Тем не менее, ограниченное подмножество C ++ (основанное на Embedded C ++) было принято Apple Inc. как эксклюзивный язык программирования для создания всех Комплект ввода / вывода драйверы устройств для операционных систем Apple macOS, iPadOS и iOS популярных продуктов Macintosh, iPhone и iPad.[8] Инженеры Apple сочли, что исключения, множественное наследование, шаблоны и особенности информации о типах среды выполнения стандартного C ++ либо недостаточны, либо недостаточно эффективны для использования в высокопроизводительном многопоточном ядре.[9]

Смотрите также

Рекомендации

  1. ^ «Обоснование EC ++».
  2. ^ EC ++ Вопросы и ответы
  3. ^ «Встроенный и расширенный Встроенный C ++». Архивировано из оригинал 21 мая 2013 г.. Получено 9 декабря 2012.
  4. ^ «IAR Systems - компиляторы и отладчики». Сайт IAR Systems.
  5. ^ «Технология встроенного компилятора C ++». Веб-сайт задач. Архивировано из оригинал на 2009-01-01.
  6. ^ "Green Hills Оптимизация компиляторов C / C ++ / EC ++". Веб-сайт Green Hills Software. Архивировано из оригинал на 2008-10-25.
  7. ^ "Что вы думаете о EC ++?". Бьярне Страуструп FAQ.
  8. ^ "Что такое Mac OS X?". Амит Сингх.
  9. ^ "Среда выполнения libkern C ++". Рекомендации по проектированию драйверов устройств IOKit.

внешняя ссылка