Declarative program development in Prolog with GUPU
نویسندگان
چکیده
We present the side-effect free programming course environment GUPU that seamlessly guides and supports students during all phases of program development covering specification, implementation, and program debugging. GUPU features several innovations in this area. The specification phase is supported by reference implementations augmented with diagnostic facilities. During implementation, immediate feedback from test cases and visualization tools helps the programmer’s program understanding. A set of slicing techniques is used to narrow down programming errors. Finally, the whole process is guided by a marking system.
منابع مشابه
GUPU: A Prolog Course Environment and its Programming Methodology (Poster Abstract)
GUPU is a programming environment specialized for Prolog programming courses which supports a novel way to teaching Prolog. The major improvement in teaching Prolog concerns how programs are read and understood. While the traditional approach covers Prolog’s execution mechanism and its relation to mathematical logic we confine ourselves to reading programs informally as English sentences. The s...
متن کاملPRISM Revisited: Declarative Implementation of a Probabilistic Programming Language Using Delimited Control
PRISM is a probabilistic programming language based on Prolog augmented with primitives to represent probabilistic choice. PRISM is implemented using a combination of low level support from a modified version of B-Prolog, source level program transformation, and libraries for probabilistic inference and learning implemented in the imperative language C. More recently, developers of probabilisti...
متن کاملDebugging Prolog Programs Declaratively
Traditional declarative debuggers, despite their theoretical attractions are not considered to be practical tools for debugging of many Prolog programs. This is partly due to the fact that the basic declarative debugging system (Shapiro 83) only dealt with pure Prolog programs, and partly due to practical limitations of the suggested methods and algorithms. Our aim has been to study the applica...
متن کاملMore declarative tabling in Prolog using multi-prompt delimited control
Several Prolog implementations include a facility for tabling, an alternative resolution strategy which uses memoisation to avoid redundant duplication of computations. Until relatively recently, tabling has required either low-level support in the underlying Prolog engine, or extensive program transormation (de Guzman et al., 2008). An alternative approach is to augment Prolog with low level s...
متن کاملLogic + control: An example of program construction
We present a Prolog program (the SAT solver of Howe and King) as a logic program with added control. The control consists of a selection rule (delays of Prolog) and pruning the search space. We construct the logic program together with proofs of its correctness and completeness, with respect to a formal specification. This is augmented by a proof of termination under any selection rule. Correct...
متن کامل