comp.lang.ada
 help / color / mirror / Atom feed
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/>




      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