comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada syntax questions
Date: Wed, 23 Dec 2020 22:06:03 -0600	[thread overview]
Message-ID: <rs143c$15s$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: rrv0u2$102i$1@gioia.aioe.org

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:rrv0u2$102i$1@gioia.aioe.org...
> On 2020-12-23 02:23, Randy Brukardt wrote:
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>> news:rrs92d$1pfi$1@gioia.aioe.org...
>> ...
>>> But you cannot rid of X(...) syntax, where X is an object.
>>
>> That's a prefixed view, of course. No one would want to get rid of that.
>
> Hmm, where is the operation? A prefixed view is
>
>    <expression>.<operation>(...)
>
> Indexing is
>
>    <expression>(...)

I neglected to mention that what Ada calls objects are also function calls 
in this proposed generalization. (Much like enumeration literals are in 
Ada.) So for static semantics (that is, compile-time), pretty much 
everything is a function call. This gets rid of the anomalies associated 
with constants (which don't overload and thus hide more than a parameterless 
function - which is otherwise the same thing); combined with 
variable-returning functions, everything is overloadable and treated the 
same in expressions. Almost no special cases (operators still require some 
special casing, but we can make them always visible which would eliminate 
more issues).

Clearly a compiler for this language (which can't be Ada, unfortunately, way 
too incompatible) would special-case some kinds of built-in functions for 
things like objects and indexing. But that doesn't need to hair up the 
semantic model, just the implementations.

...
>> Ada (and most other languages) are full of redundant stuff. Simpilfy the
>> basics and then one has more room for interesting stuff (static analysis,
>> parallel execution, etc.).
>
> Yes, but I would rather keep all this stuff in the language making it 
> overridable primitive operations.

Yeah, you don't plan to formally describe nor implement this language, so 
you don't really care about how complex it gets. :-) Well, at least not 
until performance suffers. Ada is reaching the limit of what can be done 
without substantial incompatibility. If we're going to allow that, we need 
to start with a cleaner base, and part of that is getting rid of 
redundancies.

                                  Randy.


  reply	other threads:[~2020-12-24  4:06 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-17 22:39 Ada syntax questions DrPi
2020-12-17 23:18 ` Gabriele Galeotti
2020-12-18  8:26 ` Jeffrey R. Carter
2020-12-18  9:18 ` Dmitry A. Kazakov
2020-12-18 16:55 ` Mart van de Wege
2020-12-18 17:38 ` Björn Lundin
2020-12-18 19:35 ` Niklas Holsti
2020-12-20 21:59   ` Keith Thompson
2020-12-22  1:04     ` Randy Brukardt
2020-12-22  8:00       ` Dmitry A. Kazakov
2020-12-23  1:23         ` Randy Brukardt
2020-12-23  8:59           ` Dmitry A. Kazakov
2020-12-24  4:06             ` Randy Brukardt [this message]
2020-12-24  9:37               ` Dmitry A. Kazakov
2020-12-22 13:48       ` AdaMagica
2020-12-20 21:59   ` Keith Thompson
2020-12-21  8:08     ` Dmitry A. Kazakov
2020-12-18 23:09 ` Stephen Leake
2020-12-19 11:50   ` DrPi
2020-12-19 12:40     ` Dmitry A. Kazakov
2020-12-19 17:13       ` Andreas ZEURCHER
2020-12-19 17:49         ` Dmitry A. Kazakov
2020-12-19 18:40           ` Andreas ZEURCHER
2020-12-19 19:37             ` Dmitry A. Kazakov
2020-12-19 22:11               ` Andreas ZEURCHER
2020-12-20  8:47                 ` Dmitry A. Kazakov
2020-12-20 16:53                   ` Andreas ZEURCHER
2020-12-22  0:58                     ` Randy Brukardt
2020-12-22  2:39                       ` Andreas ZEURCHER
2020-12-22 10:05                     ` Stéphane Rivière
2020-12-25  9:34                     ` G.B.
2020-12-19 17:01     ` AdaMagica
2020-12-19 21:51     ` Stephen Leake
2020-12-19 22:20       ` Andreas ZEURCHER
2020-12-20 14:10       ` DrPi
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox