Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Kaz Kylheku <480-992-1380@kylheku.com> Newsgroups: comp.compilers Subject: Re: Who first invented dotted-item notation? Date: Sun, 22 May 2022 18:29:01 -0000 (UTC) Organization: A noiseless patient Spider Lines: 49 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-05-047@comp.compilers> References: <22-05-046@comp.compilers> 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 X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:3019 On 2022-05-22, Christopher F Clark 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