Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP
Path: utzoo!linus!vaxine!wjh12!genrad!mit-eddie!nessus
From: nessus@mit-eddie.UUCP (Doug Alan)
Newsgroups: net.lang
Subject: Re: Gotos in programming languages
Message-ID: <2144@mit-eddie.UUCP>
Date: Fri, 15-Jun-84 16:08:08 EDT
Article-I.D.: mit-eddi.2144
Posted: Fri Jun 15 16:08:08 1984
Date-Received: Tue, 19-Jun-84 01:10:24 EDT
References: <1979@mit-eddi.UUCP> <5400007@ea.UUCP> <7506@umcp-cs.UUCP>
Organization: MIT, Cambridge, MA
Lines: 31

From: brad@umcp-cs.UUCP

>	It seems to me that this 4 point definition is fulfilled by the
>	language Ada.

Well perhaps using these over-simplified defintions, you could construe
Ada to supporting data abstraction, but not really even then.  To do a
good job with data abstraction, you really need heap-based allocation
with automatic garbage collection.  Ada doesn't support this.

Also, Ada's private type system is completely messed up.  "Private
types" have their assignment and equality operations provided by the
system.  This is the wrong thing since two abstract objects may be
different from the concrete view (the view that Ada's "=" operation
takes), but equal from the abstract point of view.  And the assignment
operation is supposed to copy the object being assigned, but the system
provided operation can't do that right either.  You can do a little
better with "limiited private types".  You can then provide your own "="
operation, but you still can't provide your own ":=" operation.  And
even if you do define your own "=" operation for a limited private type,
Ada then won't allow you to use "=" on a composite type that contains
that type.

Basically, Ada is just gross.  Bleah!
-- 
				-Doug Alan
				 mit-eddie!nessus
				 Nessus@MIT-MC

				"What does 'I' mean"?