PLJul 5, 2017
Information-gain computationAnthony Di Franco
Despite large incentives, ecorrectness in software remains an elusive goal. Declarative programming techniques, where algorithms are derived from a specification of the desired behavior, offer hope to address this problem, since there is a combinatorial reduction in complexity in programming in terms of specifications instead of algorithms, and arbitrary desired properties can be expressed and enforced in specifications directly. However, limitations on performance have prevented programming with declarative specifications from becoming a mainstream technique for general-purpose programming. To address the performance bottleneck in deriving an algorithm from a specification, I propose information-gain computation, a framework where an adaptive evaluation strategy is used to efficiently perform a search which derives algorithms that provide information about a query most directly. Within this framework, opportunities to compress the search space present themselves, which suggest that information-theoretic bounds on the performance of such a system might be articulated and a system designed to achieve them. In a preliminary empirical study of adaptive evaluation for a simple test program, the evaluation strategy adapts successfully to evaluate a query efficiently.
AIApr 29, 2015
FIFTH system for general-purpose connectionist computationAnthony Di Franco
To date, work on formalizing connectionist computation in a way that is at least Turing-complete has focused on recurrent architectures and developed equivalences to Turing machines or similar super-Turing models, which are of more theoretical than practical significance. We instead develop connectionist computation within the framework of information propagation networks extended with unbounded recursion, which is related to constraint logic programming and is more declarative than the semantics typically used in practical programming, but is still formally known to be Turing-complete. This approach yields contributions to the theory and practice of both connectionist computation and programming languages. Connectionist computations are carried out in a way that lets them communicate with, and be understood and interrogated directly in terms of the high-level semantics of a general-purpose programming language. Meanwhile, difficult (unbounded-dimension, NP-hard) search problems in programming that have previously been left to the programmer to solve in a heuristic, domain-specific way are solved uniformly a priori in a way that approximately achieves information-theoretic limits on performance.