From: gautier_niouzes@hotmail.com (Gautier)
Subject: Re: advantages or disadvantages of ADA over pascal or modula
Date: 8 Jan 2003 01:01:08 -0800
Date: 2003-01-08T09:01:08+00:00 [thread overview]
Message-ID: <17cd177c.0301080101.3f826bab@posting.google.com> (raw)
In-Reply-To: b1ire-081.ln1@martinkl.dialup.fu-berlin.de
Martin Klaiber:
> I'm only an Ada-beginner, but I'd say that Ada is so much more powerful
> than Pascal that they hardly can be compared at all. But I also found
> three things which I miss in Ada compared to Borland Pascal.
>
> First, it would be nice, if an object in Ada would know it's own
> variables without naming them explicitly.
...
> It's not a big thing, but sometimes it leads to a lot of writing. Yes,
> I know I can rename variables, but I still wonder why an object in Ada
> doesn't know it's own variables.
In fact, you are missing BP's prefixed OO notation (object.Method).
You will certainly find fierce debates in c.l.a archives about it.
I survive by using always "o" as the object parameter.
The explicit has maybe the merit of readability over concision
(analogous to Pascal's "with" and its absence in Ada).
> Second, it would be nice, if Ada would allow to change internal
> variables of an object also in functions. So, the following is not
> valid code but it would be nice if it was, IMHO.
> function IncMonth (Calendar : in out type_Calendar) return boolean;
> function IncYear (Calendar : in out type_Calendar) return boolean;
> Of course the same thing can be done with procedures and a boolean
> parameter. But IMHO it's less elegant and less intuitive. [...]
Also subject to debates... you say it's intuitive because you are
accustomed to it. But look at your example. Normally, the basic role
of a function is to give a value in function of other (the parameters).
In your case the main information is what you do to "Calendar" and
the result has a minor role - quite strange... It would be more
elegant and intuitive (and also efficient) to write
procedure IncMonth (Calendar : in out type_Calendar) is
begin
if Calendar.Month = 12 then
IncYear (Calendar);
Calendar.Month := 1;
else
Calendar.Month := Calendar.Month + 1;
end if;
end IncMonth;
procedure function IncYear (Calendar : in out type_Calendar) is
begin
if Calendar.Year < 3000 then
Calendar.Year := Calendar.Year + 1;
else
raise Year_out_of_range;
end if;
end IncYear;
Don't forget, you have the exceptions... it saves a lot of transporting
error codes and acrobatic expressions...
________________________________________________________
Gautier -- http://www.mysunrise.ch/users/gdm/gsoft.htm
NB: For a direct answer, e-mail address on the Web site!
next prev parent reply other threads:[~2003-01-08 9:01 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-03 15:57 advantages or disadvantages of ADA over pascal or modula karl bowl
2003-01-04 2:36 ` Adrian Knoth
2003-01-04 23:12 ` Robert C. Leif
2003-01-05 2:56 ` Ted Dennison
2003-01-05 3:54 ` John R. Strohm
2003-01-06 5:55 ` AG
2003-01-05 9:38 ` John R. Strohm
2003-01-06 1:37 ` advantages or disadvantages of ADA over pascal or modula or oberon was " Robert C. Leif
2003-01-04 2:56 ` Steve
2003-01-04 11:34 ` Dmitry A. Kazakov
2003-01-04 17:35 ` Steve
2003-01-04 22:16 ` Vinzent Hoefler
2003-01-05 14:12 ` Dmitry A. Kazakov
2003-01-04 12:17 ` Gautier
2003-01-04 17:12 ` Alfred Hilscher
2003-01-04 18:16 ` Ted Dennison
2003-01-05 11:47 ` karl bowl
2003-01-05 18:53 ` Alfred Hilscher
2003-01-05 20:38 ` Vinzent Hoefler
2003-01-05 21:03 ` Alfred Hilscher
2003-01-05 21:20 ` Vinzent Hoefler
2003-01-05 21:31 ` Alfred Hilscher
2003-01-05 21:47 ` Vinzent Hoefler
2003-01-06 14:43 ` Gautier
2003-01-06 16:21 ` Alfred Hilscher
2003-01-05 22:57 ` Vinzent Hoefler
2003-01-06 21:57 ` karl bowl
2003-01-18 14:14 ` Alfred Hilscher
2003-01-18 15:26 ` Larry Kilgallen
2003-01-19 18:10 ` Alfred Hilscher
2003-01-19 23:42 ` Larry Kilgallen
2003-01-21 19:16 ` Robert A Duff
2003-01-18 21:39 ` John R. Strohm
2003-01-18 21:56 ` Vinzent Hoefler
2003-01-18 23:08 ` Larry Kilgallen
2003-01-18 23:16 ` John R. Strohm
2003-01-19 3:36 ` Hyman Rosen
2003-01-19 4:47 ` Vinzent Hoefler
2003-01-19 5:47 ` John R. Strohm
2003-01-19 5:50 ` Steve
2003-01-19 4:47 ` Vinzent Hoefler
2003-01-19 5:51 ` John R. Strohm
2003-01-19 12:51 ` Dmitry A. Kazakov
2003-01-19 16:43 ` Marin David Condic
2003-01-19 23:26 ` John R. Strohm
2003-01-21 13:45 ` Marin David Condic
2003-01-19 6:10 ` Kevin Cline
2003-01-19 18:03 ` Bernd Specht
2003-01-19 16:31 ` Marin David Condic
2003-01-19 12:17 ` Engineers Pay Alan and Carmel Brain
2003-01-21 7:12 ` Kevin Cline
2003-01-21 9:14 ` John R. Strohm
[not found] ` <hub1g-vu3.ln1@beastie.ix.netcom.com>
2003-01-22 4:11 ` John R. Strohm
2003-01-22 17:56 ` John R. Strohm
2003-01-19 16:19 ` advantages or disadvantages of ADA over pascal or modula Marin David Condic
2003-01-19 19:08 ` Robert C. Leif
2003-01-19 20:26 ` Dale Stanbrough
2003-01-20 8:22 ` Tor Fredrik Aas
2003-01-21 14:00 ` Marin David Condic
2003-01-19 18:22 ` Alfred Hilscher
2003-01-20 10:35 ` Georg Bauhaus
2003-01-20 21:12 ` John R. Strohm
2003-01-20 15:56 ` karl bowl
2003-01-20 17:39 ` Jerry Petrey
2003-01-20 22:47 ` Alfred Hilscher
2003-01-21 14:55 ` Stephen Leake
2003-01-21 21:55 ` Alfred Hilscher
2003-01-23 17:06 ` Stephen Leake
2003-01-27 4:25 ` AG
2003-01-26 17:11 ` Alfred Hilscher
2003-01-21 17:23 ` karl bowl
2003-01-21 21:47 ` Alfred Hilscher
2003-01-05 12:42 ` Gautier
2003-01-05 18:58 ` Alfred Hilscher
2003-01-05 22:28 ` tmoran
2003-01-06 20:33 ` Randy Brukardt
2003-01-07 14:47 ` Alfred Hilscher
2003-01-07 18:56 ` Randy Brukardt
2003-01-08 9:43 ` Alfred Hilscher
[not found] ` <mji5va.994.ln@beastie.ix.netcom.com>
2003-01-04 22:16 ` Vinzent Hoefler
2003-01-07 18:14 ` Martin Klaiber
2003-01-08 9:01 ` Gautier [this message]
2003-01-08 11:13 ` Martin Klaiber
2003-01-08 17:25 ` Gautier
2003-01-08 17:52 ` Martin Klaiber
2003-01-10 3:07 ` Richard Riehle
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox