[HN Gopher] Perses: Syntax-Directed Program Reduction ___________________________________________________________________ Perses: Syntax-Directed Program Reduction Author : luu Score : 16 points Date : 2023-12-27 01:13 UTC (21 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | ryderdini wrote: | Perses is also the name of this Prometheus dataviz project: | https://github.com/perses/perses | | Funny that the God of Destruction is such a hot name lately | steego wrote: | Just so I understand this correctly, this is a tool where, if you | provide it a program, it will use reduction/rewrite rules to find | a simpler program that exhibits some given behavior? | | In practice, how is this applied? Do compiler developers | essentially use something similar to quick check to generate | breaking programs and then use this to reduce those programs to a | minimal form, or am I missing something else altogether? | chriswarbo wrote: | I agree it looks similar to QuickCheck shrinking. Isn't | necessary limited to compiler writers though; e.g. I can | imagine a big numerical calculation (like a physics | simulation), giving NaN outputs. This could presumably home-in | on the problematic step (given an appropriate test script). | DonaldPShimoda wrote: | Yes! Another well-known program reducer is C-Reduce [0]. When | Csmith [1] started churning out very large programs that | exhibited errors in C compilers, the compiler maintainers asked | the researchers to please reduce the ~81KB files to a more | manageable size so they could understand the errors better. | C-Reduce was developed specifically to address that need. | | [0] https://github.com/csmith-project/creduce | | [1] https://github.com/csmith-project/csmith | armchairhacker wrote: | Yes. An example (in the associated paper) is to create a | minimal reproduction of a crash so it's easier to debug. ___________________________________________________________________ (page generated 2023-12-27 23:00 UTC)