From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ichbiah 2022 compiler mode
Date: Sat, 21 Dec 2024 02:19:09 -0600 [thread overview]
Message-ID: <vk5tlv$3uq1o$1@dont-email.me> (raw)
In-Reply-To: vk53gs$3lfp0$2@dont-email.me
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1683 bytes --]
"Lioneldraghi" <lionel.draghi@free.fr> wrote in message
news:vk53gs$3lfp0$2@dont-email.me...
> Le 06/09/2024 à 02:03, Randy Brukardt a écrit :
>
>> (10) Variable-returning functions are introduced. They're pretty similar
>> the
>> semantics of anonymous access returns (or the aliased function returns
>> suggested by Tucker). This means that a variable can easily be treated as
>> a
>> function (and indeed, a variable declaration is just syntactic sugar for
>> such a function).
>
> I suppose that to allows the compiler to discriminate this non sense code
> > Square (2) := 3;
>
> from the legitimate
> > List.Index (3) := Item;
>
> you will have to introduce some specific syntax, like Tucker's "aliased
> function".
>
> I see the huge benefit from a user point of view, but I'm not aware of
> compiler internals : doesn't the introduction of a second function type
> increase complexity?
Yes, but Ada already has a bunch of different mechanisms for dealing with
objects/functions/exceptions/packages/types. My intent is to collapse those
all into one (somewhat more complex) mechanism. The basic idea is that
everything resolves a single way, meaning that everything can be overloaded,
and there no longer is a semantic difference between:
A : constant T := ...;
and
function A return T is (...);
Whether that really helps remains to be seen, of course. But the goal is to
reduce the number of disjoint mechanisms both in the language description
and in the implementation. The hope is then to be able to introduce
additional capabilities on top of a simpler and stronger foundation.
Randy.
next prev parent reply other threads:[~2024-12-21 8:19 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 11:52 Ichbiah 2022 compiler mode Kevin Chadwick
2024-09-05 13:40 ` Jeffrey R.Carter
2024-09-05 13:49 ` Bill Findlay
2024-09-05 19:22 ` Jeffrey R.Carter
2024-09-05 14:05 ` Kevin Chadwick
2024-09-05 16:08 ` Kevin Chadwick
2024-09-05 19:24 ` Jeffrey R.Carter
2024-09-06 0:03 ` Randy Brukardt
2024-09-06 0:58 ` Lawrence D'Oliveiro
2024-09-12 4:39 ` Randy Brukardt
2024-09-12 22:24 ` Lawrence D'Oliveiro
2024-09-14 6:18 ` Randy Brukardt
2024-09-14 7:18 ` Lawrence D'Oliveiro
2024-09-06 21:22 ` Simon Wright
2024-09-07 17:13 ` Niklas Holsti
2024-09-07 20:34 ` Nioclás Pól Caileán de Ghloucester
2024-09-12 4:46 ` Randy Brukardt
2024-09-12 7:42 ` Niklas Holsti
2024-09-12 9:07 ` Dmitry A. Kazakov
2024-09-12 12:36 ` Kevin Chadwick
2024-09-12 15:43 ` Niklas Holsti
2024-09-13 20:45 ` Nioclás Pól Caileán de Ghloucester
2024-09-12 9:04 ` J-P. Rosen
2024-09-12 11:35 ` Niklas Holsti
2024-09-14 6:13 ` Randy Brukardt
2024-09-14 6:47 ` Dmitry A. Kazakov
2024-09-14 7:19 ` Lawrence D'Oliveiro
2024-09-14 8:12 ` Niklas Holsti
2024-12-20 23:26 ` Lioneldraghi
2024-12-21 8:14 ` Randy Brukardt
2024-12-21 9:50 ` Jeffrey R.Carter
2024-12-24 1:00 ` Randy Brukardt
2024-12-21 17:19 ` G.B.
2024-12-21 17:35 ` Chris Townley
2024-12-22 12:15 ` Simon Wright
2024-12-22 15:52 ` G.B.
2024-12-22 23:06 ` Simon Wright
2024-12-24 1:03 ` Randy Brukardt
2024-12-21 21:26 ` Keith Thompson
2024-12-22 9:32 ` Pascal Obry
2024-12-21 0:52 ` Lioneldraghi
2024-12-21 8:19 ` Randy Brukardt [this message]
2024-09-06 11:07 ` Jeffrey R.Carter
2024-09-06 20:26 ` Nioclás Pól Caileán de Ghloucester
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox