Royal Ascot, Great Britain, Embedded Systems Conference,
September 7-9, 1998 --Green Hills Software, Inc., announces the
availability of its C++/Embedded C++ (EC++) Optimizing Compilers for Wind
River Systems' VxWorks Real-Time Operating System. The fully compliant
Green Hills C++ Compiler enables effective use of C++ in embedded
applications and provides thread-safe exception handling for VxWorks.
EC++ provides many of C++'s object-oriented facilities that 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 yet significantly increase code size and impair
run-time efficiency, including multiple inheritance, virtual base classes,
exception handling, runtime type identification, virtual function tables,
and mutable specifiers.
Multiple inheritance, exception handling, 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 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 namespace 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.
The C++ language provides a powerful capability that enables errors to be
automatically caught and handled during program execution. Traditionally,
multi-tasking applications have not been able to take advantage of these
features because the underlying C++ implementation does not support
thread-safe, or reentrant, exception handling structures. Green Hills C++
Optimizing Compilers and C++ run-time libraries, however, provide the
industry's first thread-safe exception handling for the VxWorks real-time
operating system. The Green Hills C++/EC++ for VxWorks solution allocates
and manipulates the exception handling structures on a per-thread basis,
enabling programmers to take full advantage of this capability when
needed.
"Both Embedded C++ and our Thread-Safe Exception Handling give the
VxWorks/Tornado developer new tools for building embedded systems
applications," comments John Carbone, Green Hills VP of Marketing. Carbone
continues, "Our full ANSI C++ compliance, with the ability to select the
EC++ subset, gives the user tremendous flexibility in developing
applications."
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, class browser, and project/version control.
The heart of the MULTI environment is a VxWorks-aware source-level
debugger that features process- and system-level debug capability. The
debugger supports mixed assembly and high-level language (Ada, C, C++, and
FORTRAN) formats, includes a language-sensitive expression evaluator, and
provides special support for C++/EC++ (such as a Class Browser, object
display namespace support and template debug capability) and X-Windows
debugging.
Green Hills' C++/EC++ for VxWorks package supports development for most
major RISC and CISC CPU families, including the PowerPC, 68k, CPU32,
ARM/Thumb, SH, SPARC, MIPS, i960, and x86 architectures and is currently
available for Sun SPARC hosts running either SunOS or Solaris 2.5 and 2.6
and PC Windows 95/NT.
|