From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!seismo!sundc!pitstop!sun!amdahl!nsc!rfg From: rfg@nsc.nsc.com (Ron Guilmette) Newsgroups: comp.lang.ada Subject: Re: Ada language revision Message-ID: <7882@nsc.nsc.com> Date: 18 Nov 88 00:32:52 GMT References: <44449@beno.seismo.CSS.GOV> <3563@hubcap.UUCP> Reply-To: rfg@nsc.nsc.com.UUCP (Ron Guilmette) Organization: National Semiconductor, Sunnyvale List-Id: In article <3563@hubcap.UUCP> wtwolfe@hubcap.clemson.edu writes: > > In view of the recent discussions re: appropriateness of revisions, I'm > hereby submitting the revisions I think appropriate for Ada 9X for general > discussion and/or flamage: Well, since somebody else started this ball rolling, I guess it might be safe to do a little Ada bashing and launch off into a jihad of my own. > 3) The rule that a limited private type cannot be a direct component of > another limited private type should be repealed... I have some problems with limited private types too. Specifically, if such types are really only accessable through a "limited" functional interface, then why shouldn't we be able to declare such types in the public part of a package and then defer the full declaration until the package body? Why? Well, I'll tell you why. It seems to me that it is because of Ada's silly specification of parameter passing conventions, where the implementor gets to decide if he/she wants to pass any given scalar type object using value-result. This should also be repealed. All parameters should be passed by reference. Period. Then programmers would never have to guess about implementation semantics and the compiler would never have to know what the real implementation of a given limited private type was until the package body was being compiled. > 6) Exceptions should be capable of being passed as parameters. I agree completely, but I would go much further and say that any category of run-time (not compile-time) entity which can be represented by an identifier (including exceptions and record field names, but not generic units) should be "passable" as parameters. Further, I think that *all* entities which can be designated by an identifier (including exceptions, record field names, and generic units) should be "passable" as generic (instantiation) parameters. > 7) Arrays should be initializable via named association. If Ada only had "classes" (a la Simula & C++) we could trash a whole lot of specialized convoluted syntax and semantics having to do with initialization and constructors also. > 8) Record types should have the attributes NUMBER_OF_FIELDS, > FIELD_NAME (Field Number), and FIELD_TYPE (Field Number). Not having > these attributes prevents the construction of a generic report > generator which will accept a record type as a generic parameter, > and provide a function GENERATE_REPORT which, given a file of those > records, will automatically generate a report in which the column > headers are labeled with the field names... OK, but how do you number the fields in a variant record? -- Ron Guilmette National SemiConductor, 1135 Kern Ave. M/S 7C-266; Sunnyvale, CA 94086 Internet: rfg@nsc.nsc.com or amdahl!nsc!rfg@ames.arc.nasa.gov Uucp: ...{pyramid,sun,amdahl,apple}!nsc!rfg