From: Manuel Collado <m.collado@domain.invalid>
Subject: Re: on the need to duplicate code for procedure signature in both body and interface files
Date: Sun, 08 Jul 2012 12:52:38 +0200
Date: 2012-07-08T12:52:38+02:00 [thread overview]
Message-ID: <jtboph$h4d$1@speranza.aioe.org> (raw)
In-Reply-To: jtafi8$pvg$1@speranza.aioe.org
El 08/07/2012 1:08, Nasser M. Abbasi escribi�:
> Basic question from an Ada newbie.
>
> One thing that always bothered me in Ada is the need
> to physically duplicate the code that represents the API
> of the package procedures and functions in both the interface
> and the body files (.ads and .adb).
>
> I do not like duplicating code at all. Even if it is only
> for the signature of the API, and even though the Ada
> compiler will catch any difference (assuming one changes
> the .ads and forget to update the .adb for example).
It seems you are looking for a Java way of writing code. Java uses a single
source file for each compilation unit. Signatures of public elements are
implicitly assumed to be the interface part, while the remaining code gives
the implementation.
>
> Was there no other alternatives to avoid this situation
> when Ada was originally designed in order to keep the same
> good concept of separating the interface from the body, but
> somehow at the same time, eliminate the need to duplicate by
> hand the API definition code in 2 separate places?
As said in other responses, the obvious solution would be a specialized IDE
that lets you edit a single combined spec+body source, and later split it
on the fly into spec and body separate files for compilation.
But such IDE seems not to exist yet.
>
> I am using GNAT. I Assume this is the same in other Ada
> implementations.
Yes.
--
Manuel Collado - http://lml.ls.fi.upm.es/~mcollado
next prev parent reply other threads:[~2012-07-08 10:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-07 23:08 on the need to duplicate code for procedure signature in both body and interface files Nasser M. Abbasi
2012-07-08 4:01 ` Shark8
2012-07-08 17:13 ` Brian Drummond
2012-07-08 4:21 ` Niklas Holsti
2012-07-08 6:09 ` Jeffrey Carter
2012-07-13 15:51 ` Robert A Duff
2012-07-08 7:38 ` Stephen Leake
2012-07-08 10:52 ` Manuel Collado [this message]
2012-07-09 1:48 ` Britt
2012-07-09 10:49 ` AdaMagica
2012-07-09 15:11 ` Adam Beneschan
2012-07-13 17:12 ` björn lundin
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox