Embedded Systems Conference--San Jose--Sept. 28, 1997--Green Hills Software (Santa Barbara, Calif.) announced a new C++ compiler that includes the implementation of Embedded C++ (EC++), a subset of C++ optimized for resource-constrained embedded applications. The new EC++ compiler, implemented as a user option within the C++ compiler's broader framework, achieves a 30-90 percent improvement in code size and run-time efficiency over full-blown C++, particularly for applications containing I/O of any kind.
Green Hills' new C++/EC++ compiler is fully compatible with the draft specification produced by the EC++ technical committee. The compiler will initially be available for Motorola 68k and PowerPC family processors, with versions for the Hitachi SH, MIPS, Coldfire, and NEC V800 processors following later this year. The compiler will also produce native code for workstations running Solaris 2.5. Development host options include PCs and workstations running Windows NT, Windows 95, Solaris 2.5, and HP/UX 10.0.
EC++ provides many of C++'s object-oriented facilities, which enhance code reusability and simplify the partitioning and maintenance of complex code. However, it omits a number of C++ features that aren't essential for most embedded applications, but significantly increase code size and impair run-time efficiency. Included are multiple inheritance, virtual base classes, exceptions, runtime type identification, virtual function tables, and mutable specifiers.
Multiple inheritance, exceptions, and runtime type identification are the biggest contributors to C++ runtime overhead. Moreover, the overhead associated with these facilities is incurred regardless of whether they are used in the target application. Features such as mutable specifiers, by contrast, add little overhead to the runtime environment, but needlessly complicate compiler design and embedded systems programming. Eliminating these features enables EC++ to achieve substantial reductions in the size of class libraries and corresponding improvements in runtime efficiency. It also helps simplify programming.
A number of features that have been initially omitted from the EC++ specification, such as name space support and new-style casts, may yet be restored upon further consideration. In the meantime, Green Hills' C++/EC++ compiler will make these features available as options. Programmers who want to take advantage of these features need only enable the appropriate option. Programmers who do not need these features need only omit them from their source code.
Green Hills' C++/EC++ compiler is fully integrated with the MULTI Development Environment, which automates embedded software development. Featuring a window-oriented editor and an RTOS-aware source-level debugger, MULTI also includes a run-time error checker, application profiler, and project/version control.
The heart of the MULTI environment is the MULTI debugger, which lets programmers debug their code using mixed assembly and high-level language formats at either the process or system level. The MULTI debugger also includes a class browser that simplifies C++/EC++ debugging.
Windows NT and Windows 95 versions of the Green Hills C++/EC++ compiler cost $3,900. The Unix versions cost $5,400. All three versions are available now.
Green Hills Software
30 West Sola St.
Santa Barbara, CA 93101
Fax: (805) 965-6343
Return to Headlines