comp.lang.ada
 help / color / mirror / Atom feed
* strongly typed langauge
@ 1996-09-19  0:00 AGBOH CHARLES
  1996-09-19  0:00 ` Larry Kilgallen
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: AGBOH CHARLES @ 1996-09-19  0:00 UTC (permalink / raw)



Hi


Could Some explain to me what the term "strongly typed language" is in the
context of ada.  Could you give some examples and tips as on how to
avoid errors related to this particular domain.



thanks




^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: strongly typed langauge
@ 1996-09-21  0:00 Spasmo
  0 siblings, 0 replies; 10+ messages in thread
From: Spasmo @ 1996-09-21  0:00 UTC (permalink / raw)



AGBOH CHARLES (cagboh@vub.ac.be) wrote:
: Hi


: Could Some explain to me what the term "strongly typed language" is in the
: context of ada.  Could you give some examples and tips as on how to
: avoid errors related to this particular domain.

Well strongly typed language in general means that strict type
checking is in place.  For instance try to mix and match various
numeric types in Ada and you'll quickly know what this means.
C will let you do stuff like mix floats and integers, but Ada
won't, at least not without explicit conversion.  Also you can
create new types which will be incompatible with old types,
even if they are "the same".  For instance compare the
following with C (notorious for being such a weakly typed language):

Ada:

type MY_INTEGER is new INTEGER;

C:

typedef int MY_INTEGER;

Now Ada will prevent you from mixing types of MY_INTEGER with
types of INTEGER, while C will happily let you mix MY_INTEGER
with int.  What this means for you as a developer is that
you get an extra layer of protection, and what IMO maps to
an ability to better reinforce your data types and map your
program to the problem domain you are wishing to solve.  Of
course if you are in the habit of mixing types, you will get
numerous errors, but these are easy to correct, and IMO will
save you grief in the long run.  Better a compile error now
than a runtime error a week later.

: thanks

--
Spasmo
"John Wayne was a Nazi, he liked to play SS
 He had a picture of Adolph the Boy tucked in his cowboy vest"
	"John Wayne was a Nazi" by MDC





^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: strongly typed langauge
@ 1996-09-24  0:00 Spasmo
  0 siblings, 0 replies; 10+ messages in thread
From: Spasmo @ 1996-09-24  0:00 UTC (permalink / raw)



Hugh Bonney (hbonney@netcom.com) wrote:
: Reposting article removed by rogue canceller.

: Ian Ward (wardi@rsd.bel.alcatel.be) wrote:

[Snip]

: : Suppose I have two numbers

: : The first one is five, and it is the number of children, under ten
: : in England, who have behaved themselves at school since the 1976
: : decision by Strasbourg to ban corporal punishment in schools was
: : enforced.

: : The second number is 1200, this is the number of seconds it takes
: : to drink a pint of beer, say.

: : So we have two numbers, 1200 and 5, which we add together.

: : 1200 + 5 = 1205.

: : 1205 what, this clearly makes no sense...

:     Well, of course it does since the sum is well known to be a
:     physical constant. 

I think you are confused.  While it makes sense to add any given
number to another from a MATHEMATICAL view, it doesn't necessarily
make sense to add two numbers that represent different 
entities.  I mean adding school children to units of time
makes no sense whatsoever from the perspective of an application
and this is (what I believe) Ian was talking about.  Two
values, which while mathematically compatible, are incompatible
per the rules of your application, hence using strong typing
to guarantee that they remain so can keep you from goofing
up in new and exciting ways.


:     Another example might be to note that it's 2km from A to B,
:     300m from B to C, and 20mm from C to D. So if you walk from
:     A to D have you gone a distance of 322? In elementary school
:     we have to learn the essentials of data typing and one can 
:     start with that. It does make sense to add apples and oranges
:     sometimes, but it doesn't make sense to add km and mm even
:     if you want to know the distance from Paris to the end of
:     your nose.

It makes sense to add apples and oranges if the rules of your
application allow such an operation.  Someone brought up a
great example of a data type called FRUIT, of which apples
and oranges were instances (loose use of the term) of.
Adding apples to oranges in this context made sense since
the sum was that of fruit, and apples and oranges were both
fruit, ie: your application allowed such an operation.
However, if you didn't want to know the quantity of fruit
in general, but instead wanted to keep track of apples
and oranges SEPARATELY, then it makes no sense whatsoever
to add apples to oranges.  I mean what is the sum?  It has
no place in the application whatsoever.


[Snip]

:     Strong typing shouldn't be used as a substitute for thought
:     or care, where it's useful is in pointing out real difficulties
:     in either one person's thinking about a problem, or real
:     (and inevitable) differences in understanding from one person
:     to the next. One could have such a code inspection done by
:     an inspection program, of course, incorporating every type of
:     analysis that will execute by overnight, and going through all
:     the code in a project as well as pieces of it.

However it can and IMO should be used in conjunction with thought
and care, to enforce the categorizations which we make in our
programs, and also to catch errors.  Hey we all make errors,
and even with careful design bugs are liable to happen, so any
extra safety that comes my way is greatly appreciated (and used).

[Snip]

: : Ian Ward's opinions only : wardi@rsd.bel.alcatel.be

--
Spasmo
"John Wayne was a Nazi, he liked to play SS
 He had a picture of Adolph the Boy tucked in his cowboy vest"
	"John Wayne was a Nazi" by MDC





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

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

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-09-19  0:00 strongly typed langauge AGBOH CHARLES
1996-09-19  0:00 ` Larry Kilgallen
1996-09-19  0:00 ` Ian Ward
1996-09-22  0:00   ` Hugh Bonney
1996-09-23  0:00     ` Alan Brain
1996-09-22  0:00   ` Hugh Bonney
1996-09-20  0:00 ` Alan Brain
1996-09-23  0:00   ` Robin Vowels
  -- strict thread matches above, loose matches on Subject: below --
1996-09-21  0:00 Spasmo
1996-09-24  0:00 Spasmo

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