Consider counting goto statements in C or Cobol programs: we are only interested to do something when we encounter a goto statement and we just want to travel over the other statements kinds.
Lists and list matching. Rewriting an arithmetic term Booleans How can we define Boolean expressions with constants true and false and the operations and, or and not? For all Java statements that are involved in this analysis, we write rules that extract the desired information. I took a look at their funding listings.
Programs can be untyped. So, the CH-correspondence has nothing to with it. What if an expression has to evaluate to several different results even math has these examples? How do the pieces now fit together? These are types I'm talking about. In that way, they represent a declarative program code very similar to functional programming.
And confluence is a consideration that doesn't ordinarily come into play but would with rewriting systems. Church and Rosser might be smart people after all. And what do programs have to do with typed systems?