Re: Who first invented dotted-item notation?

Kaz Kylheku <480-992-1380@kylheku.com>
Sun, 22 May 2022 18:29:01 -0000 (UTC)

          From comp.compilers

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)
| List of all articles for this month |
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


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.