In Praise of Impredicativity: A Contribution to the Formalization of Meta-Programming

2019 Theory and Practice of Logic Programming  
Processing programs as data is one of the successes of functional and logic programming. Higher-order functions, as program-processing programs are called in functional programming, and meta-programs, as they are called in logic programming, are widespread declarative programming techniques. In logic programming, there is a gap between the meta-programming practice and its theory: The formalizations of meta-programming do not explicitly address its impredicativity and are not fully adequate.
more » ... s article aims at overcoming this unsatisfactory situation by discussing the relevance of impredicativity to meta-programming, by revisiting former formalizations of meta-programming, and by defining Reflective Predicate Logic, a conservative extension of first-order logic, which provides a simple formalization of meta-programming.
doi:10.1017/s1471068419000024 fatcat:et7sxc5fjzaxzjelpgh3os4jxu