I immediately remember the Apple Pascal poster from the late 1970s:<p><a href="https://archive.org/details/pascal-poster-v-3-a-1" rel="nofollow">https://archive.org/details/pascal-poster-v-3-a-1</a>
The use of "mantissa"[1] in this document is not right. What's being called mantissa here should be "exponent".<p>There's some ambiguity about what <i>exactly</i> "mantissa" means in the representation of a floating point number, to the point where some people recommend avoiding it[2] (for example, the IEEE standard for floating point uses "significand" instead).<p>But whatever mantissa means, it's exactly <i>not</i> (like the page says[1]) what's "<i>used to raise or lower a floating point literal numbers by factors of 10</i>", that's the exponent. The mantissa, if anything, is the <i>other</i> part of the number, that is, what's being multiplied by the factors of 10 (but it's complicated, the wikipedia[2] page explains it).<p>[1] <a href="https://www.getlazarus.org/learn/language/lexical/#float_literal" rel="nofollow">https://www.getlazarus.org/learn/language/lexical/#float_lit...</a><p>[2] <a href="https://en.wikipedia.org/wiki/Significand" rel="nofollow">https://en.wikipedia.org/wiki/Significand</a> (section "Floating-point mantissa")
I love railroad syntax diagrams. Not sure why, but I guess it is because they work in my brain. Grammars just seem to be shown in a way that makes it easier for my visual brain to comprehend.
Memory lane. This made me remember Ken Bowles, one of the key figures in development of UCSD Pascal. Ken always seemed to be on a mission. Last time I talked with him, many decades ago, we were at a party and he and his wife were headed off somewhere exotic to go SCUBA diving.<p>I used UCSD Pascal on one very large project: my Go playing program Honnibo Warrior.
I had to read through this more than once to realize that Free Pascal has classes.<p>They are buried under “Generic Constaints”.<p><a href="https://www.getlazarus.org/learn/language/lexical/#generic_constraint" rel="nofollow">https://www.getlazarus.org/learn/language/lexical/#generic_c...</a><p>For me, a BNF would be so much easier. It looks like a fairly easy syntax to parse.<p>Maybe I will try to create a toy compiler sometime.
Brings me back to a time early in my career where I had to write Cognos QTP, QUIZ, and QUICK programs (blech!) ... their documentation used this format, I didn't know there was a name for it. It was the only nice thing about working with those languages.
It might be fun to look at the last few chapter's of Wirth's "Algorithms + Data Structures = Programs" for a deep dive and similar looking diagrams.