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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5f764f1f7822ab9c X-Google-Attributes: gid103376,public From: Richard Riehle Subject: Re: Top 10 Language Constructs (Ada) Date: 2000/07/24 Message-ID: <397CC4A7.514991F1@ix.netcom.com>#1/1 X-Deja-AN: 650314776 Content-Transfer-Encoding: 7bit References: <8kmjja$l5h$1@pollux.ip-plus.net> <3970F56F.F3A70FAD@icdc.com> X-Accept-Language: en X-Server-Date: 24 Jul 2000 22:35:57 GMT Content-Type: text/plain; charset=us-ascii Organization: MindSpring Enterprises Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-07-24T22:35:57+00:00 List-Id: "Marc A. Criley" wrote: > The critical foundation of the Ada programming language is its "type model". (In > claiming this I want to credit Doug Bryan for triggering this insight for me at > an Ada conference seminar about a dozen years ago.) > Marc's exposition of the type model is interesting and comprehensive. He is correct that it is an essential element of the Ada language. It is also an essential element of many other languages, including Modula-3, Oberon, Eiffel, and even C++. The real secret is not the type model, as important and unique as it is in Ada. Almost never do I encounter a programmer who has difficulty understanding the type model. More often, Ada programmers, novice and experienced alike, have trouble with the rules of ALRM Chapter 8, Scope and Visibility. In particular, they have difficulty with the difference between scope and visibility and with the visibility rules themselves. No other programming language defines with such care the difference between scope and visibility. C++ has its scoping rules, but suffers from the ancestral rules of C. Coupled with scope and visibility is the difference between name-equivalence and structural equivalence for types. Modula-3, and several other languages suffer from reliance on structural equivalence. It is subtle distinction that Dr. Stroustrup was careful to insist upon in C++ just as we do in Ada. How many Ada programmers do you know who have read and understand the meaning of the rules in Chapter 8 of the ALRM. Probably very few. Yet more programming problems, more compiler error messages, originate in misunderstandings of this chapter than in any other set of rules, excepting perhaps the new accessibility rules for access and tagged types. The Ada type model is not nearly as strong as one might think without the rules of Chapter 8. Richard Riehle.