comp.lang.ada
 help / color / mirror / Atom feed
* Re: Tell this C programmer about Ada and realtime...
  1998-09-17  0:00 Tell this C programmer about Ada and realtime Mike Silva
@ 1998-09-17  0:00 ` Tucker Taft
  1998-09-21  0:00 ` John M. Mills
  1 sibling, 0 replies; 8+ messages in thread
From: Tucker Taft @ 1998-09-17  0:00 UTC (permalink / raw)


Mike Silva (mjsilva@ix.netcom.com) wrote:

: I'm a longtime programmer who's bounced between PC and embedded/realtime
: applications.  Now I'm back in the realtime field and I'd like to learn
: something about Ada -- partly in response to occasional "I'd *never*
: program a critical realtime application in C" comments I hear and read.

: So, would anybody like to "sell" Ada to a receptive potential buyer?

A good place to start is www.adahome.com.
It has a lot of "ammunition" and pointers to various Ada success
stories, etc.

: Mike

--
-Tucker Taft   stt@inmet.com   http://www.inmet.com/~stt/
Intermetrics, Inc.  Burlington, MA  USA




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Tell this C programmer about Ada and realtime...
@ 1998-09-17  0:00 Mike Silva
  1998-09-17  0:00 ` Tucker Taft
  1998-09-21  0:00 ` John M. Mills
  0 siblings, 2 replies; 8+ messages in thread
From: Mike Silva @ 1998-09-17  0:00 UTC (permalink / raw)


I'm a longtime programmer who's bounced between PC and embedded/realtime
applications.  Now I'm back in the realtime field and I'd like to learn
something about Ada -- partly in response to occasional "I'd *never*
program a critical realtime application in C" comments I hear and read.

So, would anybody like to "sell" Ada to a receptive potential buyer?

Mike




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Tell this C programmer about Ada and realtime...
  1998-09-21  0:00 ` John M. Mills
  1998-09-21  0:00   ` dennison
@ 1998-09-21  0:00   ` John M. Mills
  1998-09-21  0:00     ` dewarr
  1998-09-21  0:00   ` dewar
  2 siblings, 1 reply; 8+ messages in thread
From: John M. Mills @ 1998-09-21  0:00 UTC (permalink / raw)


Rudely and swiftly following up my own post,
jm59@prism.gatech.edu (John M. Mills) ad-libbed:

>Note: We found this works very easily if the 'main' is in GNAT, but
>requires that you explicitly force task instantiation if your main is [say]
         Think I should have said:  ^^^^^^^^^^^^^^^^^^---'elaboration'
>in C.  I can get more info on this if you turn out to need it.

As my father says, "A fool is someone who is wrong in a loud voice". Sorry.

 --jmm

-- 
 John M. Mills, Senior Research Engineer   --   john.mills@gtri.gatech.edu
   Georgia Tech Research Institute, Georgia Tech, Atlanta, GA 30332-0834
        Phone contacts: 404.894.0151 (voice), 404.894.6258 (FAX)
           "Lies, Damned Lies, Statistics, and Simulations."




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Tell this C programmer about Ada and realtime...
  1998-09-21  0:00 ` John M. Mills
  1998-09-21  0:00   ` dennison
  1998-09-21  0:00   ` John M. Mills
