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
--
Steve Litt
GoLUG Publicity Coordinator
Originally founded in Orlando, Florida, United States, GoLUG now
welcomes an international audience for online presentations and
discussions on Linux and adjacent technologies.
http://golug.org
---------------------------------------------------
PLUG-discuss mailing list:
PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss