6 ms·
Railroading the Pascal Language
- 01HNNWZ0MV43FF 2y agoRailroad syntax diagrams, not railroad error handling
- AnimalMuppet 2y agoThat's just a way of representing BNF, isn't it?
- pjmlp 2y agoYep.
- nocman 2y agoWhich has nothing to do with BNSF :-D
- AnimalMuppet 2y agoYeah. As a railfan, typing BNF without the "S" in it took some concentration...
- katzenversteher 2y agoI like. Quite a bit easier to read than EBNF and the like
- mark_l_watson 2y agoMemory 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. I used UCSD Pascal on one very large project: my Go playing program Honnibo Warrior.
- nu11ptr 2y agoI 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.
- dr_kiszonka 2y agoI love the design aspect, but it is hard for me to parse so many diagrams. I feel some of them could be expressed more effectively using regular text and maybe tables. (But I am glad they work for people like you!)
- mikewarot 2y ago[flagged]
- VikingCoder 2y agoUbiquity. Job offers. C++ Templates are pretty amazing when you're making libraries.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- leejoramo 2y agoI immediately remember the Apple Pascal poster from the late 1970s: https://archive.org/details/pascal-poster-v-3-a-1 https://archive.org/details/pascal-poster-v-3-a-1
- moefh 2y agoThe use of "mantissa"[1] in this document is not right. What's being called mantissa here should be "exponent". There's some ambiguity about what exactly "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). But whatever mantissa means, it's exactly not (like the page says[1]) what's "used to raise or lower a floating point literal numbers by factors of 10", that's the exponent. The mantissa, if anything, is the other 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). [1] https://www.getlazarus.org/learn/language/lexical/#float_literal https://www.getlazarus.org/learn/language/lexical/#float_lit... [2] https://en.wikipedia.org/wiki/Significand https://en.wikipedia.org/wiki/Significand (section "Floating-point mantissa")
- signaru 2y agoIt 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.
- mosburger 2y agoBrings 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.
- LeFantome 2y agoI had to read through this more than once to realize that Free Pascal has classes. They are buried under “Generic Constaints”. https://www.getlazarus.org/learn/language/lexical/#generic_constraint https://www.getlazarus.org/learn/language/lexical/#generic_c... For me, a BNF would be so much easier. It looks like a fairly easy syntax to parse. Maybe I will try to create a toy compiler sometime.