From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Proliferation of Reserved Words Date: Wed, 2 Jun 2021 21:21:31 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <827c60f6-b008-468b-9ab4-cf110edff252n@googlegroups.com> NNTP-Posting-Host: 5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:62097 List-Id: On 2021-06-02 20:13, AdaMagica wrote: > This discussion really is 40 years late. But entries and procedures are in fact very different beasts. > A procedure is reentrant and has exactly one body. > An entry is not reentrant and cannot be called recursively; it has no body, rather it may have as many accept statements as you like or feel necessary (it may even have none - what the heck!). Yes, but I would argue that these are implementation details. It might have sense to consider them having same interface, as we do now, after the dot-notation was introduced. In Ada 83 it was not so. > So different keywords for them are quite reasonable. So long the implementation details leak, as we have no tagged tasks and protected objects and no multiple dispatch. Otherwise all calling notations could be made fully equivalent for all bodies. > Thinking about this: > Ultimatey, we could perhaps do with just one reserved word called keyword. Depending on the place where is stands makes it clear what it means: > keyword I keyword 1..10 keyword > X(I) := I + 1; > Keyword; Yes, one needs only one pair of delimiters. It reminds me construction of Z in ZFS using sets: 0 = Ø 1 = {Ø} 2 = {{Ø}} ... Similarly the for-loop could be: (, , , ) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de