Hi all,
GoLUG meeting with compiler construction presentation this coming Wednesday:
====================================================================== 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 Where: Jitsi online presentation, https://meet.jit.si/golug [1] ======================================================================
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 (Steve Litt), will start off by showcasing the basics of Backus-Naur Format (BNF), a notation format that aids greatly in compiler and sophisticated markup converter program. Next, I'll briefly go over the scanner>parser compiler/converter methodology, Using Flex (Fast Lexx) for the scanner and Bison (yacc superset) for the parser. The scanner reads the source code or markup, converting it to tokens and strings for the parser. The parser reads the source and outputs the converts the tokens and strings into a program (if compiler) or a different kind of markup (if a converter).
NOTE: The preceding is a slight oversimplification because Flex and Bison actually create C code that compiles into the scanner and parser, but from a conceptual standpoint my preceding description is good enough.
I'll then show you a trivial Flex/Bison converter that takes a text file whose paragraphs are separated by one or more blank lines, and turns the file into HTML. This would have been much easier to do with a 20 line Python program, but it's a very simple way to demonstrate the Bison/Flex scanner/parser method, and when things get complicated, trying to do the compiler or converter with Python becomes a real mess. I know, I've tried three times to write a Python converter program as a straightforward Python program, while attempting to make my Stylz authoring language. I tried it 3 times, and could never even complete a subset of Stylz conversion..
My part of the presentation takes about an hour and I'll start right at 7PM.
Next comes David Billsbrough, who is working to create a compiler for a Pascal subset. He'll also discuss not only Flex>Bison, but doing it straight from Python or C or whatever, thus showcasing the real theory behind compilation. David's presentation shows some heavy theory and non-trivial constructions. I'm sure you'll have plenty of questions for David.
If you ever wondered how people make computer languages and then compilers, interpreters or converters for that language, this presentation will shed plenty of light on the subject. And if you're already a compiler making ninja, I think you'll enjoy David's part of the presentation. A good time will be had by all.
==== [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