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

07/16/2018
by   François Bry, et al.
0

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 formalisations of meta-programming do not explicitly address its impredicativity and are cumbersome. This article aims at overcoming this unsatisfactory situation by discussing the relevance of impredicativity to meta-programming, by revisiting former logics and by defining Reflective Predicate Logic, a conservative extension of first-order logic, that provides a simple formalisation of meta-programming. Under consideration for publication in Theory and Practice of Logic Programming

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/13/2022

From Logic to Functional Logic Programs

Logic programming is a flexible programming paradigm due to the use of p...
research
05/16/2019

Effects Without Monads: Non-determinism – Back to the Meta Language

We reflect on programming with complicated effects, recalling an undeser...
research
08/06/2019

A Transformational Approach to Resource Analysis with Typed-norms Inference

In order to automatically infer the resource consumption of programs, an...
research
12/20/2018

Property-based testing for Spark Streaming

Stream processing has reached the mainstream in the last years, as a new...
research
02/01/2023

Ideas for the future of Prolog inspired by Oz

Both Prolog and Oz are multiparadigm languages with a logic programming ...
research
03/02/2023

HasChor: Functional Choreographic Programming for All (Functional Pearl)

Choreographic programming is an emerging paradigm for programming distri...
research
09/22/2020

A Low-Level Index for Distributed Logic Programming

A distributed logic programming language with support for meta-programmi...

Please sign up or login with your details

Forgot password? Click here to reset