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"?