Embedded C++
Embedded C++ (EC++) is a dialect of the C++ programming language for embedded systems. It was defined by an industry group led by major Japanese CPU manufacturers, including NEC, Hitachi, Fujitsu, and Toshiba, to address the shortcomings of C++ for embedded applications. The goal of the effort is[citation needed] to preserve the most useful object-oriented features of the C++ language yet minimize code size while maximizing execution efficiency and making compiler construction simpler. The official web site states the goal as "to provide embedded systems programmers with a subset of C++ that is easy for the average C programmer to understand and use"[1].
Differences from C++
Embedded C++ is a proper subset of C++. The following language features have been removed:
- Multiple inheritance
- Virtual base classes
- Run-time type information (typeid)
- New style casts (static_cast, dynamic_cast, reinterpret_cast and const_cast)
- The mutable type qualifier
- Namespaces
- Exceptions
- Templates
Compilation
An EC++ program can be compiled with any C++ compiler.
However a compiler specific to EC++ may have an easier time doing optimization.
Compilers specific to EC++ are provided by companies such as:
- Freescale Semiconductor (formerly Metrowerks),
- Tasking Software[2] (part of Altium Limited),
- Green Hills Software[3].
Criticism
The language has not had a good reception with many expert C++ programmers. In particular, Bjarne Stroustrup says, "To the best of my knowledge EC++ is dead (2004), and if it isn't it ought to be."[4] In fact, the official website has not been updated since 2002.
The stated reason for removing language features like templates and namespaces (and by extension major parts of the C++ standard library) is "too new to be used widely"[1]. Those features were new in the late 1990s, but are widely used and relied upon in C++ code today.
A criticism is that EC++ is intended for use with 32-bit architecture instead of focusing on the big market of 8/16-bit microcontrollers.[5]
References
- ↑ 1.0 1.1 EC++ Questions and Answers
- ↑ "Embedded C++ compiler technology". Tasking corporate web site. http://www.tasking.com/resources/technologies/compilers/ecpp.
- ↑ "Green Hills Optimizing C/C++/EC++ Compilers". Green Hills Software corporate web site. http://www.ghs.com/products/optimizingC++EC++Compilers.html.
- ↑ "What do you think of EC++?". Bjarne Stroustrup's FAQ. http://www.research.att.com/~bs/bs_faq.html#EC++.
- ↑ Jack Ganssle (1997-01-06). "EC++". The Embedded Muse 13: 1–2. http://www.ganssle.com/tem/tem13.pdf.
External links
- Official Embedded C++ Website
- Background and Objectives of the Embedded C++ Specification Development
- Embedded C++: An Overview, by P.J. Plauger, Embedded Systems Programming, December 1997
- Technical Report on C++ Performance, by WG 21 of ISO Subcommittee SC 22
de:Embedded C++ ja:Embedded C++ pt:Embedded C++ zh:Embedded C++
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...