Solutions for Industrial Computing Blog

Solutions for Industrial Computing

The Solutions for Industrial Computing Blog is the place for conversation and discussion about industrial computers, systems and controllers; communications and connectivity; software and control; and power strategies. Here, you'll find everything from application ideas, to news and industry trends, to hot topics and cutting edge innovations.

Previous in Blog: A New Beginning...   Next in Blog: C++ for Embedded Systems (2 of 2)
Close
Close
Close
Rate Comments: Nested

C++ for Embedded Systems (1 of 2)

Posted March 10, 2008 8:54 PM by ITPro

A study of programming history reveals that it wasn't programmers having much difficulty overcoming the challenges of programming microprocessors with assembly languages or even the differences in programs between manufacturers. It was that those languages had to be directly implemented on the underlying hardware, and this began to present limitations in software for embedded systems.

As the data that could be stored on circuitry increased, so did the programs used to make them work because of the 1:1 relationship between symbols and machine code executables (short of reversion to strict binary encoding). Eventually, the development of languages like PDP, BCPL, and B paved the way to standardizing and increasing capabilities in programming embedded systems.

Then in the early 1970s, Dennis Ritchie turned Ken Thompson's B into C (the shell programming for the at that time ubiquitous UNIX machine) and paved the way for C with Classes, aka C++, by Bjarne Stroustrup. It was this work's displacement of assembly languages, coupled with customer demand throughout the industry for C++ compilers, that would eventually prompt the formation of the Embedded C++ Technical Committee and its subsequent definition and standardization of EC++.

In brief, EC++ is a fully functional subset of the C++ language... within limits. Like any interpreted language it requires a special compiler, which continues to bear the full responsibility of transforming the language into machine-executable code. The language does not include any of the following: 1) namespaces; 2) templates; 3) exception handling; 4) multiple inheritance; 5) runtime type ID; or 6) casting of new-style types. Due to removal of namespaces and templates, a large chunk of the library was also deprecated and in no strange twist of fate so remained very little of the raw "C" library.

With the removal of the Standard Template Library (STL)—inarguably one of the most powerful features of the language—great discourse ensued. The majority of Japanese holders have stuck to the language originally implemented, but others have lobbied for readmission, among many being Bjarne Stroustrup. While the removal of much of the langauge features has significantly reduced overhead, thereby greatly improving performance, cogent arguments were made that there is no performance penalties for non-use of the STL and that fact alone should far outweigh any consideration for its removal.

This has ultimately resulted in derivations in dialect like "ETC++" and the "Dinkum Abridged Library." However, the greatest impact on the world of embedded systems and its relationship to EC++ appears to have come from the sheer amount of time it took to standardize the C++ language as touted on Dr. Dobb's Journal by C++ guru P.J. Plaguer. In the next entry, we'll look into some brief examples of implementation of the language on microprocessing systems. You can find comprehensive information and updates on Embedded C++ regularly by subscribing to newsletters from Embedded.com.

Editor's Note: Click here for Part 2 of this series.

Reply

Interested in this topic? By joining CR4 you can "subscribe" to
this discussion and receive notification when new comments are added.
Guru
Engineering Fields - Control Engineering - New Member China - Member - New Member

Join Date: Sep 2006
Location: CHINA
Posts: 2945
Good Answers: 14
#1

Re: C++ for Embedded Systems (1 of 2)

03/11/2008 9:18 PM

oh, learned a new concept, EC language.

Reply
Reply to Blog Entry

Previous in Blog: A New Beginning...   Next in Blog: C++ for Embedded Systems (2 of 2)

Advertisement