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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,751d508677a5add1 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!feeder.news-service.com!kanaga.switch.ch!switch.ch!news.belwue.de!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Fri, 02 Jul 2010 15:24:25 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.4) Gecko/20100608 Thunderbird/3.1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: [Ada] made me hate programming References: <8f469661-370c-4484-82d8-f1b365455e0f@w12g2000yqj.googlegroups.com> <98aa58b3-50fc-418d-9f72-524b5a23c89d@t10g2000yqg.googlegroups.com> <4c2bd5e5$0$2366$4d3efbfe@news.sover.net> <4c2ca2d2$0$7666$9b4e6d93@newsspool1.arcor-online.net> <4c2cb60f$0$7651$9b4e6d93@newsspool1.arcor-online.net> <4c2d97a0$0$7655$9b4e6d93@newsspool1.arcor-online.net> <11xsi9ilnamk6$.1r1kaahru68b1.dlg@40tude.net> <4c2dc0da$0$6888$9b4e6d93@newsspool2.arcor-online.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4c2de889$0$6877$9b4e6d93@newsspool2.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 02 Jul 2010 15:24:25 CEST NNTP-Posting-Host: 4360a640.newsspool2.arcor-online.net X-Trace: DXC=fbc?C:DA=gNFJ3]dH>I?oEA9EHlD;3YcB4Fo<]lROoRA8kFJLh>_cHTX3jMAE_AbDWNZ4J X-Complaints-To: usenet-abuse@arcor.de Xref: g2news1.google.com comp.lang.ada:12137 Date: 2010-07-02T15:24:25+02:00 List-Id: On 03.07.10 14:51, Dmitry A. Kazakov wrote: > On Fri, 02 Jul 2010 12:35:06 +0200, Georg Bauhaus wrote: > >> On 03.07.10 10:35, Dmitry A. Kazakov wrote: >> >>> Profiles are bad, they create many new languages and require a deep >>> language understanding as for what must be in and out of the profile. >> >> When students study only the sequential parts of Ada >> they are not learning a new language by not starting >> with tasks. > > So, what would the reason to forbid tasks then? As I said earlier, one reason for restricting the language to some subset for teaching is error messages that should not refer to advanced concepts (yet to be studied). Error messages of this kind have been reported to create frustration. > You can > mark the manual pages about concurrency as "adult content." But I doubt > students read anything anyway. If student don't read, there is more reason to have the compiler indicate a clear sectioning of the language. That's what compilers do anyway, be it by not supporting some annex or be it by following the rules of an existing standardized profile. > Besides that the example is unrealistic, Absence of tasking in first programs is unrealistic? > how the message "tasks are > forbidden by the profile X" were better than "limited object cannot be > initialized". A more pedagogic, yet accurate(!), message is better than undecipherable advanced tech talk for professionals. Did you notice how GNAT's message ";" should be "is" does not mention the word "syntax"? Teaching profiles are to help those who do not yet know anything about task or limited. foo.ada:14: "`task' is a concurrency construct; \ concurrency is turned off in this teach pack" To me, this seems better to me than any message that requires an understanding of words having to do with tasking. It isn't easy for me to make GNAT emit a rather technical message about tasking. Here is an attempt: 6. Job : Task; | >>> subtype indication expected >>> missing ";" That's all logical seen from the compiler's perspective, I guess. But it does require some explanation by the teacher (remember: the student might think, quite legitimately, that there exists a type named "Task"). Explanations by teachers is the stuff from which to make "teaching profile messages". The example above might seem a lame attempt at an example, since, perhaps, a teacher has no trouble wiping away all questions by noting that "task" is a reserved word, and more about it later. Just get rid of it. But that's the point! That is what error messages can strive to be like in a "teaching compiler". Notice how the message at foo.ada:14 says just this.