Ada (was: D (was: Quo vadis,
J. David Bryan
jdbryan at acm.org
Sat Jul 31 19:32:53 CEST 2010
On Saturday, July 31, 2010 at 6:01, Frank Heckenbach wrote:
> For the 3 big things I mentioned, I know C++ has them already. I don't
> know if Ada does, perhaps you can give us some information here, e.g.,
> is its object model comparable to those GPC supports or that of C++;
I am not familiar with objects in GPC, and only tangentially familiar with
C++ (i.e., have not done any serious programming in it). However, the
short answer is yes; objects are called "tagged types" in Ada.
There is a guide that discusses comparable Ada and C++ features here:
or more nicely formatted here:
It has a section devoted to the Ada object model:
(Note that this guide discusses Ada 95, which superceded the original Ada
83, and has itself been superceded by Ada 2005. As such, it is a bit out
of date, although language revisions have been kept backward-compatible.
Ada undergoes periodic improvements; the next language revision is
scheduled for 2012.)
> does Ada supported exception handling and how;
> does it support something like templates (IOW, how can one implement,
> say, a generic list, applicable to any given type, with strong
Yes; templates are called "generics" in Ada. See:
> Packed arrays/records and array slices can be implemented in C++ code
> with moderate effort....
Indeed, any language may be used as the intermediate for GPC. However, I
would expect that the effort required to write a translator would vary,
depending on the closeness of the mapping between GPC and that language.
My impression is that C++ doesn't map particularly well to Pascal's type
structure (subranges, sets, packed structures), and while that may be
overcome with moderate effort, as you say, that effort may be less with a
different choice of intermediate language. Granted, though, that this
mapping is just one of several variables influencing that choice.
> I fear this might only be true for more traditional Pascal, while I
> stated that I'm particularly interested in more "modern" features
> that I know from C++. Of course, if Ada also supports them, it would
> make it more interesting.
"Modern" features, such as templates and exception handling, have been
present in Ada from the beginning (1983). :-)
More information about the Gpc