From: mgk25@cl.cam.ac.uk (Markus Kuhn)
Subject: Re: quality / availability of gnat
Date: 1999/07/17
Date: 1999-07-17T00:00:00+00:00 [thread overview]
Message-ID: <7mqhbh$9og$2@pegasus.csx.cam.ac.uk> (raw)
In-Reply-To: 7mk70d$h41$1@clnews.edf.fr
|> Martin Gangkofer <mttg@my-deja.com>:
|> > I am planning to use gnat as cross compiler for an embedded application
|> > based on LynxOS operating system. The application demands high
|> > performance, this means the compiler shall produce good quality code.
|> > (1) Do you know wether there is a complete (and supported) port of gnat
|> > to LynxOS.
I don't know about LynxOS, but ACT does offer commercial support for
a couple of embedded real-time operating systems, including for example
VxWorks, and some avionics applications of significant complexity built
with VxWorks and GNAT are already flying on board of various US military
aircraft.
|> > (2) How good is the quality of gnat in terms of performance of the
|> > generated code?
It is usually possible and relatively straight forward to produce
with GNAT the exact same sequence of machine instructions that
the GNU C compiler would produce from the corresponding C program.
Sometimes GNAT does implement things internally in a way that
surprises beginners a bit (especially related to how variable-length
objects are treated on the stack, where a LISP/Perl/Java/Python
programmer might intuitively expect a heap allocation). These things
can however usually easily be spotted by inspecting the "-gnatdg" output,
and the intermediate (low-level Ada-style) code that you see there
is converted into machine code very similar to how the same C code
would be compiled. If you use very basic Ada features that are
equivalent to C's features, you get the same code. If you use high-level
features of Ada (exceptions, unbounded arrays, tasking, etc.) that are not
available in C, you have to test whether the code produced from these
high-level features meets your performance requirements.
I have done encryption and image processing applications with GNAT and
the performance was very comparable to what I get with similar code
in C (or at least not more than 10-20% worse, and that is just a few
months in Moore's law).
|> > (4) Is gnat suitable for use in a big projects 100,000 ... 500,000 SLOC?
I hear that it is successfully being used in several projects of this
size by ACT and ACT-Europe customers.
Markus
--
Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK
Email: mkuhn at acm.org, WWW: <http://www.cl.cam.ac.uk/~mgk25/>
prev parent reply other threads:[~1999-07-17 0:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-07-12 0:00 quality / availability of gnat Martin Gangkofer
1999-07-15 0:00 ` Pascal Obry
1999-07-17 0:00 ` Markus Kuhn [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox