[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)