Hi all,
This email is both a reminder of the meeting's who, what, where and when, and a progress report on my presentation and David's. First the meeting details:
====================================================================== What: Online presentation, Computer language and compiler construction Who: GoLUG's Steve Litt and David Billsbrough When: Wednesday 12/6/2023 at 7PM Eastern Standard Time NOTE: We will start PROMPTLY at 7:00PM EXACTLY! Where: Jitsi online presentation, https://meet.jit.si/golug [1] ======================================================================
David and I have both made astonishing progress. David's ready to give you the nuts and bolts understandings about the compiler creation process, including Parse Trees and other stuff way above my pay grade.
As for my presentation on Backus-Naur Format (BNF) and Flex/Bison compilers and converters, over a week ago I realized that online docs for Flex and Bison were usually contradictory, incomplete and/or ambiguous. They were all written by very smart people who forgot what it was like to know nothing, not even the key understandings necessary for newbies.
The "Flex & Bison" book I ordered has not arrived, but judging from the first four chapters, which are are available online, this book is too ambiguous for a newbie and it doesn't give enough emphasis to the fact that, for a real compiler, converter or Domain Specific Language (DSL), Flex and Bison are a package deal, and that Bison-only and Lex-only examples are so contrived and misleading as to be learning disadvantages.
ChatGPT is somewhat helpful, but can take you down dead end rabbit holes because it frames its guesses as facts, and even responds to the same question differently depending on which websites it scrapes first. I found ChatGPT to be a great resource for hearing relevant terminology, which I can then look up with web searches or queries on mailing lists. Speaking of mailing lists, they're great, but only when you know what question you want to ask and how to frame the question, and until you have several key understandings and know a little vocabulary, you just can't gain the benefits of mailing lists.
At the meeting I'll showcase a Lex/Bison "Hello World" (proof of concept) that actually serves as a first step to learning how to build compilers, converters and DSLs. This Hello World can be used to incrementally learn and build more complex compilers, converters and DSLs. Also, while you see and listen to my presentation, you'll acquire the key understandings necessary to learn in a straightforward manner, without gratuitous dead ends and inability to frame a question. While you see and listen to my presentation, you'll also understand using BNF to define a grammar. A grammar is a set of rules determining valid syntax. This is a good thing because when David gives his presentation, you'll need these key understandings to benefit from his nuts and bolts description of compiler construction.
If you've wondered how people build new computer languages, compilers, interpreters, markup languages with converters, or even Domain Specific Languages (DSLs), this introductory presentation will de-mystify the topic.
I think David's and my presentations will be valued and remembered fondly by anyone who has ever been curious about how computer languages and compilers are made. I hope to see you there.
==== [1]
Online via Jitsi: https://meet.jit.si/golug
Mobile app: https://jitsi.org/downloads/
Desktop app: https://github.com/jitsi/jitsi-meet-electron/releases