PTCRI: An Equation about Syntax Potential ========================================= HTML | TXT https://breckyunits.com/ptcri.html HTML https://breckyunits.com/ptcri.txt TXT by Breck Yunits https://breckyunits.com Breck Yunits May 31, 2024 Yesterday, on a plane, I found an equation I sought for a decade. P = {T^{C^R}}^I PTCRI describes the potential of a programming syntax. PTCRI says the number of possible programs *P* is equal to the number of tokens *T* raised by the number of columns *C*, raised by the number of rows *R* (aka lines), raised by the number of indentation levels *I*. If you view the source code of this post, you will see *T, C, R, and I* in action. https://github.com/breck7/breckyunits.com/blob/main/ptcri.scroll source code * PTCRI explains the simplicity and power of Scroll Notation^treeNotationNameChange. Four concepts, three syntax rules support a vast universe of concise programs. Another syntax(es) might be found with superior metrics, but I have yet to see it. https://scroll.pub Scroll Notation PTCRI also explains why _nearly_ flat structures work so well: a little nesting goes a long way. If you set T and C and R to 3, changing I from 1 to 2 increases the amount of possible programs from 7,625,597,484,987 to 58,149,737,003,040,060,000,000,000. * 59 days ago I announced the decade long Scroll Notation research endeavor over with a negative result. https://breckyunits.com/treeNotationFinalReport.html announced It looks like I was wrong again. There was something special about Scroll Notation, and PTCRI explains what that is. * _It shouldn't be possible to represent all programs in all programming language with such a minimal set of rules! Scroll Notation doesn't even have parentheses!_ And yet, the experimental evidence kept piling up. https://breckyunits.com/scrollsets.html experimental evidence The evidence hinted at some important natural formula, and now we have a name for it: PTCRI. ⁂ Notes ===== ^treeNotationNameChange: Scroll Notation was originally named Tree Notation. * Thank you to Marc Forward and Inconstant_Moo for feedback and helping me add the T. https://www.youtube.com/@origineering Marc Forward https://www.reddit.com/user/Inconstant_Moo/ Inconstant_Moo * It may help to explain from another angle. Imagine your boss comes up to you and says "We are giving you a special assignment. We want you to come up with the best possible syntax for all programming languages." What do you come up with? You can present them with Scroll Notation, and explain how it supports a vast universe of programs, \$P = {T^{C^R}}^I\$, with just three syntax rules: - lines split into columns via bits, characters or words - groups of lines joined to each other via newlines - scopes established via the indent trick (aka the "Offiside Rule", popularized by Python, HAML, et cetera) * - Does PTCRI also describe S-Expressions? S-Expression work. Scroll Notation _barely_ works. - All mistakes are on me, and credit goes to the people who have supported this effort with me. - I think this equation is pretty interesting, so I really hope a lot of people on the Internet tell me how stupid it is and that it was discovered 100 years ago. - Now, back to my vacation. Related Posts ============= ETA!: A Measure of Evolution ============================ 07/18/2024 https://breckyunits.com/eta.html ICS: A Measure of Intelligence ============================== 06/06/2024 https://breckyunits.com/intelligence.html Counting Complexity =================== 12/20/2017 https://breckyunits.com/countingComplexity.html Parsers: a language for making languages ======================================== 09/10/2017 https://breckyunits.com/aGrammarNotationForTreeLanguages.html Tree Notation: an antifragile program notation ============================================== 06/21/2017 https://breckyunits.com/treenotationPaper.html