|Learning only one lexer made me blind to its hidden assumptions email@example.com (Roger L Costello) (2022-07-07)|
|Re: Learning only one lexer made me blind to its hidden assumptions firstname.lastname@example.org (luser droog) (2022-07-12)|
|Re: Learning only one lexer made me blind to its hidden assumptions email@example.com (Juan Miguel Vilar Torres) (2022-07-13)|
|Re: Learning only one lexer made me blind to its hidden assumptions firstname.lastname@example.org (Ev. Drikos) (2022-07-13)|
|Re: Learning only one lexer made me blind to its hidden assumptions email@example.com (2022-07-13)|
|Re: Learning only one lexer made me blind to its hidden assumptions firstname.lastname@example.org (George Neuner) (2022-07-14)|
|Re: Learning only one lexer made me blind to its hidden assumptions email@example.com (Kaz Kylheku) (2022-07-15)|
|Re: Learning only one lexer made me blind to its hidden assumptions firstname.lastname@example.org (2022-07-15)|
|From:||luser droog <email@example.com>|
|Date:||Tue, 12 Jul 2022 19:49:31 -0700 (PDT)|
|Injection-Info:||gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="82964"; mail-complaints-to="firstname.lastname@example.org"|
|Posted-Date:||12 Jul 2022 23:25:36 EDT|
On Monday, July 11, 2022 at 7:26:08 PM UTC-5, Roger L Costello wrote:
> Hi Folks,
> For months I have been immersed in learning and using Flex. Great fun indeed.
> But recently I have been reading a book, Crafting a Compiler with C, and
> reading its chapter on lexers. The chapter describes two lexer-generators:
> ScanGen and Lex. Oh my! Learning ScanGen opened my eyes to the hidden
> assumptions in Lex/Flex. Without learning ScanGen I would have continued to
> think that the way things are done in Lex/Flex way is the only way.
> Below I have documented some of the differences between Lex/Flex and ScanGen.
> - Flex regexes use juxtaposition for specifying concatenation.
> - ScanGen uses '.' to specify concatenation. And oh by the way, ScanGen calls
> it 'catenation' not 'concatenation'
I think this difference in word choice has possibly some etymological significance.
Both word come from "catenary" which is the shape a rope or cord makes when
you drape it over some spokes or frames or hooks or whatever. So, to *catenate*
is to hoist the string or rope up onto some hooks or poles so it makes that
dangling *garland* kind of curve. So, it's focused on the *rope* as an entity.
*Concatenate* adds the prefix "con" meaning "with". I interpret this as embellishing
the rope with beads or light bulbs or something. So now we're stringing up
a bunch of beads *together*, focusing on the hanging objects.
The original APL book uses "catenate" in a way that I think is consistent with
my interpretation here. But I could also be wrong. I have not actually researched
this beyond having run into it a few times and attempted to come up with a
[Lots of people agree with that etymology. Where do you think the Unix "cat" command came from? -John]
Return to the
Search the comp.compilers archives again.