comp.lang.ada
 help / color / mirror / Atom feed
From: kilgallen@eisner.decus.org (Larry Kilgallen)
Subject: Re: Linking an ADA routine to a program written in C
Date: 1996/10/04
Date: 1996-10-04T00:00:00+00:00	[thread overview]
Message-ID: <1996Oct4.102608.1@eisner> (raw)


In article <dewar.844372753@schonberg>, dewar@schonberg.cs.nyu.edu (Robert Dewar) writes:
> Larry says
> 
> "> However, in practice, since Ada 95 can duplicate a C interface, Ada 95
>> can certainly interfac to anything that C (or for that matter Fortran
>> or COBOL) can interface to. Of course, as is generally true for interacing
>> from C to anything, such interfaces may indeed be non-portable.
> 
> As far as _non-portable_ interfaces to other languages, I can do that
> with an Ada 83 program, since I can generally figure out how to program
> in assembly language, and in my experience understanding the underlying
> machine calling sequences is essential for figuring such things out even
> if the linkage is to be constructed in a compiled language.
> "

> This shows that you do not have muych experience in the use of Ada 95 in
> constructing such interfaces, since what you say is simply wrong for
> Ada 95, you can interface GNAT to a wide range of languages by following
> whatever C would do without having the slightest idea of what the
> underlying machine calling sequence is.

And how do I find out "whatever C would do" ?

Are you presuming that every Ada programmer is a former C programmer ?

The little bit of C I do know does not seem to support that
portability argument.  VMS C programmers call to Pascal routines
without specifying that the language being called is Pascal.
When they port that C code to 68K Macintosh, they must add
a keyword to their source to indicate that the language being
called is Pascal.  Presumably any Ada implementation must deal
with that issue as well, but adding a keyword on getting to a
new platform is not what I would call portable.

Or even consider calling out to C programs.  I buy object
code which was written in C from one vendor.  If I were to
buy different object code from another vendor who happened
to use a different brand of 68K Macintosh C compiler (there
are 4 available at last count), I would have to specify in
my Ada program which brand of C was used for the various
imported C subroutines, since there are different binary
calling conventions for the various brands of C compiler.
This is not an issue on VMS (unless gcc has managed to
avoid using the common calling standard), so the Ada code
I had written on VMS would need to be "augmented" in order
to work on 68K Macintosh.

Now admittedly, I only have one current vendor from whom
I get multi-platform subroutines written in C.  I am sure
there are other vendors selling software in that format,
but it is unlikely their subroutines are something I want.

> Perhaps your experience with Ada 83 is indeed typical, perhaps it is
> not, but in any case it seems irrelevant with respect to Ada 95.

Presentation of such a broad marketing claim seems intended to win me
over on our previous discussions regard GNAT being "commercial" :-)

Larry




             reply	other threads:[~1996-10-04  0:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-10-04  0:00 Larry Kilgallen [this message]
1996-10-08  0:00 ` Linking an ADA routine to a program written in C Robert Dewar
  -- strict thread matches above, loose matches on Subject: below --
1996-09-28  0:00 Robert Dewar
1996-09-28  0:00 ` Larry Kilgallen
1996-10-03  0:00   ` Robert Dewar
1996-09-18  0:00 newmans
1996-09-18  0:00 ` Larry Kilgallen
1996-09-19  0:00 ` David C. Hoos, Sr.
1996-09-19  0:00   ` Larry Kilgallen
1996-09-20  0:00     ` Calius
1996-09-20  0:00       ` Chris Brand
1996-09-24  0:00   ` Cyrille Comar
1996-09-25  0:00     ` Larry Kilgallen
1996-09-26  0:00 ` Jens Jakob Jensen
replies disabled

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