SANTA BARBARA, Calif., Sept. 28, 1997 - Green Hills Software
today announced a new C++ compiler that includes the industry's first
implementation of Embedded C++ (EC++), a subset of C++ optimized for
resource-constrained embedded applications. The new EC++ compiler,
implemented as a set of switch options within the C++ compiler's
broader framework, achieves a 30-90% improvement in code size and
run-time efficiency over full-blown C++, particularly for I/O
intensive applications.
Remarked Green Hills President Dan O'Dowd, "We've implemented our
new compiler using a versatile array of switch options that lets
programmers select any subset of C++ they want, from bare bones C, to
full-blown C++. But we believe that EC++ hits the sweet spot between C
and C++, preserving the object-oriented capability of C++ while
achieving the memory and execution efficiency of C."
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 flag
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 every aspect of 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.
MULTI's program builder, editor, and debugger are tightly
integrated to offer quick, convenient single- and double-click
transfers between debug mode and full source editing. For example,
simply clicking on a compiler error message brings the user to the
editor, opens the file containing the error, moves the cursor to the
line containing the error, and highlights the error.
For sales information on Green Hills Software's products, please call 1-805-965-6044 or email inquiries to sales@ghs.com.
|