@ 1998-09-21  0:00   ` dewar
  2 siblings, 0 replies; 8+ messages in thread
From: dewar @ 1998-09-21  0:00 UTC (permalink / raw)


In article <6u5nsf$b28@acmey.gatech.edu>,
  jm59@prism.gatech.edu (John M. Mills) wrote:

> If your Real-Time-E[nvironment|xecutive] (RTE) vendor uses the GNU tool
> suite (This includes at least one mainstream vendor - perhaps Wind River),
> you're good to go with GNAT,
> which I have found very serviceable.  The current
> public release handles tasks as UNIX threads, which is fairly clean to spin
> off ISRs, etc. (he says, having only used others' libs for ipc).

A correction here. Some GNAT versions use UNIX threads for
tasks, others do not, some provide a choice. In the case of
GNAT ports to VxWorks, GNAT threads do of course translate
directly into VxWorks threads.

Incidentally, just because Wind River uses GCC, does not mean
that GNAT is necessarily the best choice. The whole point of
GCC (and GNAT!) is that they follow standard system
conventions. Any other compiler that follows these
conventions can be used fine with VxWorks for example.

If you are using VxWorks in particular, there are a number
of different possibilities for compilers. You should judge
these using the normal criteria (price, reliability, language
coverage, portability features, integration with VxWorks etc)
It is certainly true that you can be sure that GNAT and the
GCC compiler used in VxWorks are good partners, but other
Ada 95 compilers may interface with GCC equally well, and
you should not assume otherwise.

> Note: We found this works very easily
> if the 'main' is in GNAT, but
> requires that you explicitly force task instantiation
> if your main is [say]
> in C.  I can get more info on
> this if you turn out to need it.

There is no requirement for the main program to be "in GNAT"
(an odd phrase anyway, in Ada is presumably meant). Note that
you may often get wrong advice like this from people using
GNAT if they are using the public version, since they are
figuring out things for themselves. Certainly if you are
using the fully supported version, you will have no problems
in mixing Ada and C and other languages, and having the main
in any language you like. Many of our customers use a C main
program (and GNAT itself has a C main program!) This doesn't
mean that the public version is not usable, if you don't have
any mission critical requirement (e.g. your interests are
purely research oriented or you are just learning to use
Ada, then the public version without support maybe just what
you need!)

> If you like Ada, it's highly useable.  Naturally you have to be[come]
> comfortable with Ada, but the language was originally conceived for this
> type of application -- it may have taken a few iterations to grow into the
> truly useable tool I find it to be now.  My summary would be: "Ada is like
> Pascal with an Attitude."  You "pay up front" as you design the module
> breakout and interface data types for your Ada app, then you cash in pretty
> well at integration and support time, when the enforced clarity and type-
> checking pays off.  This is particularly true when the project requires a
> group of coders to put in to a common library pool.

If you are seriously interested in using GNAT with VxWorks
or RTEMS, you should contact sales@gnat.com. We have a wide
variety of possible product offerings, ranging from fully
supported turnkey systems, to cooperative arrangements in
which the customer handles backend issues, and we provide
help and also support for frontend issues. Which approach
is appropriate depends on the environment and the level of
knowledge of the customer.

Robert Dewar
Ada Core Technologies

-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp   Create Your Own Free Member Forum




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Tell this C programmer about Ada and realtime...
  1998-09-21  0:00 ` John M. Mills
@ 1998-09-21  0:00   ` dennison
  1998-09-21  0:00     ` dewar
  1998-09-21  0:00   ` John M. Mills
  1998-09-21  0:00   ` dewar
  2 siblings, 1 reply; 8+ messages in thread
From: dennison @ 1998-09-21  0:00 UTC (permalink / raw)


In article <6u5nsf$b28@acmey.gatech.edu>,
  jm59@prism.gatech.edu (John M. Mills) wrote:

> If your Real-Time-E[nvironment|xecutive] (RTE) vendor uses the GNU tool
> suite (This includes at least one mainstream vendor - perhaps Wind River),
> you're good to go with GNAT, which I have found very serviceable.  The current
> public release handles tasks as UNIX threads, which is fairly clean to spin
> off ISRs, etc. (he says, having only used others' libs for ipc).
>

I'm sorry to steer this thread off course so quickly, but we were just going
over this in another thread. Wind River is the purveyor of VxWorks. There
appear to be a few gnat VxWorks ports available (for a fee), but support is
not there for every architecture. For gnat to be available, it has to have
been ported to your OS/Architecture combination. Just because GCC is there
doesn't automatically mean gnat is.

--
T.E.D.

-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp   Create Your Own Free Member Forum




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Tell this C programmer about Ada and realtime...
  1998-09-21  0:00   ` John M. Mills
@ 1998-09-21  0:00     ` dewarr
  0 siblings, 0 replies; 8+ messages in thread
From: dewarr @ 1998-09-21  0:00 UTC (permalink / raw)


In article <6u654b$qo6@acmez.gatech.edu>,
  jm59@prism.gatech.edu (John M. Mills) wrote:
> Rudely and swiftly following up my own post,
> jm59@prism.gatech.edu (John M. Mills) ad-libbed:
>
> >Note: We found this works very easily if the 'main' is in GNAT, but
> >requires that you explicitly force task instantiation if your main is [say]
>          Think I should have said:  ^^^^^^^^^^^^^^^^^^---'elaboration'
> >in C.  I can get more info on this if you turn out to need it.
>
> As my father says, "A fool is someone who is wrong in a loud voice". Sorry.


Yes, of course you need to arrange for elaboration. This is
done as described in the Ada standard, namely by calling the
adainit() routine generated by the binder. I guess different
people have different thresholds of "very easy", but adding
one call to adainit() certainly falls into that category
for me!

-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp   Create Your Own Free Member Forum




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Tell this C programmer about Ada and realtime...
  1998-09-21  0:00   ` dennison
@ 1998-09-21  0:00     ` dewar
  0 siblings, 0 replies; 8+ messages in thread
From: dewar @ 1998-09-21  0:00 UTC (permalink / raw)


In article <6u66h4$g30$1@nnrp1.dejanews.com>,
  dennison@telepath.com wrote:

> I'm sorry to steer this thread off course so quickly, but we were just going
> over this in another thread. Wind River is the purveyor of VxWorks. There
> appear to be a few gnat VxWorks ports available (for a fee), but support is
> not there for every architecture. For gnat to be available, it has to have
> been ported to your OS/Architecture combination. Just because GCC is there
> doesn't automatically mean gnat is.

Yes, that is certainly true, people often forget that
compilers are *architecture* dependent, not just OS
dependent. Some people think for example ask us if there
is a Unix port of GNAT, which is of course not a sensible
question.

In the same sense, asking if GNAT is ported for VxWorks is
the wrong question. You do indeed have to ask for a port to
VxWorks on a specific target (just as when you order VxWorks
in the first place, you had better tell them what particular
architecture you are using).

Actually that's a little too simplistic. VxWorks is a basic
system, which differs for each architecture, and then for a
given architecture, e.g. PPC, there are multiple board
support packages. Usually the compiler does NOT need
modifying when all that changes is the BSP.

That being said, GNATWorks is available for a number of
architectures. Versions of GNAT on VxWorks exist for the
following architectures:

  i960
  PPC
  x86
  MIPS
  Alpha
  68K

I will leave it to you to decide if that is or is not
a "few" architectures. It represents the entire list of
architectures for which we have had some customer interest.
In each case here, the corresponding compiler will operate
on multiple different boards with these architectures,
using the appropriate BSP's.

If you are interested in a GNAT port for one of the above
architectures, by all means contact us at sales@gnat.com.
If you are interested in a VxWorks port for some other
architecture, you should also contact us. One of the things
we have found is that we can share almost exactly the same
VxWorks code base between architectures, so if there is an
architecture not included in this list, it may still be
quite practical to provide a GNATWorks port.

Robert Dewar
Ada Core Technologies

-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp   Create Your Own Free Member Forum




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Tell this C programmer about Ada and realtime...
  1998-09-17  0:00 Tell this C programmer about Ada and realtime Mike Silva
  1998-09-17  0:00 ` Tucker Taft
@ 1998-09-21  0:00 ` John M. Mills
  1998-09-21  0:00   ` dennison
                     ` (2 more replies)
  1 sibling, 3 replies; 8+ messages in thread
From: John M. Mills @ 1998-09-21  0:00 UTC (permalink / raw)


In comp.lang.ada you write:

>I'm a longtime programmer who's bounced between PC and embedded/realtime
>applications.  Now I'm back in the realtime field and I'd like to learn
>something about Ada -- partly in response to occasional "I'd *never*
>program a critical realtime application in C" comments I hear and read.

>So, would anybody like to "sell" Ada to a receptive potential buyer?

Mike -

What's to "sell?"  Ada, particularly Ada95, is a strongly-typed, modular
language with constructs to link objects from other languages and to
directly address system hardware.  For real-time applications, you need
an executive package which will launch your process(es) and link your
required hardware resources to interrupts or whatever.  You naturally need
some type of debugging support.

If your Real-Time-E[nvironment|xecutive] (RTE) vendor uses the GNU tool
suite (This includes at least one mainstream vendor - perhaps Wind River),
you're good to go with GNAT, which I have found very serviceable.  The current
public release handles tasks as UNIX threads, which is fairly clean to spin
off ISRs, etc. (he says, having only used others' libs for ipc).

Anyway, the question for me falls into the RTE vendor-selection venue, and
you can use Ada if you're comfortable with it.  You can similarly link
parts of your code written in Ada, C, and Fortran, with only minimal over-
head.  I have a fairly comprehensive example for Ada-Fortran-Ada on my ftp
site:
ftp://jmills.gtri.gatech.edu/

in:
pub/coding/

as:
ada_fortran_calls.gz

Note: We found this works very easily if the 'main' is in GNAT, but
requires that you explicitly force task instantiation if your main is [say]
in C.  I can get more info on this if you turn out to need it.

If you like Ada, it's highly useable.  Naturally you have to be[come]
comfortable with Ada, but the language was originally conceived for this
type of application -- it may have taken a few iterations to grow into the
truly useable tool I find it to be now.  My summary would be: "Ada is like
Pascal with an Attitude."  You "pay up front" as you design the module
breakout and interface data types for your Ada app, then you cash in pretty
well at integration and support time, when the enforced clarity and type-
checking pays off.  This is particularly true when the project requires a
group of coders to put in to a common library pool.

Regards - jmm

-- 
 John M. Mills, Senior Research Engineer   --   john.mills@gtri.gatech.edu
   Georgia Tech Research Institute, Georgia Tech, Atlanta, GA 30332-0834
        Phone contacts: 404.894.0151 (voice), 404.894.6258 (FAX)
           "Lies, Damned Lies, Statistics, and Simulations."




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~1998-09-21  0:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-09-17  0:00 Tell this C programmer about Ada and realtime Mike Silva
1998-09-17  0:00 ` Tucker Taft
1998-09-21  0:00 ` John M. Mills
1998-09-21  0:00   ` dennison
1998-09-21  0:00     ` dewar
1998-09-21  0:00   ` John M. Mills
1998-09-21  0:00     ` dewarr
1998-09-21  0:00   ` dewar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox