Related articles |
---|
Who first invented dotted-item notation? christopher.f.clark@compiler-resources.com (Christopher F Clark) (2022-05-22) |
Re: Who first invented dotted-item notation? 480-992-1380@kylheku.com (Kaz Kylheku) (2022-05-22) |
RE: Who first invented dotted-item notation? christopher.f.clark@compiler-resources.com (Christopher F Clark) (2022-05-23) |
Re: Who first invented dotted-item notation? gah4@u.washington.edu (gah4) (2022-05-23) |
Re: Who first invented dotted-item notation? antispam@math.uni.wroc.pl (2022-05-28) |
From: | Kaz Kylheku <480-992-1380@kylheku.com> |
Newsgroups: | comp.compilers |
Date: | Sun, 22 May 2022 18:29:01 -0000 (UTC) |
Organization: | A noiseless patient Spider |
References: | 22-05-046 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="59005"; mail-complaints-to="abuse@iecc.com" |
Keywords: | history |
Posted-Date: | 22 May 2022 14:33:42 EDT |
On 2022-05-22, Christopher F Clark <christopher.f.clark@compiler-resources.com> wrote:
> I know the notation from LR(0) machine construction, but also know
> that Gluskhov used it in his solution to NFA construction. Earley
> also used the notation to describe his method if I understand right.
> I'm presuming that there is some first use of the notation. Do we
> know who invented it?
In Lisp, we can write (1 2 3 4 5 6) in any of these ways:
(1 . (2 3 4 5 6))
(1 2 . (3 4.5 6))
(1 2 3 . (4 5 6))
(1 2 3 4 . (5 6))
(1 2 3 4 5 . (6))
(1 2 3 4 5 6 . NIL)
As well as:
(1 . (2 . (3 4 5 6)))
The dot doesn't actually exist; it isn't represented anywhere in the
data structure, but in a hand-written expression it could be used to
convey (purely as a comment) some semanticaly interesting division in
the list.
E.g. suppose we have some data structure which holds a list of symbols,
and an integer indicating a position among those symbols.
A custom printing routine for that structure could take advantage
of this, rendering it as, say:
#S(sym-structure
:dot-position 2
:syms (a b . (c d)))
where the custom printer for sym-structure looks at dot-position
and renders the syms slot accordingly, to provide a visual aid.
The following is not possible in any mainstream Lisp I know of: (. (a b c))
as a way of denoting (a b c). The custom printer could omit the
dot notation.
(I know of a dialect in which it that leading dot notation is allowed,
with that semantics, but starting in a git commit made in 2014, making
it irrelevant here.)
--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Return to the
comp.compilers page.
Search the
comp.compilers archives again.